Merge remote-tracking branch 'origin/develop' into feature/touchbar
| @@ -5,7 +5,6 @@ | |||||||
| .prettier* | .prettier* | ||||||
| electron* | electron* | ||||||
| entitlements.plist | entitlements.plist | ||||||
| forge.config.cjs |  | ||||||
| nodemon.json | nodemon.json | ||||||
| renovate.json | renovate.json | ||||||
| trilium.iml | trilium.iml | ||||||
| @@ -35,3 +34,11 @@ npm-debug.log | |||||||
|  |  | ||||||
| # exceptions | # exceptions | ||||||
| !/bin/copy-dist.ts | !/bin/copy-dist.ts | ||||||
|  | !/bin/cleanupNodeModules.ts | ||||||
|  |  | ||||||
|  | # temporary exception to make copy-dist inside Docker build not fail | ||||||
|  | # TriliumNextTODO: make copy-dist *not* requiring to copy these file for builds other than electron-forge | ||||||
|  | !forge.config.cjs | ||||||
|  | !/bin/tpl | ||||||
|  | !/bin/electron-forge/desktop.ejs | ||||||
|  | !/bin/electron-forge/sign-windows.cjs | ||||||
							
								
								
									
										10
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,3 +1,13 @@ | |||||||
| package-lock.json linguist-generated=true | package-lock.json linguist-generated=true | ||||||
| **/package-lock.json linguist-generated=true | **/package-lock.json linguist-generated=true | ||||||
|  | src/public/app/doc_notes/en/User[[:space:]]Guide/** linguist-generated=true | ||||||
|  | src/public/app/doc_notes/en/User[[:space:]]Guide/**/*.md eol=lf | ||||||
|  |  | ||||||
|  | demo/**/*.html eol=lf | ||||||
|  | demo/**/*.json eol=lf | ||||||
|  | demo/**/*.svg eol=lf | ||||||
|  | demo/**/*.txt eol=lf | ||||||
|  | demo/**/*.js eol=lf | ||||||
|  | demo/**/*.css eol=lf | ||||||
|  |  | ||||||
| libraries/** linguist-vendored | libraries/** linguist-vendored | ||||||
							
								
								
									
										4
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,4 +1,4 @@ | |||||||
| # These are supported funding model platforms | # These are supported funding model platforms | ||||||
|  |  | ||||||
| github: [zadam] | github: [eliandoran] | ||||||
| custom: ["https://paypal.me/za4am"] | custom: ["https://paypal.me/eliandoran"] | ||||||
|   | |||||||
							
								
								
									
										90
									
								
								.github/actions/build-electron/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -8,8 +8,11 @@ inputs: | |||||||
|   arch: |   arch: | ||||||
|     description: "The architecture to build for: x64, arm64" |     description: "The architecture to build for: x64, arm64" | ||||||
|     required: true |     required: true | ||||||
|   extension: |   shell: | ||||||
|     description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip" |     description: "Which shell to use" | ||||||
|  |     required: true | ||||||
|  |   forge_platform: | ||||||
|  |     description: "The --platform to pass to Electron Forge" | ||||||
|     required: true |     required: true | ||||||
|  |  | ||||||
| runs: | runs: | ||||||
| @@ -38,21 +41,21 @@ runs: | |||||||
|  |  | ||||||
|     - name: Verify certificates |     - name: Verify certificates | ||||||
|       if: inputs.os == 'macos' |       if: inputs.os == 'macos' | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: | |       run: | | ||||||
|         echo "Available signing identities:" |         echo "Available signing identities:" | ||||||
|         security find-identity -v -p codesigning build.keychain |         security find-identity -v -p codesigning build.keychain | ||||||
|  |  | ||||||
|     - name: Set up Python and other macOS dependencies |     - name: Set up Python and other macOS dependencies | ||||||
|       if: ${{ inputs.os == 'macos' }} |       if: ${{ inputs.os == 'macos' }} | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: | |       run: | | ||||||
|         brew install python-setuptools |         brew install python-setuptools | ||||||
|         brew install create-dmg |         brew install create-dmg | ||||||
|  |  | ||||||
|     - name: Install dependencies for RPM and Flatpak package building |     - name: Install dependencies for RPM and Flatpak package building | ||||||
|       if: ${{ inputs.os == 'linux' }} |       if: ${{ inputs.os == 'linux' }} | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: | |       run: | | ||||||
|         sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils |         sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils | ||||||
|         flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo |         flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | ||||||
| @@ -62,42 +65,35 @@ runs: | |||||||
|  |  | ||||||
|     # Build setup |     # Build setup | ||||||
|     - name: Install dependencies |     - name: Install dependencies | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: npm ci |       run: npm ci | ||||||
|  |  | ||||||
|     - name: Update build info |     - name: Update build info | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: npm run chore:update-build-info |       run: npm run chore:update-build-info | ||||||
|  |  | ||||||
|     # Critical debugging configuration |     # Critical debugging configuration | ||||||
|     - name: Run electron-forge build with enhanced logging |     - name: Run electron-forge build with enhanced logging | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       env: |       env: | ||||||
|         # Pass through required environment variables for signing and notarization |         # Pass through required environment variables for signing and notarization | ||||||
|         APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} |         APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} | ||||||
|         APPLE_ID: ${{ env.APPLE_ID }} |         APPLE_ID: ${{ env.APPLE_ID }} | ||||||
|         APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} |         APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} | ||||||
|  |         WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }} | ||||||
|  |         TRILIUM_ARTIFACT_NAME_HINT: TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }} | ||||||
|       run: | |       run: | | ||||||
|         # Map OS names to Electron Forge platform names |  | ||||||
|         if [ "${{ inputs.os }}" = "macos" ]; then |  | ||||||
|           PLATFORM="darwin" |  | ||||||
|         elif [ "${{ inputs.os }}" = "windows" ]; then |  | ||||||
|           PLATFORM="win32" |  | ||||||
|         else |  | ||||||
|           PLATFORM="${{ inputs.os }}" |  | ||||||
|         fi |  | ||||||
|  |  | ||||||
|         npm run electron-forge:make -- \ |         npm run electron-forge:make -- \ | ||||||
|           --arch=${{ inputs.arch }} \ |           --arch=${{ inputs.arch }} \ | ||||||
|           --platform=$PLATFORM |           --platform=${{ inputs.forge_platform }} | ||||||
|  |  | ||||||
|     # Add DMG signing step |     # Add DMG signing step | ||||||
|     - name: Sign DMG |     - name: Sign DMG | ||||||
|       if: inputs.os == 'macos' |       if: inputs.os == 'macos' | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: | |       run: | | ||||||
|         echo "Signing DMG file..." |         echo "Signing DMG file..." | ||||||
|         dmg_file=$(find out -name "*.dmg" -print -quit) |         dmg_file=$(find ./dist -name "*.dmg" -print -quit) | ||||||
|         if [ -n "$dmg_file" ]; then |         if [ -n "$dmg_file" ]; then | ||||||
|           echo "Found DMG: $dmg_file" |           echo "Found DMG: $dmg_file" | ||||||
|           # Get the first valid signing identity from the keychain |           # Get the first valid signing identity from the keychain | ||||||
| @@ -119,13 +115,13 @@ runs: | |||||||
|  |  | ||||||
|     - name: Verify code signing |     - name: Verify code signing | ||||||
|       if: inputs.os == 'macos' |       if: inputs.os == 'macos' | ||||||
|       shell: bash |       shell: ${{ inputs.shell }} | ||||||
|       run: | |       run: | | ||||||
|         echo "Verifying code signing for all artifacts..." |         echo "Verifying code signing for all artifacts..." | ||||||
|  |  | ||||||
|         # First check the .app bundle |         # First check the .app bundle | ||||||
|         echo "Looking for .app bundle..." |         echo "Looking for .app bundle..." | ||||||
|         app_bundle=$(find out -name "*.app" -print -quit) |         app_bundle=$(find ./dist -name "*.app" -print -quit) | ||||||
|         if [ -n "$app_bundle" ]; then |         if [ -n "$app_bundle" ]; then | ||||||
|           echo "Found app bundle: $app_bundle" |           echo "Found app bundle: $app_bundle" | ||||||
|           echo "Verifying app bundle signing..." |           echo "Verifying app bundle signing..." | ||||||
| @@ -144,7 +140,7 @@ runs: | |||||||
|  |  | ||||||
|         # Then check DMG if it exists |         # Then check DMG if it exists | ||||||
|         echo "Looking for DMG..." |         echo "Looking for DMG..." | ||||||
|         dmg_file=$(find out -name "*.dmg" -print -quit) |         dmg_file=$(find ./dist -name "*.dmg" -print -quit) | ||||||
|         if [ -n "$dmg_file" ]; then |         if [ -n "$dmg_file" ]; then | ||||||
|           echo "Found DMG: $dmg_file" |           echo "Found DMG: $dmg_file" | ||||||
|           echo "Verifying DMG signing..." |           echo "Verifying DMG signing..." | ||||||
| @@ -160,54 +156,8 @@ runs: | |||||||
|  |  | ||||||
|         # Finally check ZIP if it exists |         # Finally check ZIP if it exists | ||||||
|         echo "Looking for ZIP..." |         echo "Looking for ZIP..." | ||||||
|         zip_file=$(find out -name "*.zip" -print -quit) |         zip_file=$(find ./dist -name "*.zip" -print -quit) | ||||||
|         if [ -n "$zip_file" ]; then |         if [ -n "$zip_file" ]; then | ||||||
|           echo "Found ZIP: $zip_file" |           echo "Found ZIP: $zip_file" | ||||||
|           echo "Note: ZIP files are not code signed, but their contents should be" |           echo "Note: ZIP files are not code signed, but their contents should be" | ||||||
|         fi |         fi | ||||||
|  |  | ||||||
|     - name: Prepare artifacts |  | ||||||
|       shell: bash |  | ||||||
|       run: | |  | ||||||
|         mkdir -p upload |  | ||||||
|  |  | ||||||
|         if [ "${{ inputs.os }}" = "macos" ]; then |  | ||||||
|           # For macOS, we need to look in specific directories based on the maker |  | ||||||
|           echo "Collecting macOS artifacts..." |  | ||||||
|  |  | ||||||
|           # Look for DMG files recursively |  | ||||||
|           echo "Looking for DMG files..." |  | ||||||
|           dmg_file=$(find out -name "*.dmg" -print -quit) |  | ||||||
|           if [ -n "$dmg_file" ]; then |  | ||||||
|             echo "Found DMG: $dmg_file" |  | ||||||
|             cp "$dmg_file" "upload/TriliumNextNotes-${{ github.ref_name }}-macos-${{ inputs.arch }}.dmg" |  | ||||||
|           else |  | ||||||
|             echo "Warning: No DMG file found" |  | ||||||
|           fi |  | ||||||
|  |  | ||||||
|           # Look for ZIP files recursively |  | ||||||
|           echo "Looking for ZIP files..." |  | ||||||
|           zip_file=$(find out -name "*.zip" -print -quit) |  | ||||||
|           if [ -n "$zip_file" ]; then |  | ||||||
|             echo "Found ZIP: $zip_file" |  | ||||||
|             cp "$zip_file" "upload/TriliumNextNotes-${{ github.ref_name }}-macos-${{ inputs.arch }}.zip" |  | ||||||
|           else |  | ||||||
|             echo "Warning: No ZIP file found" |  | ||||||
|           fi |  | ||||||
|         else |  | ||||||
|           # For other platforms, use the existing logic but with better error handling |  | ||||||
|           echo "Collecting artifacts for ${{ inputs.os }}..." |  | ||||||
|           for ext in ${{ inputs.extension }}; do |  | ||||||
|             echo "Looking for .$ext files..." |  | ||||||
|             file=$(find out -name "*.$ext" -print -quit) |  | ||||||
|             if [ -n "$file" ]; then |  | ||||||
|               echo "Found $file for extension $ext" |  | ||||||
|               cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}.$ext" |  | ||||||
|             else |  | ||||||
|               echo "Warning: No file found with extension .$ext" |  | ||||||
|             fi |  | ||||||
|           done |  | ||||||
|         fi |  | ||||||
|  |  | ||||||
|         echo "Final contents of upload directory:" |  | ||||||
|         ls -la upload/ |  | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								.github/actions/build-server/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -11,7 +11,7 @@ runs: | |||||||
|     - name: Set up node & dependencies |     - name: Set up node & dependencies | ||||||
|       uses: actions/setup-node@v4 |       uses: actions/setup-node@v4 | ||||||
|       with: |       with: | ||||||
|         node-version: 20 |         node-version: 22 | ||||||
|         cache: "npm" |         cache: "npm" | ||||||
|     - name: Install dependencies |     - name: Install dependencies | ||||||
|       shell: bash |       shell: bash | ||||||
| @@ -28,4 +28,5 @@ runs: | |||||||
|       run: | |       run: | | ||||||
|         mkdir -p upload |         mkdir -p upload | ||||||
|         file=$(find dist -name '*.tar.xz' -print -quit) |         file=$(find dist -name '*.tar.xz' -print -quit) | ||||||
|         cp "$file" "upload/TriliumNextNotes-Server-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}.tar.xz" |         name=${{ github.ref_name }} | ||||||
|  |         cp "$file" "upload/TriliumNextNotes-Server-${name//\//-}-${{ inputs.os }}-${{ inputs.arch }}.tar.xz" | ||||||
|   | |||||||
							
								
								
									
										79
									
								
								.github/actions/report-size/action.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,79 @@ | |||||||
|  | name: 'Bundle size reporter' | ||||||
|  | description: 'Post bundle size difference compared to another branch' | ||||||
|  | inputs: | ||||||
|  |   branch: | ||||||
|  |     description: 'Branch to compare to' | ||||||
|  |     required: true | ||||||
|  |     default: 'main' | ||||||
|  |   paths: | ||||||
|  |     description: | ||||||
|  |       'Paths to json file bundle size report or folder containing bundles' | ||||||
|  |     required: true | ||||||
|  |     default: '/' | ||||||
|  |   onlyDiff: | ||||||
|  |     description: 'Report only different sizes' | ||||||
|  |     required: false | ||||||
|  |     default: 'false' | ||||||
|  |   filter: | ||||||
|  |     description: 'Regex filter based on file path' | ||||||
|  |     required: false | ||||||
|  |   unit: | ||||||
|  |     description: 'Size unit' | ||||||
|  |     required: false | ||||||
|  |     default: 'KB' | ||||||
|  |  | ||||||
|  |   # Comment inputs | ||||||
|  |   comment: | ||||||
|  |     description: 'Post comment' | ||||||
|  |     required: false | ||||||
|  |     default: 'true' | ||||||
|  |   header: | ||||||
|  |     description: 'Comment header' | ||||||
|  |     required: false | ||||||
|  |     default: 'Bundle size report' | ||||||
|  |   append: | ||||||
|  |     description: 'Append comment' | ||||||
|  |     required: false | ||||||
|  |     default: 'false' | ||||||
|  |   ghToken: | ||||||
|  |     description: 'Github token' | ||||||
|  |     required: false | ||||||
|  |  | ||||||
|  | runs: | ||||||
|  |   using: 'composite' | ||||||
|  |   steps: | ||||||
|  |     # Checkout branch to compare to [required] | ||||||
|  |     - name: Checkout base branch | ||||||
|  |       uses: actions/checkout@v4 | ||||||
|  |       with: | ||||||
|  |         ref: ${{ inputs.branch }} | ||||||
|  |         path: br-base | ||||||
|  |         token: ${{ inputs.ghToken }} | ||||||
|  |  | ||||||
|  |     # Generate the bundle size difference report [required] | ||||||
|  |     - name: Generate report | ||||||
|  |       id: bundleSize | ||||||
|  |       uses: nejcm/bundle-size-reporter-action@v1.4.1 | ||||||
|  |       with: | ||||||
|  |         paths: ${{ inputs.paths }} | ||||||
|  |         onlyDiff: ${{ inputs.onlyDiff }} | ||||||
|  |         filter: ${{ inputs.filter }} | ||||||
|  |         unit: ${{ inputs.unit }} | ||||||
|  |  | ||||||
|  |     # Post github action summary | ||||||
|  |     - name: Post summary | ||||||
|  |       if: ${{ steps.bundleSize.outputs.hasDifferences == 'true' }} # post only in case of changes | ||||||
|  |       run: | | ||||||
|  |         echo '${{ steps.bundleSize.outputs.summary }}' >> $GITHUB_STEP_SUMMARY | ||||||
|  |       shell: bash | ||||||
|  |  | ||||||
|  |     # Post github action comment | ||||||
|  |     - name: Post comment | ||||||
|  |       uses: marocchino/sticky-pull-request-comment@v2 | ||||||
|  |       if: ${{ steps.bundleSize.outputs.hasDifferences == 'true' }} # post only in case of changes | ||||||
|  |       with: | ||||||
|  |         number: ${{ github.event.pull_request.number }} | ||||||
|  |         header: ${{ inputs.header }} | ||||||
|  |         append: ${{ inputs.append }} | ||||||
|  |         message: '${{ steps.bundleSize.outputs.summary }}' | ||||||
|  |         GITHUB_TOKEN: ${{ inputs.ghToken }} | ||||||
							
								
								
									
										100
									
								
								.github/workflows/codeql.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,100 @@ | |||||||
|  | # For most projects, this workflow file will not need changing; you simply need | ||||||
|  | # to commit it to your repository. | ||||||
|  | # | ||||||
|  | # You may wish to alter this file to override the set of languages analyzed, | ||||||
|  | # or to provide custom queries or build logic. | ||||||
|  | # | ||||||
|  | # ******** NOTE ******** | ||||||
|  | # We have attempted to detect the languages in your repository. Please check | ||||||
|  | # the `language` matrix defined below to confirm you have the correct set of | ||||||
|  | # supported CodeQL languages. | ||||||
|  | # | ||||||
|  | name: "CodeQL Advanced" | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: [ "develop" ] | ||||||
|  |   pull_request: | ||||||
|  |     branches: [ "develop" ] | ||||||
|  |   schedule: | ||||||
|  |     - cron: '20 7 * * 0' | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   analyze: | ||||||
|  |     name: Analyze (${{ matrix.language }}) | ||||||
|  |     # Runner size impacts CodeQL analysis time. To learn more, please see: | ||||||
|  |     #   - https://gh.io/recommended-hardware-resources-for-running-codeql | ||||||
|  |     #   - https://gh.io/supported-runners-and-hardware-resources | ||||||
|  |     #   - https://gh.io/using-larger-runners (GitHub.com only) | ||||||
|  |     # Consider using larger runners or machines with greater resources for possible analysis time improvements. | ||||||
|  |     runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} | ||||||
|  |     permissions: | ||||||
|  |       # required for all workflows | ||||||
|  |       security-events: write | ||||||
|  |  | ||||||
|  |       # required to fetch internal or private CodeQL packs | ||||||
|  |       packages: read | ||||||
|  |  | ||||||
|  |       # only required for workflows in private repositories | ||||||
|  |       actions: read | ||||||
|  |       contents: read | ||||||
|  |  | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         include: | ||||||
|  |         - language: actions | ||||||
|  |           build-mode: none | ||||||
|  |         - language: javascript-typescript | ||||||
|  |           build-mode: none | ||||||
|  |         # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' | ||||||
|  |         # Use `c-cpp` to analyze code written in C, C++ or both | ||||||
|  |         # Use 'java-kotlin' to analyze code written in Java, Kotlin or both | ||||||
|  |         # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both | ||||||
|  |         # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, | ||||||
|  |         # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. | ||||||
|  |         # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | ||||||
|  |         # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages | ||||||
|  |     steps: | ||||||
|  |     - name: Checkout repository | ||||||
|  |       uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |     # Add any setup steps before running the `github/codeql-action/init` action. | ||||||
|  |     # This includes steps like installing compilers or runtimes (`actions/setup-node` | ||||||
|  |     # or others). This is typically only required for manual builds. | ||||||
|  |     # - name: Setup runtime (example) | ||||||
|  |     #   uses: actions/setup-example@v1 | ||||||
|  |  | ||||||
|  |     # Initializes the CodeQL tools for scanning. | ||||||
|  |     - name: Initialize CodeQL | ||||||
|  |       uses: github/codeql-action/init@v3 | ||||||
|  |       with: | ||||||
|  |         languages: ${{ matrix.language }} | ||||||
|  |         build-mode: ${{ matrix.build-mode }} | ||||||
|  |         # If you wish to specify custom queries, you can do so here or in a config file. | ||||||
|  |         # By default, queries listed here will override any specified in a config file. | ||||||
|  |         # Prefix the list here with "+" to use these queries and those in the config file. | ||||||
|  |  | ||||||
|  |         # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs | ||||||
|  |         # queries: security-extended,security-and-quality | ||||||
|  |  | ||||||
|  |     # If the analyze step fails for one of the languages you are analyzing with | ||||||
|  |     # "We were unable to automatically build your code", modify the matrix above | ||||||
|  |     # to set the build mode to "manual" for that language. Then modify this step | ||||||
|  |     # to build your code. | ||||||
|  |     # ℹ️ Command-line programs to run using the OS shell. | ||||||
|  |     # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun | ||||||
|  |     - if: matrix.build-mode == 'manual' | ||||||
|  |       shell: bash | ||||||
|  |       run: | | ||||||
|  |         echo 'If you are using a "manual" build mode for one or more of the' \ | ||||||
|  |           'languages you are analyzing, replace this with the commands to build' \ | ||||||
|  |           'your code, for example:' | ||||||
|  |         echo '  make bootstrap' | ||||||
|  |         echo '  make release' | ||||||
|  |         exit 1 | ||||||
|  |  | ||||||
|  |     - name: Perform CodeQL Analysis | ||||||
|  |       uses: github/codeql-action/analyze@v3 | ||||||
|  |       with: | ||||||
|  |         category: "/language:${{matrix.language}}" | ||||||
							
								
								
									
										84
									
								
								.github/workflows/dev.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,9 +1,9 @@ | |||||||
| name: Dev | name: Dev | ||||||
| on: | on: | ||||||
|   push: |   push: | ||||||
|     branches-ignore: |     branches: [ develop ] | ||||||
|       - 'develop' |   pull_request: | ||||||
|       - 'feature/update**' |     branches: [ develop ] | ||||||
|  |  | ||||||
| concurrency: | concurrency: | ||||||
|   group: ${{ github.workflow }}-${{ github.ref }} |   group: ${{ github.workflow }}-${{ github.ref }} | ||||||
| @@ -15,7 +15,73 @@ env: | |||||||
|   IMAGE_NAME: ${{ github.repository_owner }}/notes |   IMAGE_NAME: ${{ github.repository_owner }}/notes | ||||||
|   TEST_TAG: ${{ github.repository_owner }}/notes:test |   TEST_TAG: ${{ github.repository_owner }}/notes:test | ||||||
|  |  | ||||||
|  | permissions: | ||||||
|  |   pull-requests: write  # for PR comments | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|  |   report-electron-size: | ||||||
|  |     name: Report Electron size | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout the repository | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       - name: Set up node & dependencies | ||||||
|  |         uses: actions/setup-node@v4 | ||||||
|  |         with: | ||||||
|  |           node-version: 22 | ||||||
|  |           cache: "npm" | ||||||
|  |  | ||||||
|  |       - run: npm ci | ||||||
|  |  | ||||||
|  |       - name: Run the build | ||||||
|  |         uses: ./.github/actions/build-electron | ||||||
|  |         with: | ||||||
|  |           os: linux | ||||||
|  |           arch: x64 | ||||||
|  |           shell: bash | ||||||
|  |           forge_platform: linux | ||||||
|  |  | ||||||
|  |       - name: Run the Electron size report | ||||||
|  |         uses: ./.github/actions/report-size | ||||||
|  |         with: | ||||||
|  |           paths: 'upload/**/*' | ||||||
|  |           onlyDiff: 'true' | ||||||
|  |           branch: 'develop' | ||||||
|  |           header: 'Electron size report' | ||||||
|  |           unit: "MB" | ||||||
|  |           ghToken: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |   report-server-size: | ||||||
|  |     name: Report server size | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout the repository | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       - name: Set up node & dependencies | ||||||
|  |         uses: actions/setup-node@v4 | ||||||
|  |         with: | ||||||
|  |           node-version: 22 | ||||||
|  |           cache: "npm" | ||||||
|  |  | ||||||
|  |       - run: npm ci | ||||||
|  |  | ||||||
|  |       - name: Run the build | ||||||
|  |         uses: ./.github/actions/build-server | ||||||
|  |         with: | ||||||
|  |           os: linux | ||||||
|  |           arch: x64 | ||||||
|  |  | ||||||
|  |       - name: Run the server size report | ||||||
|  |         uses: ./.github/actions/report-size | ||||||
|  |         with: | ||||||
|  |           paths: 'upload/**/*' | ||||||
|  |           onlyDiff: 'true' | ||||||
|  |           branch: 'develop' | ||||||
|  |           header: 'Server size report' | ||||||
|  |           unit: "MB" | ||||||
|  |           ghToken: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |  | ||||||
|   test_dev: |   test_dev: | ||||||
|     name: Test development |     name: Test development | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
| @@ -26,7 +92,7 @@ jobs: | |||||||
|       - name: Set up node & dependencies |       - name: Set up node & dependencies | ||||||
|         uses: actions/setup-node@v4 |         uses: actions/setup-node@v4 | ||||||
|         with: |         with: | ||||||
|           node-version: 20 |           node-version: 22 | ||||||
|           cache: "npm" |           cache: "npm" | ||||||
|  |  | ||||||
|       - run: npm ci |       - run: npm ci | ||||||
| @@ -44,6 +110,10 @@ jobs: | |||||||
|       - test_dev |       - test_dev | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v4 | ||||||
|  |       - name: Install dependencies | ||||||
|  |         run: npm ci | ||||||
|  |       - name: Update build info | ||||||
|  |         run: npm run chore:update-build-info | ||||||
|       - uses: docker/setup-buildx-action@v3 |       - uses: docker/setup-buildx-action@v3 | ||||||
|       - uses: docker/build-push-action@v6 |       - uses: docker/build-push-action@v6 | ||||||
|         with: |         with: | ||||||
| @@ -64,6 +134,12 @@ jobs: | |||||||
|       - name: Checkout the repository |       - name: Checkout the repository | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       - name: Install dependencies | ||||||
|  |         run: npm ci | ||||||
|  |  | ||||||
|  |       - name: Update build info | ||||||
|  |         run: npm run chore:update-build-info | ||||||
|  |  | ||||||
|       - name: Set IMAGE_NAME to lowercase |       - name: Set IMAGE_NAME to lowercase | ||||||
|         run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV |         run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV | ||||||
|       - name: Set TEST_TAG to lowercase |       - name: Set TEST_TAG to lowercase | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								.github/workflows/main-docker.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -45,7 +45,7 @@ jobs: | |||||||
|       - name: Set up node & dependencies |       - name: Set up node & dependencies | ||||||
|         uses: actions/setup-node@v4 |         uses: actions/setup-node@v4 | ||||||
|         with: |         with: | ||||||
|           node-version: 20 |           node-version: 22 | ||||||
|           cache: "npm" |           cache: "npm" | ||||||
|  |  | ||||||
|       - name: Install npm dependencies |       - name: Install npm dependencies | ||||||
| @@ -131,6 +131,13 @@ jobs: | |||||||
|  |  | ||||||
|       - name: Checkout repository |       - name: Checkout repository | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       - name: Install dependencies | ||||||
|  |         run: npm ci | ||||||
|  |  | ||||||
|  |       - name: Update build info | ||||||
|  |         run: npm run chore:update-build-info | ||||||
|  |  | ||||||
|       - name: Docker meta |       - name: Docker meta | ||||||
|         id: meta |         id: meta | ||||||
|         uses: docker/metadata-action@v5 |         uses: docker/metadata-action@v5 | ||||||
|   | |||||||
							
								
								
									
										93
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,93 +0,0 @@ | |||||||
| name: Main |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - "feature/update**" |  | ||||||
|       - "feature/server_esm**" |  | ||||||
|     paths-ignore: |  | ||||||
|       - "docs/**" |  | ||||||
|       - ".github/workflows/main-docker.yml" |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| concurrency: |  | ||||||
|   group: ${{ github.workflow }}-${{ github.ref }} |  | ||||||
|   cancel-in-progress: true |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   make-electron: |  | ||||||
|     name: Make Electron |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         arch: [x64, arm64] |  | ||||||
|         os: |  | ||||||
|           - name: macos |  | ||||||
|             image: macos-latest |  | ||||||
|             extension: [dmg, zip] |  | ||||||
|           - name: linux |  | ||||||
|             image: ubuntu-latest |  | ||||||
|             extension: [deb, rpm, zip, flatpak] |  | ||||||
|           - name: windows |  | ||||||
|             image: windows-latest |  | ||||||
|             extension: [exe, zip] |  | ||||||
|     runs-on: ${{ matrix.os.image }} |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v4 |  | ||||||
|       - name: Set up node & dependencies |  | ||||||
|         uses: actions/setup-node@v4 |  | ||||||
|         with: |  | ||||||
|           node-version: 20 |  | ||||||
|       - name: Run the build |  | ||||||
|         uses: ./.github/actions/build-electron |  | ||||||
|         with: |  | ||||||
|           os: ${{ matrix.os.name }} |  | ||||||
|           arch: ${{ matrix.arch }} |  | ||||||
|           extension: ${{ matrix.os.extension }} |  | ||||||
|         env: |  | ||||||
|           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} |  | ||||||
|           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} |  | ||||||
|           APPLE_INSTALLER_CERTIFICATE_BASE64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_BASE64 }} |  | ||||||
|           APPLE_INSTALLER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }} |  | ||||||
|           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} |  | ||||||
|           APPLE_ID: ${{ secrets.APPLE_ID }} |  | ||||||
|           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} |  | ||||||
|  |  | ||||||
|       # Clean up keychain after build |  | ||||||
|       - name: Clean up keychain |  | ||||||
|         if: matrix.os.name == 'macos' && always() |  | ||||||
|         run: | |  | ||||||
|           security delete-keychain build.keychain |  | ||||||
|  |  | ||||||
|       - name: Publish artifacts |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.zip |  | ||||||
|           path: upload/*.zip |  | ||||||
|       - name: Publish installer artifacts |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.${{matrix.os.extension}} |  | ||||||
|           path: upload/*.${{ matrix.os.extension }} |  | ||||||
|  |  | ||||||
|   build_linux_server: |  | ||||||
|     name: Build Linux Server |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         arch: [x64, arm64] |  | ||||||
|         include: |  | ||||||
|           - arch: x64 |  | ||||||
|             runs-on: ubuntu-latest |  | ||||||
|           - arch: arm64 |  | ||||||
|             runs-on: ubuntu-24.04-arm |  | ||||||
|     runs-on: ${{ matrix.runs-on }} |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v4 |  | ||||||
|       - name: Run the build |  | ||||||
|         uses: ./.github/actions/build-server |  | ||||||
|         with: |  | ||||||
|           arch: ${{ matrix.arch }} |  | ||||||
|       - uses: actions/upload-artifact@v4 |  | ||||||
|         with: |  | ||||||
|           name: TriliumNextNotes linux server ${{ matrix.arch }} |  | ||||||
|           path: upload/TriliumNextNotes-linux-${{ matrix.arch }}-${{ github.ref_name }}.tar.xz |  | ||||||
							
								
								
									
										34
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -5,6 +5,13 @@ on: | |||||||
|     - cron: "0 2 * * *" # run at 2 AM UTC |     - cron: "0 2 * * *" # run at 2 AM UTC | ||||||
|   # This can be used to allow manually triggering nightlies from the web interface |   # This can be used to allow manually triggering nightlies from the web interface | ||||||
|   workflow_dispatch: |   workflow_dispatch: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - renovate/electron-forge* | ||||||
|  |   pull_request: | ||||||
|  |     paths: | ||||||
|  |       - .github/actions/build-electron/* | ||||||
|  |       - forge.config.cjs | ||||||
| env: | env: | ||||||
|   GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label} |   GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label} | ||||||
|   GITHUB_RELEASE_ID: 179589950 |   GITHUB_RELEASE_ID: 179589950 | ||||||
| @@ -20,22 +27,24 @@ jobs: | |||||||
|         os: |         os: | ||||||
|           - name: macos |           - name: macos | ||||||
|             image: macos-latest |             image: macos-latest | ||||||
|             extension: [dmg, zip] |             shell: bash | ||||||
|  |             forge_platform: darwin | ||||||
|           - name: linux |           - name: linux | ||||||
|             image: ubuntu-latest |             image: ubuntu-latest | ||||||
|             extension: [deb, rpm, zip, flatpak] |             shell: bash | ||||||
|  |             forge_platform: linux | ||||||
|           - name: windows |           - name: windows | ||||||
|             image: windows-latest |             image: win-signing | ||||||
|             extension: [exe, zip] |             shell: cmd | ||||||
|  |             forge_platform: win32 | ||||||
|     runs-on: ${{ matrix.os.image }} |     runs-on: ${{ matrix.os.image }} | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v4 | ||||||
|       - name: Set up node & dependencies |       - name: Set up node & dependencies | ||||||
|         uses: actions/setup-node@v4 |         uses: actions/setup-node@v4 | ||||||
|         with: |         with: | ||||||
|           node-version: 20 |           node-version: 22 | ||||||
|       - name: Install dependencies |       - name: Install dependencies | ||||||
|         shell: bash |  | ||||||
|         run: npm ci |         run: npm ci | ||||||
|       - name: Update nightly version |       - name: Update nightly version | ||||||
|         run: npm run chore:ci-update-nightly-version |         run: npm run chore:ci-update-nightly-version | ||||||
| @@ -44,7 +53,8 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           os: ${{ matrix.os.name }} |           os: ${{ matrix.os.name }} | ||||||
|           arch: ${{ matrix.arch }} |           arch: ${{ matrix.arch }} | ||||||
|           extension: ${{ join(matrix.os.extension, ' ') }} |           shell: ${{ matrix.os.shell }} | ||||||
|  |           forge_platform: ${{ matrix.os.forge_platform }} | ||||||
|         env: |         env: | ||||||
|           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} |           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} | ||||||
|           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} |           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} | ||||||
| @@ -53,9 +63,11 @@ jobs: | |||||||
|           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} |           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | ||||||
|           APPLE_ID: ${{ secrets.APPLE_ID }} |           APPLE_ID: ${{ secrets.APPLE_ID }} | ||||||
|           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} |           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | ||||||
|  |           WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} | ||||||
|  |  | ||||||
|       - name: Publish release |       - name: Publish release | ||||||
|         uses: softprops/action-gh-release@v2 |         uses: softprops/action-gh-release@v2 | ||||||
|  |         if: ${{ github.event_name != 'pull_request' }} | ||||||
|         with: |         with: | ||||||
|           make_latest: false |           make_latest: false | ||||||
|           prerelease: true |           prerelease: true | ||||||
| @@ -65,6 +77,13 @@ jobs: | |||||||
|           tag_name: nightly |           tag_name: nightly | ||||||
|           name: Nightly Build |           name: Nightly Build | ||||||
|  |  | ||||||
|  |       - name: Publish artifacts | ||||||
|  |         uses: actions/upload-artifact@v4 | ||||||
|  |         if: ${{ github.event_name == 'pull_request' }} | ||||||
|  |         with: | ||||||
|  |           name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }} | ||||||
|  |           path: upload | ||||||
|  |  | ||||||
|   nightly-server: |   nightly-server: | ||||||
|     name: Deploy server nightly |     name: Deploy server nightly | ||||||
|     strategy: |     strategy: | ||||||
| @@ -88,6 +107,7 @@ jobs: | |||||||
|  |  | ||||||
|       - name: Publish release |       - name: Publish release | ||||||
|         uses: softprops/action-gh-release@v2 |         uses: softprops/action-gh-release@v2 | ||||||
|  |         if: ${{ github.event_name != 'pull_request' }} | ||||||
|         with: |         with: | ||||||
|           make_latest: false |           make_latest: false | ||||||
|           prerelease: true |           prerelease: true | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -3,7 +3,6 @@ on: | |||||||
|   push: |   push: | ||||||
|     tags: |     tags: | ||||||
|       - "v*" |       - "v*" | ||||||
|   workflow_dispatch: |  | ||||||
| permissions: | permissions: | ||||||
|   contents: write |   contents: write | ||||||
| concurrency: | concurrency: | ||||||
| @@ -20,26 +19,30 @@ jobs: | |||||||
|         os: |         os: | ||||||
|           - name: macos |           - name: macos | ||||||
|             image: macos-latest |             image: macos-latest | ||||||
|             extension: [dmg, zip] |             shell: bash | ||||||
|  |             forge_platform: darwin | ||||||
|           - name: linux |           - name: linux | ||||||
|             image: ubuntu-latest |             image: ubuntu-latest | ||||||
|             extension: [deb, rpm, zip, flatpak] |             shell: bash | ||||||
|  |             forge_platform: linux | ||||||
|           - name: windows |           - name: windows | ||||||
|             image: windows-latest |             image: win-signing | ||||||
|             extension: [exe, zip] |             shell: cmd | ||||||
|  |             forge_platform: win32 | ||||||
|     runs-on: ${{ matrix.os.image }} |     runs-on: ${{ matrix.os.image }} | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v4 |       - uses: actions/checkout@v4 | ||||||
|       - name: Set up node & dependencies |       - name: Set up node & dependencies | ||||||
|         uses: actions/setup-node@v4 |         uses: actions/setup-node@v4 | ||||||
|         with: |         with: | ||||||
|           node-version: 20 |           node-version: 22 | ||||||
|       - name: Run the build |       - name: Run the build | ||||||
|         uses: ./.github/actions/build-electron |         uses: ./.github/actions/build-electron | ||||||
|         with: |         with: | ||||||
|           os: ${{ matrix.os.name }} |           os: ${{ matrix.os.name }} | ||||||
|           arch: ${{ matrix.arch }} |           arch: ${{ matrix.arch }} | ||||||
|           extension: ${{ join(matrix.os.extension, ' ') }} |           shell: ${{ matrix.os.shell }} | ||||||
|  |           forge_platform: ${{ matrix.os.forge_platform }} | ||||||
|         env: |         env: | ||||||
|           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} |           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} | ||||||
|           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} |           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} | ||||||
| @@ -48,6 +51,7 @@ jobs: | |||||||
|           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} |           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | ||||||
|           APPLE_ID: ${{ secrets.APPLE_ID }} |           APPLE_ID: ${{ secrets.APPLE_ID }} | ||||||
|           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} |           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | ||||||
|  |           WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} | ||||||
|  |  | ||||||
|       - name: Publish release |       - name: Publish release | ||||||
|         uses: softprops/action-gh-release@v2 |         uses: softprops/action-gh-release@v2 | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -2,6 +2,7 @@ | |||||||
| .DS_Store | .DS_Store | ||||||
| node_modules/ | node_modules/ | ||||||
| dist/ | dist/ | ||||||
|  | upload/ | ||||||
| build/ | build/ | ||||||
| coverage/ | coverage/ | ||||||
| src/public/app-dist/ | src/public/app-dist/ | ||||||
| @@ -26,6 +27,7 @@ server-package.json | |||||||
| .idea/shelf/ | .idea/shelf/ | ||||||
| data/ | data/ | ||||||
| data-test/ | data-test/ | ||||||
|  | data-demo/ | ||||||
| tmp/ | tmp/ | ||||||
| .eslintcache | .eslintcache | ||||||
|  |  | ||||||
| @@ -37,3 +39,12 @@ images/app-icons/mac/*.png | |||||||
| /blob-report/ | /blob-report/ | ||||||
| /playwright/.cache/ | /playwright/.cache/ | ||||||
| /playwright/.auth/ | /playwright/.auth/ | ||||||
|  |  | ||||||
|  | data-docs/backup | ||||||
|  | data-docs/log | ||||||
|  | data-docs/session | ||||||
|  | data-docs/session_secret.txt | ||||||
|  | data-docs/document.* | ||||||
|  |  | ||||||
|  | # Webpack | ||||||
|  | webpack-stats.json | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| *.html |  | ||||||
| *.md |  | ||||||
| *.yml |  | ||||||
| libraries/* |  | ||||||
| docs/* |  | ||||||
| src/public/app/doc_notes/**/* |  | ||||||
							
								
								
									
										22
									
								
								.prettierrc
									
									
									
									
									
								
							
							
						
						| @@ -1,22 +0,0 @@ | |||||||
| { |  | ||||||
|     "printWidth": 200, |  | ||||||
|     "tabWidth": 4, |  | ||||||
|     "useTabs": false, |  | ||||||
|     "semi": true, |  | ||||||
|     "singleQuote": false, |  | ||||||
|     "quoteProps": "as-needed", |  | ||||||
|     "trailingComma": "none", |  | ||||||
|     "bracketSpacing": true, |  | ||||||
|     "arrowParens": "always", |  | ||||||
|     "proseWrap": "preserve", |  | ||||||
|     "htmlWhitespaceSensitivity": "css", |  | ||||||
|     "endOfLine": "lf", |  | ||||||
|     "overrides": [ |  | ||||||
|         { |  | ||||||
|             "files": ["*.json"], |  | ||||||
|             "options": { |  | ||||||
|                 "tabWidth": 2 |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     ] |  | ||||||
| } |  | ||||||
							
								
								
									
										5
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -2,6 +2,9 @@ | |||||||
|   "recommendations": [ |   "recommendations": [ | ||||||
|     "lokalise.i18n-ally", |     "lokalise.i18n-ally", | ||||||
|     "editorconfig.editorconfig", |     "editorconfig.editorconfig", | ||||||
|     "vitest.explorer" |     "vitest.explorer", | ||||||
|  |     "ms-playwright.playwright", | ||||||
|  |     "tobermory.es6-string-html", | ||||||
|  |     "dbaeumer.vscode-eslint" | ||||||
|   ] |   ] | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,8 +10,8 @@ COPY . . | |||||||
| RUN npm ci && \ | RUN npm ci && \ | ||||||
|     npm run build:prepare-dist && \ |     npm run build:prepare-dist && \ | ||||||
|     npm cache clean --force && \ |     npm cache clean --force && \ | ||||||
|     rm -rf dist/node_modules && \ |     rm -rf build/node_modules && \ | ||||||
|     mv dist/* \ |     mv build/* \ | ||||||
|       start-docker.sh \ |       start-docker.sh \ | ||||||
|       /usr/src/app/ && \ |       /usr/src/app/ && \ | ||||||
|     rm -rf \ |     rm -rf \ | ||||||
| @@ -39,8 +39,11 @@ COPY --from=builder /usr/src/app ./ | |||||||
|  |  | ||||||
| RUN sed -i "/electron/d" package.json && \ | RUN sed -i "/electron/d" package.json && \ | ||||||
|     npm ci --omit=dev && \ |     npm ci --omit=dev && \ | ||||||
|  |     node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \ | ||||||
|     npm cache clean --force && \ |     npm cache clean --force && \ | ||||||
|     rm -rf /tmp/node-compile-cache |     rm -rf \ | ||||||
|  |       /tmp/node-compile-cache \ | ||||||
|  |       /usr/src/app/bin/cleanupNodeModules.ts | ||||||
|  |  | ||||||
| # Configure container | # Configure container | ||||||
| EXPOSE 8080 | EXPOSE 8080 | ||||||
|   | |||||||
| @@ -10,8 +10,8 @@ COPY . . | |||||||
| RUN npm ci && \ | RUN npm ci && \ | ||||||
|     npm run build:prepare-dist && \ |     npm run build:prepare-dist && \ | ||||||
|     npm cache clean --force && \ |     npm cache clean --force && \ | ||||||
|     rm -rf dist/node_modules && \ |     rm -rf build/node_modules && \ | ||||||
|     mv dist/* \ |     mv build/* \ | ||||||
|       start-docker.sh \ |       start-docker.sh \ | ||||||
|       /usr/src/app/ && \ |       /usr/src/app/ && \ | ||||||
|     rm -rf \ |     rm -rf \ | ||||||
| @@ -34,8 +34,11 @@ COPY --from=builder /usr/src/app ./ | |||||||
|  |  | ||||||
| RUN sed -i "/electron/d" package.json && \ | RUN sed -i "/electron/d" package.json && \ | ||||||
|     npm ci --omit=dev && \ |     npm ci --omit=dev && \ | ||||||
|  |     node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \ | ||||||
|     npm cache clean --force && \ |     npm cache clean --force && \ | ||||||
|     rm -rf /tmp/node-compile-cache |     rm -rf \ | ||||||
|  |       /tmp/node-compile-cache \ | ||||||
|  |       /usr/src/app/bin/cleanupNodeModules.ts | ||||||
|  |  | ||||||
| # Add application user | # Add application user | ||||||
| RUN adduser -s /bin/false node; exit 0 | RUN adduser -s /bin/false node; exit 0 | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,6 +1,6 @@ | |||||||
| # TriliumNext Notes | # TriliumNext Notes | ||||||
|  |  | ||||||
|   |    | ||||||
|  |  | ||||||
| [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) | [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) | ||||||
|  |  | ||||||
| @@ -37,6 +37,7 @@ Feel free to join our official conversations. We would love to hear what feature | |||||||
| * Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting) | * Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting) | ||||||
| * Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions) | * Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions) | ||||||
| * Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts) | * Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts) | ||||||
|  | * Direct OpenID and TOTP integration for more secure login | ||||||
| * [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server | * [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server | ||||||
|   * there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting) |   * there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting) | ||||||
| * [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet | * [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet | ||||||
| @@ -79,10 +80,11 @@ xattr -c "/path/to/Trilium Next.app" | |||||||
|  |  | ||||||
| ### Mobile | ### Mobile | ||||||
|  |  | ||||||
| To use TriliumNext on a mobile device: | To use TriliumNext on a mobile device, you can use a mobile web browser to access the mobile interface of a server installation (see below). | ||||||
|  |  | ||||||
| * Use a mobile web browser to access the mobile interface of a server installation (see below) | If you prefer a native Android app, you can use [TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid). Report bugs and missing features at [their repository](https://github.com/FliegendeWurst/TriliumDroid). | ||||||
| * Use of a mobile app is not yet supported ([see here](https://github.com/TriliumNext/Notes/issues/72)) to track mobile improvements. |  | ||||||
|  | See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support. | ||||||
|  |  | ||||||
| ### Server | ### Server | ||||||
|  |  | ||||||
| @@ -107,7 +109,8 @@ npm run server:start | |||||||
|  |  | ||||||
| ### Documentation | ### Documentation | ||||||
|  |  | ||||||
| Head on over to our [Docs repo](https://github.com/TriliumNext/Docs) | We are currently transitioning to a new documentation mechanism. | ||||||
|  | Meanwhile you can still view the [archived Docs repository](https://github.com/TriliumNext/Docs). | ||||||
|  |  | ||||||
| ## 👏 Shoutouts | ## 👏 Shoutouts | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,13 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
|  |  | ||||||
| cd src/public |  | ||||||
| echo Summary |  | ||||||
| cloc HEAD \ |  | ||||||
|     --git --md \ |  | ||||||
|     --include-lang=javascript,typescript |  | ||||||
|  |  | ||||||
| echo By file |  | ||||||
| cloc HEAD \ |  | ||||||
|     --git --md \ |  | ||||||
|     --include-lang=javascript,typescript \ |  | ||||||
|     --by-file | grep \.js\| |  | ||||||
| @@ -21,54 +21,53 @@ fi | |||||||
| echo "Selected Arch: $ARCH" | echo "Selected Arch: $ARCH" | ||||||
|  |  | ||||||
| # Set Node.js version and architecture-specific filename | # Set Node.js version and architecture-specific filename | ||||||
| NODE_VERSION=20.15.1 | NODE_VERSION=22.14.0 | ||||||
| NODE_ARCH=$ARCH |  | ||||||
|  |  | ||||||
| # Debug output | BUILD_DIR="./build" | ||||||
| echo "Node arch: $NODE_ARCH" | DIST_DIR="./dist" | ||||||
|  | CLEANUP_SCRIPT="./bin/cleanupNodeModules.ts" | ||||||
|  |  | ||||||
| # Special case for x64 in Node.js downloads |  | ||||||
| if [ "$NODE_ARCH" = "x64" ]; then |  | ||||||
|     NODE_FILENAME="x64" |  | ||||||
| elif [ "$NODE_ARCH" = "arm64" ]; then |  | ||||||
|     NODE_FILENAME="arm64" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Debug output | # Trigger the build | ||||||
| echo "Node filename: $NODE_FILENAME" | echo "Build start" | ||||||
|  | npm run build:prepare-dist | ||||||
|  | echo "Build finished" | ||||||
|  |  | ||||||
| PKG_DIR=dist/trilium-linux-${ARCH}-server | # pruning of unnecessary files and devDeps in node_modules | ||||||
| echo "Package directory: $PKG_DIR" | node --experimental-strip-types $CLEANUP_SCRIPT $BUILD_DIR | ||||||
|  |  | ||||||
| if [ "$1" != "DONTCOPY" ] | NODE_FILENAME=node-v${NODE_VERSION}-linux-${ARCH} | ||||||
| then |  | ||||||
|     # Need to modify copy-trilium.sh to accept the target directory |  | ||||||
|     ./bin/copy-trilium.sh "$PKG_DIR" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| cd dist | echo "Downloading Node.js runtime $NODE_FILENAME..." | ||||||
| wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz | cd $BUILD_DIR | ||||||
| tar xfJ node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz | wget -qO- https://nodejs.org/dist/v${NODE_VERSION}/${NODE_FILENAME}.tar.xz | tar xfJ - | ||||||
| rm node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz | mv $NODE_FILENAME node | ||||||
| cd .. | cd .. | ||||||
|  |  | ||||||
| mv dist/node-v${NODE_VERSION}-linux-${NODE_FILENAME} $PKG_DIR/node |  | ||||||
|  |  | ||||||
| rm -r $PKG_DIR/node/lib/node_modules/npm | rm -r $BUILD_DIR/node/lib/node_modules/{npm,corepack} \ | ||||||
| rm -r $PKG_DIR/node/include/node |     $BUILD_DIR/node/bin/{npm,npx,corepack} \ | ||||||
|  |     $BUILD_DIR/node/CHANGELOG.md \ | ||||||
|  |     $BUILD_DIR/node/include/node \ | ||||||
|  |     $BUILD_DIR/node_modules/electron* \ | ||||||
|  |     $BUILD_DIR/electron*.{js,map} | ||||||
|  |  | ||||||
| rm -r $PKG_DIR/node_modules/electron* | printf "#!/bin/sh\n./node/bin/node src/main\n" > $BUILD_DIR/trilium.sh | ||||||
| rm -r $PKG_DIR/electron*.js | chmod 755 $BUILD_DIR/trilium.sh | ||||||
|  |  | ||||||
| printf "#!/bin/sh\n./node/bin/node src/main" > $PKG_DIR/trilium.sh | # TriliumNextTODO: is this still required? If yes → move to copy-dist/copy-trilium | ||||||
| chmod 755 $PKG_DIR/trilium.sh | cp bin/tpl/anonymize-database.sql $BUILD_DIR/ | ||||||
|  |  | ||||||
| cp bin/tpl/anonymize-database.sql $PKG_DIR/ |  | ||||||
|  |  | ||||||
| cp -r translations $PKG_DIR/ |  | ||||||
|  |  | ||||||
| VERSION=`jq -r ".version" package.json` | VERSION=`jq -r ".version" package.json` | ||||||
|  |  | ||||||
| cd dist |  | ||||||
|  |  | ||||||
| tar cJf trilium-linux-${ARCH}-server-${VERSION}.tar.xz trilium-linux-${ARCH}-server | ARCHIVE_NAME="TriliumNextNotes-Server-${VERSION}-linux-${ARCH}" | ||||||
|  | echo "Creating Archive $ARCHIVE_NAME..." | ||||||
|  |  | ||||||
|  | mkdir $DIST_DIR | ||||||
|  | cp -r "$BUILD_DIR" "$DIST_DIR/$ARCHIVE_NAME" | ||||||
|  | cd $DIST_DIR | ||||||
|  | tar cJf "$ARCHIVE_NAME.tar.xz" "$ARCHIVE_NAME" | ||||||
|  | rm -rf "$ARCHIVE_NAME" | ||||||
|  |  | ||||||
|  | echo "Server Build Completed!" | ||||||
							
								
								
									
										53
									
								
								bin/build.sh
									
									
									
									
									
								
							
							
						
						| @@ -1,53 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
|  |  | ||||||
| set -e  # Fail on any command error |  | ||||||
|  |  | ||||||
| if ! command -v jq &> /dev/null; then |  | ||||||
|   echo "Missing command: jq" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if ! command -v fakeroot &> /dev/null; then |  | ||||||
|   echo "Missing command: fakeroot" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if ! command -v dpkg-deb &> /dev/null; then |  | ||||||
|   echo "Missing command: dpkg-deb" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if dpkg-deb 2>&1 | grep BusyBox &> /dev/null; then |  | ||||||
|   echo "The dpkg-deb binary provided by BusyBox is not compatible. The Debian tool needs to be used instead." |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if ! command -v wine &> /dev/null; then |  | ||||||
|   echo "Missing command: wine" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| echo "Deleting existing builds" |  | ||||||
|  |  | ||||||
| rm -rf dist/* |  | ||||||
|  |  | ||||||
| SRC_DIR=dist/trilium-src |  | ||||||
|  |  | ||||||
| bin/copy-trilium.sh $SRC_DIR |  | ||||||
|  |  | ||||||
| # we'll just copy the same SRC dir to all the builds so we don't have to do npm install in each separately |  | ||||||
| cp -r $SRC_DIR ./dist/trilium-linux-x64-src |  | ||||||
| cp -r $SRC_DIR ./dist/trilium-linux-x64-server |  | ||||||
| cp -r $SRC_DIR ./dist/trilium-windows-x64-src |  | ||||||
| cp -r $SRC_DIR ./dist/trilium-mac-x64-src |  | ||||||
| cp -r $SRC_DIR ./dist/trilium-mac-arm64-src |  | ||||||
|  |  | ||||||
| bin/build-win-x64.sh DONTCOPY |  | ||||||
|  |  | ||||||
| bin/build-mac-x64.sh DONTCOPY |  | ||||||
|  |  | ||||||
| bin/build-mac-arm64.sh DONTCOPY |  | ||||||
|  |  | ||||||
| bin/build-linux-x64.sh DONTCOPY |  | ||||||
|  |  | ||||||
| bin/build-server.sh DONTCOPY |  | ||||||
							
								
								
									
										109
									
								
								bin/cleanupNodeModules.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,109 @@ | |||||||
|  | import fs from "fs-extra"; | ||||||
|  | import path from "path"; | ||||||
|  | import type { Dirent } from "fs-extra"; | ||||||
|  | import { execSync } from "node:child_process"; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Example usage with node >= v22: | ||||||
|  |  *    node --experimental-strip-types bin/cleanupNodeModules.ts /path/to/build/folder [--skip-prune-dev-deps] | ||||||
|  |  * Example usage with tsx: | ||||||
|  |  *    tsx bin/cleanupNodeModules.ts /path/to/build/folder [--skip-prune-dev-deps] | ||||||
|  |  */ | ||||||
|  | function main() { | ||||||
|  |  | ||||||
|  |     if (process.argv.length > 4 || process.argv.length < 3) { | ||||||
|  |         console.error("Usage: cleanupNodeModules.ts [path-to-build-folder] [--skip-prune-dev-deps]"); | ||||||
|  |         process.exit(1); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     const basePath = process.argv[2]; | ||||||
|  |     const pruneDevDeps = process.argv[3] !== "--skip-prune-dev-deps"; | ||||||
|  |  | ||||||
|  |     if (!fs.existsSync(basePath)) { | ||||||
|  |         console.error(`Supplied path '${basePath}' does not exist. Aborting.`); | ||||||
|  |         process.exit(1); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     console.log(`Starting pruning of node_modules ${!pruneDevDeps ? '(skipping npm pruning)' : ''} in '${basePath}'...`); | ||||||
|  |     cleanupNodeModules(basePath, pruneDevDeps); | ||||||
|  |     console.log("Successfully pruned node_modules."); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function cleanupNodeModules(basePath: string, pruneDevDeps: boolean = true) { | ||||||
|  |  | ||||||
|  |     // This needs to run for the server and Docker build, | ||||||
|  |     // but needs to be skipped for electron-forge: its | ||||||
|  |     // built-in pruning takes care of it already | ||||||
|  |     if (pruneDevDeps) { | ||||||
|  |         execSync(`npm ci --omit=dev --prefix ${basePath}`); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     const nodeModulesDirPath = path.join(basePath, "node_modules"); | ||||||
|  |     const nodeModulesContent = fs.readdirSync(nodeModulesDirPath, { recursive: true, withFileTypes: true }); | ||||||
|  |     //const libDir = fs.readdirSync(path.join(basePath, "./libraries"), { recursive: true, withFileTypes: true }); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Delete unnecessary folders | ||||||
|  |      */ | ||||||
|  |     const filterableDirs = new Set([ | ||||||
|  |         "demo", | ||||||
|  |         "demos", | ||||||
|  |         "doc", | ||||||
|  |         "docs", | ||||||
|  |         "example", | ||||||
|  |         "examples", | ||||||
|  |         "test", | ||||||
|  |         "tests" | ||||||
|  |     ]); | ||||||
|  |  | ||||||
|  |     nodeModulesContent | ||||||
|  |         .filter(el => el.isDirectory() && filterableDirs.has(el.name)) | ||||||
|  |         .forEach(dir => removeDirent(dir)); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Delete unnecessary files based on file extension | ||||||
|  |      * TODO filter out useless (README).md files | ||||||
|  |      */ | ||||||
|  |     const filterableFileExt = new Set([ | ||||||
|  |         "ts", | ||||||
|  |         "map" | ||||||
|  |     ]); | ||||||
|  |  | ||||||
|  |     nodeModulesContent | ||||||
|  |         // TriliumNextTODO: check if we can improve this naive file ext matching, without introducing any additional dependency | ||||||
|  |         .filter(el => el.isFile() && filterableFileExt.has(el.name.split(".").at(-1) || "")) | ||||||
|  |         .forEach(dir => removeDirent(dir)); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Delete specific unnecessary folders | ||||||
|  |      * TODO: check if we want removeSync to throw an error, if path does not exist anymore -> currently it will silently fail | ||||||
|  |      */ | ||||||
|  |     const extraFoldersDelete = new Set([ | ||||||
|  |         path.join(nodeModulesDirPath, ".bin"), | ||||||
|  |         path.join(nodeModulesDirPath, "@excalidraw", "excalidraw", "dist", "dev"), | ||||||
|  |         path.join(nodeModulesDirPath, "boxicons", "svg"), | ||||||
|  |         path.join(nodeModulesDirPath, "boxicons", "node_modules"), | ||||||
|  |         path.join(nodeModulesDirPath, "boxicons", "src"), | ||||||
|  |         path.join(nodeModulesDirPath, "boxicons", "iconjar"), | ||||||
|  |         path.join(nodeModulesDirPath, "@jimp", "plugin-print", "fonts"), | ||||||
|  |         path.join(nodeModulesDirPath, "jimp", "dist", "browser") // missing "@" in front of jimp is not a typo here | ||||||
|  |     ]); | ||||||
|  |  | ||||||
|  |     nodeModulesContent | ||||||
|  |         .filter(el => el.isDirectory() && extraFoldersDelete.has(path.join(el.parentPath, el.name))) | ||||||
|  |         .forEach(dir => removeDirent(dir)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | function removeDirent(el: Dirent) { | ||||||
|  |     const elementToDelete = path.join(el.parentPath, el.name); | ||||||
|  |     fs.removeSync(elementToDelete); | ||||||
|  |  | ||||||
|  |     if (process.env.VERBOSE) { | ||||||
|  |         console.log(`Deleted ${elementToDelete}`); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | main() | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| import fs from "fs-extra"; | import fs from "fs-extra"; | ||||||
| import path from "path"; | import path from "path"; | ||||||
|  |  | ||||||
| const DEST_DIR = "./dist"; | const DEST_DIR = "./build"; | ||||||
|  |  | ||||||
| const VERBOSE = process.env.VERBOSE; | const VERBOSE = process.env.VERBOSE; | ||||||
|  |  | ||||||
| @@ -11,16 +11,11 @@ function log(...args: any[]) { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| function copyNodeModuleFileOrFolder(source: string) { |  | ||||||
|     const destination = path.join(DEST_DIR, source); |  | ||||||
|     log(`Copying ${source} to ${destination}`); |  | ||||||
|     fs.ensureDirSync(path.dirname(destination)); |  | ||||||
|     fs.copySync(source, destination); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| try { | try { | ||||||
|  |  | ||||||
|     const assetsToCopy = new Set([ |     const assetsToCopy = new Set([ | ||||||
|  |         // copy node_module, to avoid downloading packages a 2nd time during pruning | ||||||
|  |         "./node_modules", | ||||||
|         "./images", |         "./images", | ||||||
|         "./libraries", |         "./libraries", | ||||||
|         "./translations", |         "./translations", | ||||||
| @@ -28,6 +23,13 @@ try { | |||||||
|         "./config-sample.ini", |         "./config-sample.ini", | ||||||
|         "./package-lock.json", |         "./package-lock.json", | ||||||
|         "./package.json", |         "./package.json", | ||||||
|  |         "./LICENSE", | ||||||
|  |         "./README.md", | ||||||
|  |         "./forge.config.cjs", | ||||||
|  |         "./bin/tpl/", | ||||||
|  |         "./bin/cleanupNodeModules.ts", | ||||||
|  |         "./bin/electron-forge/desktop.ejs", | ||||||
|  |         "./bin/electron-forge/sign-windows.cjs", | ||||||
|         "./src/views/", |         "./src/views/", | ||||||
|         "./src/etapi/etapi.openapi.yaml", |         "./src/etapi/etapi.openapi.yaml", | ||||||
|         "./src/routes/api/openapi.json", |         "./src/routes/api/openapi.json", | ||||||
| @@ -36,7 +38,8 @@ try { | |||||||
|         "./src/public/robots.txt", |         "./src/public/robots.txt", | ||||||
|         "./src/public/fonts", |         "./src/public/fonts", | ||||||
|         "./src/public/stylesheets", |         "./src/public/stylesheets", | ||||||
|         "./src/public/translations" |         "./src/public/translations", | ||||||
|  |         "./packages/turndown-plugin-gfm/src" | ||||||
|     ]); |     ]); | ||||||
|  |  | ||||||
|     for (const asset of assetsToCopy) { |     for (const asset of assetsToCopy) { | ||||||
| @@ -53,54 +56,10 @@ try { | |||||||
|         fs.copySync(dir, path.join(PUBLIC_DIR, path.basename(dir))); |         fs.copySync(dir, path.join(PUBLIC_DIR, path.basename(dir))); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     const nodeModulesFile = new Set([ |  | ||||||
|         "node_modules/react/umd/react.production.min.js", |  | ||||||
|         "node_modules/react/umd/react.development.js", |  | ||||||
|         "node_modules/react-dom/umd/react-dom.production.min.js", |  | ||||||
|         "node_modules/react-dom/umd/react-dom.development.js", |  | ||||||
|         "node_modules/katex/dist/katex.min.js", |  | ||||||
|         "node_modules/katex/dist/contrib/mhchem.min.js", |  | ||||||
|         "node_modules/katex/dist/contrib/auto-render.min.js", |  | ||||||
|         "node_modules/@highlightjs/cdn-assets/highlight.min.js", |  | ||||||
|         "node_modules/@mind-elixir/node-menu/dist/node-menu.umd.cjs" |  | ||||||
|     ]); |  | ||||||
|  |  | ||||||
|     const nodeModulesFolder = new Set([ |  | ||||||
|         "node_modules/@excalidraw/excalidraw/dist/", |  | ||||||
|         "node_modules/katex/dist/", |  | ||||||
|         "node_modules/dayjs/", |  | ||||||
|         "node_modules/boxicons/css/", |  | ||||||
|         "node_modules/boxicons/fonts/", |  | ||||||
|         "node_modules/mermaid/dist/", |  | ||||||
|         "node_modules/jquery/dist/", |  | ||||||
|         "node_modules/jquery-hotkeys/", |  | ||||||
|         "node_modules/split.js/dist/", |  | ||||||
|         "node_modules/panzoom/dist/", |  | ||||||
|         "node_modules/i18next/", |  | ||||||
|         "node_modules/i18next-http-backend/", |  | ||||||
|         "node_modules/jsplumb/dist/", |  | ||||||
|         "node_modules/vanilla-js-wheel-zoom/dist/", |  | ||||||
|         "node_modules/mark.js/dist/", |  | ||||||
|         "node_modules/normalize.css/", |  | ||||||
|         "node_modules/jquery.fancytree/dist/", |  | ||||||
|         "node_modules/autocomplete.js/dist/", |  | ||||||
|         "node_modules/codemirror/lib/", |  | ||||||
|         "node_modules/codemirror/addon/", |  | ||||||
|         "node_modules/codemirror/mode/", |  | ||||||
|         "node_modules/codemirror/keymap/", |  | ||||||
|         "node_modules/mind-elixir/dist/", |  | ||||||
|         "node_modules/@highlightjs/cdn-assets/languages", |  | ||||||
|         "node_modules/@highlightjs/cdn-assets/styles", |  | ||||||
|         "node_modules/leaflet/dist" |  | ||||||
|     ]); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     for (const nodeModuleItem of [...nodeModulesFile, ...nodeModulesFolder]) { |  | ||||||
|         copyNodeModuleFileOrFolder(nodeModuleItem); |  | ||||||
|     } |  | ||||||
|     console.log("Copying complete!") |     console.log("Copying complete!") | ||||||
|  |  | ||||||
| } catch(err) { | } catch(err) { | ||||||
|     console.error("Error during copy:", err) |     console.error("Error during copy:", err) | ||||||
|  |     process.exit(1) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,74 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
|  |  | ||||||
| set -e  # Fail on any command error |  | ||||||
| shopt -s globstar |  | ||||||
|  |  | ||||||
| if [[ $# -eq 0 ]] ; then |  | ||||||
|     echo "Missing argument of target directory" |  | ||||||
|     exit 1 |  | ||||||
| fi |  | ||||||
| if ! [[ $(which npm) ]]; then |  | ||||||
|     echo "Missing npm" |  | ||||||
|     exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Trigger the TypeScript build |  | ||||||
| echo TypeScript build start |  | ||||||
| npm run build:ts |  | ||||||
| echo TypeScript build finished |  | ||||||
|  |  | ||||||
| # Copy the TypeScript artifacts |  | ||||||
| DIR="$1" |  | ||||||
| rm -rf "$DIR" |  | ||||||
| mkdir -pv "$DIR" |  | ||||||
|  |  | ||||||
| echo Webpack start |  | ||||||
| npm run build:webpack |  | ||||||
| echo Webpack finish |  | ||||||
|  |  | ||||||
| echo "Copying Trilium to build directory $DIR" |  | ||||||
|  |  | ||||||
| for d in 'images' 'libraries' 'src' 'db'; do |  | ||||||
|     cp -r "$d" "$DIR"/ |  | ||||||
| done |  | ||||||
|  |  | ||||||
| for f in 'package.json' 'package-lock.json' 'README.md' 'LICENSE' 'config-sample.ini'; do |  | ||||||
|     cp "$f" "$DIR"/ |  | ||||||
| done |  | ||||||
|  |  | ||||||
| # Patch package.json main |  | ||||||
| sed -i 's/.\/dist\/electron-main.js/electron-main.js/g' "$DIR/package.json" |  | ||||||
|  |  | ||||||
| script_dir=$(realpath $(dirname $0)) |  | ||||||
| cp -R "$script_dir/../build/src" "$DIR" |  | ||||||
| cp "$script_dir/../build/electron-main.js" "$DIR" |  | ||||||
|  |  | ||||||
| # run in subshell (so we return to original dir) |  | ||||||
| (cd $DIR && npm install --omit=dev --legacy-peer-deps) |  | ||||||
|  |  | ||||||
| if [[ -d "$DIR"/node_modules ]]; then |  | ||||||
|     # cleanup of useless files in dependencies |  | ||||||
|     for d in 'image-q/demo' \ |  | ||||||
|         '@excalidraw/excalidraw/dist/excalidraw-assets-dev' '@excalidraw/excalidraw/dist/excalidraw.development.js' '@excalidraw/excalidraw/dist/excalidraw-with-preact.development.js' \ |  | ||||||
|         'mermaid/dist/mermaid.js' \ |  | ||||||
|         'boxicons/svg' 'boxicons/node_modules/react'/* \ |  | ||||||
|         '@jimp/plugin-print/fonts' 'jimp/browser' 'jimp/fonts'; do |  | ||||||
|         [[ -e "$DIR"/node_modules/"$d" ]] && rm -r "$DIR"/node_modules/"$d" |  | ||||||
|     done |  | ||||||
|  |  | ||||||
|     # delete all tests (there are often large images as test file for jimp etc.) |  | ||||||
|     for d in 'test' 'docs' 'demo' 'example'; do |  | ||||||
|         find "$DIR"/node_modules -name "$d" -exec rm -rf {} + |  | ||||||
|     done |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| find $DIR/libraries -name "*.map" -type f -delete |  | ||||||
| find $DIR/node_modules -name "*.map" -type f -delete |  | ||||||
| find $DIR -name "*.ts" -type f -delete |  | ||||||
|  |  | ||||||
| d="$DIR"/src/public |  | ||||||
| [[ -d "$d"/app-dist ]] || mkdir -pv "$d"/app-dist |  | ||||||
| cp -r "$d"/app/doc_notes "$d"/app-dist/ |  | ||||||
|  |  | ||||||
| rm -rf "$d"/app |  | ||||||
| unset f d DIR |  | ||||||
							
								
								
									
										14
									
								
								bin/electron-forge/sign-windows.cjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,14 @@ | |||||||
|  | const child_process = require("child_process"); | ||||||
|  |  | ||||||
|  | module.exports = function (filePath) { | ||||||
|  |     const { WINDOWS_SIGN_EXECUTABLE } = process.env; | ||||||
|  |  | ||||||
|  |     if (!WINDOWS_SIGN_EXECUTABLE) { | ||||||
|  |         console.warn("[Sign] Skip signing due to missing environment variable."); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     const command = `${WINDOWS_SIGN_EXECUTABLE} --executable "${filePath}"`; | ||||||
|  |     console.log(`[Sign] ${command}`); | ||||||
|  |     child_process.execSync(command); | ||||||
|  | } | ||||||
| @@ -14,7 +14,8 @@ UPDATE attributes SET name  = 'name', value = 'value' WHERE type = 'label' | |||||||
|        'widget', 'noteInfoWidgetDisabled', 'linkMapWidgetDisabled', 'revisionsWidgetDisabled', |        'widget', 'noteInfoWidgetDisabled', 'linkMapWidgetDisabled', 'revisionsWidgetDisabled', | ||||||
|        'whatLinksHereWidgetDisabled', 'similarNotesWidgetDisabled', 'workspace', 'workspaceIconClass', |        'whatLinksHereWidgetDisabled', 'similarNotesWidgetDisabled', 'workspace', 'workspaceIconClass', | ||||||
|        'workspaceTabBackgroundColor', 'workspaceCalendarRoot', 'workspaceTemplate', 'searchHome', 'workspaceInbox', |        'workspaceTabBackgroundColor', 'workspaceCalendarRoot', 'workspaceTemplate', 'searchHome', 'workspaceInbox', | ||||||
|        'workspaceSearchHome', 'sqlConsoleHome', 'datePattern', 'pageSize', 'viewType', 'mapRootNoteId', |        'workspaceSearchHome', 'sqlConsoleHome', 'datePattern', 'weekPattern', 'enableWeekNote', 'monthPattern', | ||||||
|  |        'quarterPattern', 'yearPattern', 'enableQuarterNote', 'pageSize', 'viewType', 'mapRootNoteId', | ||||||
|        'bookmarkFolder', 'sorted', 'sortDirection', 'sortFoldersFirst', 'sortNatural', 'sortLocale', 'top', |        'bookmarkFolder', 'sorted', 'sortDirection', 'sortFoldersFirst', 'sortNatural', 'sortLocale', 'top', | ||||||
|        'fullContentWidth', 'shareHiddenFromTree', 'shareExternalLink', 'shareOmitDefaultCss', 'shareRoot', 'shareDescription', |        'fullContentWidth', 'shareHiddenFromTree', 'shareExternalLink', 'shareOmitDefaultCss', 'shareRoot', 'shareDescription', | ||||||
|        'shareRaw', 'shareDisallowRobotIndexing', 'shareIndex', 'displayRelations', 'hideRelations', 'titleTemplate', |        'shareRaw', 'shareDisallowRobotIndexing', 'shareIndex', 'displayRelations', 'hideRelations', 'titleTemplate', | ||||||
| @@ -31,7 +32,8 @@ UPDATE attributes SET name = 'name' WHERE type = 'relation' | |||||||
|        'widget', 'noteInfoWidgetDisabled', 'linkMapWidgetDisabled', 'revisionsWidgetDisabled', |        'widget', 'noteInfoWidgetDisabled', 'linkMapWidgetDisabled', 'revisionsWidgetDisabled', | ||||||
|        'whatLinksHereWidgetDisabled', 'similarNotesWidgetDisabled', 'workspace', 'workspaceIconClass', |        'whatLinksHereWidgetDisabled', 'similarNotesWidgetDisabled', 'workspace', 'workspaceIconClass', | ||||||
|        'workspaceTabBackgroundColor', 'workspaceCalendarRoot', 'workspaceTemplate', 'searchHome', 'workspaceInbox', |        'workspaceTabBackgroundColor', 'workspaceCalendarRoot', 'workspaceTemplate', 'searchHome', 'workspaceInbox', | ||||||
|        'workspaceSearchHome', 'sqlConsoleHome', 'datePattern', 'pageSize', 'viewType', 'mapRootNoteId', |        'workspaceSearchHome', 'sqlConsoleHome', 'datePattern', 'weekPattern', 'enableWeekNote', 'monthPattern', | ||||||
|  |        'quarterPattern', 'yearPattern', 'enableQuarterNote', 'pageSize', 'viewType', 'mapRootNoteId', | ||||||
|        'bookmarkFolder', 'sorted', 'sortDirection', 'sortFoldersFirst', 'sortNatural', 'sortLocale', 'top', |        'bookmarkFolder', 'sorted', 'sortDirection', 'sortFoldersFirst', 'sortNatural', 'sortLocale', 'top', | ||||||
|        'fullContentWidth', 'shareHiddenFromTree', 'shareExternalLink', 'shareOmitDefaultCss', 'shareRoot', 'shareDescription', |        'fullContentWidth', 'shareHiddenFromTree', 'shareExternalLink', 'shareOmitDefaultCss', 'shareRoot', 'shareDescription', | ||||||
|        'shareRaw', 'shareDisallowRobotIndexing', 'shareIndex', 'displayRelations', 'hideRelations', 'titleTemplate', |        'shareRaw', 'shareDisallowRobotIndexing', 'shareIndex', 'displayRelations', 'hideRelations', 'titleTemplate', | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ chcp 65001 | |||||||
| :: Get Current Trilium executable directory and compute data directory | :: Get Current Trilium executable directory and compute data directory | ||||||
| SET DIR=%~dp0 | SET DIR=%~dp0 | ||||||
| set NODE_TLS_REJECT_UNAUTHORIZED=0 | set NODE_TLS_REJECT_UNAUTHORIZED=0 | ||||||
| cd %DIR% | cd "%DIR%" | ||||||
| start trilium.exe | start trilium.exe | ||||||
| GOTO END | GOTO END | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,8 +15,9 @@ chcp 65001 | |||||||
|  |  | ||||||
| :: Get Current Trilium executable directory and compute data directory | :: Get Current Trilium executable directory and compute data directory | ||||||
| SET DIR=%~dp0 | SET DIR=%~dp0 | ||||||
|  | SET DIR=%DIR:~0,-1% | ||||||
| SET TRILIUM_DATA_DIR=%DIR%\trilium-data | SET TRILIUM_DATA_DIR=%DIR%\trilium-data | ||||||
| cd %DIR% | cd "%DIR%" | ||||||
| start trilium.exe | start trilium.exe | ||||||
| GOTO END | GOTO END | ||||||
|  |  | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ chcp 65001 | |||||||
| :: Get Current Trilium executable directory and compute data directory | :: Get Current Trilium executable directory and compute data directory | ||||||
| SET DIR=%~dp0 | SET DIR=%~dp0 | ||||||
| SET TRILIUM_SAFE_MODE=1 | SET TRILIUM_SAFE_MODE=1 | ||||||
| cd %DIR% | cd "%DIR%" | ||||||
| start trilium.exe --disable-gpu | start trilium.exe --disable-gpu | ||||||
| GOTO END | GOTO END | ||||||
|  |  | ||||||
|   | |||||||
| @@ -8,9 +8,6 @@ noAuthentication=false | |||||||
| # set to true to disable backups (e.g. because of limited space on server) | # set to true to disable backups (e.g. because of limited space on server) | ||||||
| noBackup=false | noBackup=false | ||||||
|  |  | ||||||
| # Disable automatically generating desktop icon |  | ||||||
| # noDesktopIcon=true |  | ||||||
|  |  | ||||||
| [Network] | [Network] | ||||||
| # host setting is relevant only for web deployments - set the host on which the server will listen | # host setting is relevant only for web deployments - set the host on which the server will listen | ||||||
| # host=0.0.0.0 | # host=0.0.0.0 | ||||||
| @@ -47,3 +44,16 @@ cookieMaxAge=1814400 | |||||||
| #syncServerHost= | #syncServerHost= | ||||||
| #syncServerTimeout= | #syncServerTimeout= | ||||||
| #syncServerProxy= | #syncServerProxy= | ||||||
|  |  | ||||||
|  | [MultiFactorAuthentication] | ||||||
|  | # Set the base URL for OAuth/OpenID authentication | ||||||
|  | # This is the URL of the service that will be used to verify the user's identity | ||||||
|  | oauthBaseUrl= | ||||||
|  |  | ||||||
|  | # Set the client ID for OAuth/OpenID authentication | ||||||
|  | # This is the ID of the client that will be used to verify the user's identity | ||||||
|  | oauthClientId= | ||||||
|  |  | ||||||
|  | # Set the client secret for OAuth/OpenID authentication | ||||||
|  | # This is the secret of the client that will be used to verify the user's identity | ||||||
|  | oauthClientSecret= | ||||||
|   | |||||||
							
								
								
									
										49
									
								
								data-docs/config.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,49 @@ | |||||||
|  | [General] | ||||||
|  | # Instance name can be used to distinguish between different instances using backend api.getInstanceName() | ||||||
|  | instanceName= | ||||||
|  |  | ||||||
|  | # set to true to allow using Trilium without authentication (makes sense for server build only, desktop build doesn't need password) | ||||||
|  | noAuthentication=false | ||||||
|  |  | ||||||
|  | # set to true to disable backups (e.g. because of limited space on server) | ||||||
|  | noBackup=false | ||||||
|  |  | ||||||
|  | # Disable automatically generating desktop icon | ||||||
|  | # noDesktopIcon=true | ||||||
|  |  | ||||||
|  | [Network] | ||||||
|  | # host setting is relevant only for web deployments - set the host on which the server will listen | ||||||
|  | # host=0.0.0.0 | ||||||
|  | # port setting is relevant only for web deployments, desktop builds run on a fixed port (changeable with TRILIUM_PORT environment variable) | ||||||
|  | port=8080 | ||||||
|  | # true for TLS/SSL/HTTPS (secure), false for HTTP (insecure). | ||||||
|  | https=false | ||||||
|  | # path to certificate (run "bash bin/generate-cert.sh" to generate self-signed certificate). Relevant only if https=true | ||||||
|  | certPath= | ||||||
|  | keyPath= | ||||||
|  | # setting to give trust to reverse proxies, a comma-separated list of trusted rev. proxy IPs can be specified (CIDR notation is permitted), | ||||||
|  | # alternatively 'true' will make use of the leftmost IP in X-Forwarded-For, ultimately an integer can be used to tell about the number of hops between | ||||||
|  | # Trilium (which is hop 0) and the first trusted rev. proxy.  | ||||||
|  | # once set, expressjs will use the X-Forwarded-For header set by the rev. proxy to determinate the real IPs of clients. | ||||||
|  | # expressjs shortcuts are supported: loopback(127.0.0.1/8, ::1/128), linklocal(169.254.0.0/16, fe80::/10), uniquelocal(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7) | ||||||
|  | trustedReverseProxy=false | ||||||
|  |  | ||||||
|  |  | ||||||
|  | [Session] | ||||||
|  | # Use this setting to set a custom value for the "Path" Attribute value of the session cookie. | ||||||
|  | # This can be useful, when you have several instances running on the same domain, under different paths (e.g. by using a reverse proxy). | ||||||
|  | # It prevents your instances from overwriting each others' cookies, allowing you to stay logged in multiple instances simultanteously. | ||||||
|  | # E.g. if you have instances running under https://your-domain.com/triliumNext/instanceA and https://your-domain.com/triliumNext/instanceB | ||||||
|  | # you would want to set the cookiePath value to "/triliumNext/instanceA" for your first and "/triliumNext/instanceB" for your second instance | ||||||
|  | cookiePath=/ | ||||||
|  |  | ||||||
|  | # Use this setting to set a custom value for the "Max-Age" Attribute of the session cookie. | ||||||
|  | # This controls how long your session will be valid, before it expires and you need to log in again, when you use the "Remember Me" option. | ||||||
|  | # Value needs to be entered in Seconds. | ||||||
|  | # Default value is 1814400 Seconds, which is 21 Days. | ||||||
|  | cookieMaxAge=1814400 | ||||||
|  |  | ||||||
|  | [Sync] | ||||||
|  | #syncServerHost= | ||||||
|  | #syncServerTimeout= | ||||||
|  | #syncServerProxy= | ||||||
							
								
								
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
							
						
						| @@ -17,8 +17,8 @@ interface NoteRevisionContents { | |||||||
| export default () => { | export default () => { | ||||||
|     const existingBlobIds = new Set(); |     const existingBlobIds = new Set(); | ||||||
|  |  | ||||||
|     for (const noteId of sql.getColumn<string>(`SELECT noteId FROM note_contents`)) { |     for (const noteId of sql.getColumn<string>(/*sql*/`SELECT noteId FROM note_contents`)) { | ||||||
|         const row = sql.getRow<NoteContentsRow>(`SELECT noteId, content, dateModified, utcDateModified FROM note_contents WHERE noteId = ?`, [noteId]); |         const row = sql.getRow<NoteContentsRow>(/*sql*/`SELECT noteId, content, dateModified, utcDateModified FROM note_contents WHERE noteId = ?`, [noteId]); | ||||||
|         const blobId = utils.hashedBlobId(row.content); |         const blobId = utils.hashedBlobId(row.content); | ||||||
|  |  | ||||||
|         if (!existingBlobIds.has(blobId)) { |         if (!existingBlobIds.has(blobId)) { | ||||||
| @@ -40,8 +40,8 @@ export default () => { | |||||||
|         sql.execute("UPDATE notes SET blobId = ? WHERE noteId = ?", [blobId, row.noteId]); |         sql.execute("UPDATE notes SET blobId = ? WHERE noteId = ?", [blobId, row.noteId]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     for (const noteRevisionId of sql.getColumn(`SELECT noteRevisionId FROM note_revision_contents`)) { |     for (const noteRevisionId of sql.getColumn(/*sql*/`SELECT noteRevisionId FROM note_revision_contents`)) { | ||||||
|         const row = sql.getRow<NoteRevisionContents>(`SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents WHERE noteRevisionId = ?`, [noteRevisionId]); |         const row = sql.getRow<NoteRevisionContents>(/*sql*/`SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents WHERE noteRevisionId = ?`, [noteRevisionId]); | ||||||
|         const blobId = utils.hashedBlobId(row.content); |         const blobId = utils.hashedBlobId(row.content); | ||||||
|  |  | ||||||
|         if (!existingBlobIds.has(blobId)) { |         if (!existingBlobIds.has(blobId)) { | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ import sql from "../../src/services/sql"; | |||||||
| export default () => { | export default () => { | ||||||
|     cls.init(() => { |     cls.init(() => { | ||||||
|         // emergency disabling of image compression since it appears to make problems in migration to 0.61 |         // emergency disabling of image compression since it appears to make problems in migration to 0.61 | ||||||
|         sql.execute(`UPDATE options SET value = 'false' WHERE name = 'compressImages'`); |         sql.execute(/*sql*/`UPDATE options SET value = 'false' WHERE name = 'compressImages'`); | ||||||
|  |  | ||||||
|         becca_loader.load(); |         becca_loader.load(); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								db/migrations/0229__add_oauth_user_data_table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,14 @@ | |||||||
|  | -- Add the oauth user data table | ||||||
|  | CREATE TABLE IF NOT EXISTS "user_data" | ||||||
|  | ( | ||||||
|  |     tmpID INT, | ||||||
|  |     username TEXT, | ||||||
|  |     email TEXT, | ||||||
|  |     userIDEncryptedDataKey TEXT, | ||||||
|  |     userIDVerificationHash TEXT, | ||||||
|  |     salt TEXT, | ||||||
|  |     derivedKey TEXT, | ||||||
|  |     isSetup TEXT DEFAULT "false", | ||||||
|  |     UNIQUE (tmpID), | ||||||
|  |     PRIMARY KEY (tmpID) | ||||||
|  | ); | ||||||
| @@ -126,6 +126,19 @@ CREATE TABLE IF NOT EXISTS "attachments" | |||||||
|     utcDateScheduledForErasureSince TEXT DEFAULT NULL, |     utcDateScheduledForErasureSince TEXT DEFAULT NULL, | ||||||
|     isDeleted    INT  not null, |     isDeleted    INT  not null, | ||||||
|     deleteId    TEXT DEFAULT NULL); |     deleteId    TEXT DEFAULT NULL); | ||||||
|  | CREATE TABLE IF NOT EXISTS "user_data" | ||||||
|  | ( | ||||||
|  |     tmpID INT, | ||||||
|  |     username TEXT, | ||||||
|  |     email TEXT, | ||||||
|  |     userIDEncryptedDataKey TEXT, | ||||||
|  |     userIDVerificationHash TEXT, | ||||||
|  |     salt TEXT, | ||||||
|  |     derivedKey TEXT, | ||||||
|  |     isSetup TEXT DEFAULT "false", | ||||||
|  |     UNIQUE (tmpID), | ||||||
|  |     PRIMARY KEY (tmpID) | ||||||
|  | ); | ||||||
| CREATE INDEX IDX_attachments_ownerId_role | CREATE INDEX IDX_attachments_ownerId_role | ||||||
|     on attachments (ownerId, role); |     on attachments (ownerId, role); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										6088
									
								
								demo/!!!meta.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										11
									
								
								demo/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,11 @@ | |||||||
|  | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  | </head> | ||||||
|  | <frameset cols="25%,75%"> | ||||||
|  |     <frame name="navigation" src="navigation.html"> | ||||||
|  |     <frame name="detail" src="root/Journal.dat"> | ||||||
|  | </frameset> | ||||||
|  | </html> | ||||||
							
								
								
									
										646
									
								
								demo/navigation.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,646 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <link rel="stylesheet" href="style.css"> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <ul> | ||||||
|  |       <li>root | ||||||
|  |         <ul> | ||||||
|  |           <li><a href="root/Journal.dat" target="detail">Journal</a> | ||||||
|  |           </li> | ||||||
|  |           <li><a href="root/Trilium%20Demo.html" target="detail">Trilium Demo</a> | ||||||
|  |             <ul> | ||||||
|  |               <li><a href="root/Trilium%20Demo/Inbox.html" target="detail">Inbox</a> | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Inbox/Grocery%20list%20for%20today.html" | ||||||
|  |                     target="detail">Grocery list for today</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Inbox/Book%20to%20read.html" target="detail">Book to read</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Inbox/The%20Last%20Question.html" target="detail">The Last Question</a> | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Inbox/The%20Last%20Question/The%20Last%20Question%20by%20Issac.pdf" | ||||||
|  |                         target="detail">The Last Question by Issac Asimov.pdf</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li>Formatting examples | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Formatting%20examples/School%20schedule.html" | ||||||
|  |                     target="detail">School schedule</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Formatting%20examples/Checkbox%20lists.html" | ||||||
|  |                     target="detail">Checkbox lists</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Formatting%20examples/Highlighting.html" | ||||||
|  |                     target="detail">Highlighting</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Formatting%20examples/Code%20blocks.html" | ||||||
|  |                     target="detail">Code blocks</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Formatting%20examples/Math.html" target="detail">Math</a> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li><a href="root/Trilium%20Demo/Journal.html" target="detail">Journal</a> | ||||||
|  |                 <ul> | ||||||
|  |                   <li>2021 | ||||||
|  |                     <ul> | ||||||
|  |                       <li>11 - November | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/11%20-%20November/28%20-%20Tuesday.html" | ||||||
|  |                             target="detail">28 - Tuesday</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/11%20-%20November/28%20-%20Tuesday/Phone%20call%20about%20work%20project.html" | ||||||
|  |                                 target="detail">Phone call about work project</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/11%20-%20November/28%20-%20Tuesday/Christmas%20gift%20ideas.html" | ||||||
|  |                                 target="detail">Christmas gift ideas</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/11%20-%20November/28%20-%20Tuesday/Trusted%20timestamping.html" | ||||||
|  |                                 target="detail">Trusted timestamping</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>12 - December | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday.html" | ||||||
|  |                             target="detail">18 - Monday</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Meeting%20minutes.html" | ||||||
|  |                                 target="detail">Meeting minutes</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li>Photos from the trip | ||||||
|  |                                 <ul> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/01.jpeg" | ||||||
|  |                                     target="detail">01.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/02.jpeg" | ||||||
|  |                                     target="detail">02.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/03.jpeg" | ||||||
|  |                                     target="detail">03.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/04.jpeg" | ||||||
|  |                                     target="detail">04.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/05.jpeg" | ||||||
|  |                                     target="detail">05.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/06.jpeg" | ||||||
|  |                                     target="detail">06.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/07.jpeg" | ||||||
|  |                                     target="detail">07.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/08.jpeg" | ||||||
|  |                                     target="detail">08.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/09.jpeg" | ||||||
|  |                                     target="detail">09.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/10.jpeg" | ||||||
|  |                                     target="detail">10.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/11.jpeg" | ||||||
|  |                                     target="detail">11.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/Photos%20from%20the%20trip/12.jpeg" | ||||||
|  |                                     target="detail">12.jpeg</a> | ||||||
|  |                                   </li> | ||||||
|  |                                 </ul> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/18%20-%20Monday/TODO%20-%20Send%20invites%20for%20christ.html" | ||||||
|  |                                 target="detail">TODO - Send invites for christmas party</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/19%20-%20Tuesday.html" | ||||||
|  |                             target="detail">19 - Tuesday</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/19%20-%20Tuesday/DONE%20-%20Dentist%20appointment.html" | ||||||
|  |                                 target="detail">DONE - Dentist appointment</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/20%20-%20Wednesday.html" | ||||||
|  |                             target="detail">20 - Wednesday</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/21%20-%20Thursday.html" | ||||||
|  |                             target="detail">21 - Thursday</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/21%20-%20Thursday/Christmas%20shopping.html" | ||||||
|  |                                 target="detail">Christmas shopping</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/21%20-%20Thursday/Office%20party.html" | ||||||
|  |                                 target="detail">Office party</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/22%20-%20Friday.html" | ||||||
|  |                             target="detail">22 - Friday</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/22%20-%20Friday/Christmas%20shopping.html" | ||||||
|  |                                 target="detail">Christmas shopping</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/22%20-%20Friday/The%20Mechanical.html" | ||||||
|  |                                 target="detail">The Mechanical</a> | ||||||
|  |                                 <ul> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/22%20-%20Friday/The%20Mechanical/Highlights.html" | ||||||
|  |                                     target="detail">Highlights</a> | ||||||
|  |                                   </li> | ||||||
|  |                                 </ul> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/23%20-%20Saturday.html" | ||||||
|  |                             target="detail">23 - Saturday</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/24%20-%20Sunday%20-%20Christmas%20Eve!.html" | ||||||
|  |                             target="detail">24 - Sunday - Christmas Eve!</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/24%20-%20Sunday%20-%20Christmas%20Eve!/DONE%20-%20Buy%20a%20board%20game%20for%20Al.html" | ||||||
|  |                                 target="detail">DONE - Buy a board game for Alice</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/24%20-%20Sunday%20-%20Christmas%20Eve!/TODO%20-%20Buy%20milk.html" | ||||||
|  |                                 target="detail">TODO - Buy milk</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/30%20-%20Thursday.html" | ||||||
|  |                             target="detail">30 - Thursday</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Journal/2021/Epics.html" target="detail">Epics</a> | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/Epics/Christmas.html" target="detail">Christmas</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/Epics/Christmas/Vacation%20days.html" | ||||||
|  |                                 target="detail">Vacation days</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Journal/2021/Epics/Christmas/Christmas%20dinner.html" | ||||||
|  |                                 target="detail">Christmas dinner</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li>Shopping | ||||||
|  |                                 <ul> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Journal/2021/11%20-%20November/28%20-%20Tuesday/Christmas%20gift%20ideas.html" | ||||||
|  |                                     target="detail">28. 11. 2017 - Christmas gift ideas</a> | ||||||
|  |                                   </li> | ||||||
|  |                                 </ul> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Journal/2021/Epics/Vacation.html" target="detail">Vacation</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Journal/Day%20template.html" target="detail">Day template</a> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li><a href="root/Trilium%20Demo/Tech.html" target="detail">Tech</a> | ||||||
|  |                 <ul> | ||||||
|  |                   <li>Security | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Journal/2021/11%20-%20November/28%20-%20Tuesday/Trusted%20timestamping.html" | ||||||
|  |                         target="detail">Trusted timestamping</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Linux | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Linux/History.html" target="detail">History</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Linux/Bash%20scripting.html" target="detail">Bash scripting</a> | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Tech/Linux/Bash%20scripting/While%20loop.html" | ||||||
|  |                             target="detail">While loop</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Tech/Linux/Bash%20scripting/Bash%20startup%20modes.html" | ||||||
|  |                             target="detail">Bash startup modes</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Linux/Ubuntu.html" target="detail">Ubuntu</a> | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Tech/Linux/Ubuntu/Unity%20shortcuts.html" | ||||||
|  |                             target="detail">Unity shortcuts</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Programming | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Programming/Java.html" target="detail">Java</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Linux/Bash%20scripting.html" target="detail">Bash scripting</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Node.js | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Node.js/Intro.html" target="detail">Intro</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Node.js/Overview.html" target="detail">Overview</a> | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Tech/Node.js/Overview/History.html" target="detail">History</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Tech/Node.js/Overview/Platform%20architecture.html" | ||||||
|  |                             target="detail">Platform architecture</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Tech/Node.js/Overview/Industry%20support.html" | ||||||
|  |                             target="detail">Industry support</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Tech/Node.js/Releases.html" target="detail">Releases</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li>Note Types | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Note%20Types/Canvas.json" target="detail">Canvas</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Mermaid Diagrams | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Flow.txt" | ||||||
|  |                         target="detail">Flow</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Flow%20(ELK).txt" | ||||||
|  |                         target="detail">Flow (ELK)</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Sequence.txt" | ||||||
|  |                         target="detail">Sequence</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Gantt.txt" | ||||||
|  |                         target="detail">Gantt</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Class.txt" | ||||||
|  |                         target="detail">Class</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/State.txt" | ||||||
|  |                         target="detail">State</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Mind%20Map.txt" | ||||||
|  |                         target="detail">Mind Map</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Pie.txt" | ||||||
|  |                         target="detail">Pie</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Journey.txt" | ||||||
|  |                         target="detail">Journey</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Git.txt" | ||||||
|  |                         target="detail">Git</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Entity%20Relationship.txt" | ||||||
|  |                         target="detail">Entity Relationship</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/Bar%20chart.txt" | ||||||
|  |                         target="detail">Bar chart</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Mermaid%20Diagrams/C4.txt" target="detail">C4</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Note%20Types/Mind%20Map.json" target="detail">Mind Map</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20.json" | ||||||
|  |                     target="detail">Geo Map (The Seven Wonders of the World)</a> | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/The%20Colosseum%2C%20Rome%2C%20Italy.html" | ||||||
|  |                         target="detail">The Colosseum, Rome, Italy</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/The%20Great%20Wall%20of%20China.html" | ||||||
|  |                         target="detail">The Great Wall of China</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/The%20Taj%20Mahal%2C%20India.html" | ||||||
|  |                         target="detail">The Taj Mahal, India</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/Christ%20the%20Redeemer%2C%20Brazil.html" | ||||||
|  |                         target="detail">Christ the Redeemer, Brazil</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/Machu%20Picchu%2C%20Peru.html" | ||||||
|  |                         target="detail">Machu Picchu, Peru</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/Chich%C3%A9n%20Itz%C3%A1%2C%20Mexico.html" | ||||||
|  |                         target="detail">Chichén Itzá, Mexico</a> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Note%20Types/Geo%20Map%20(The%20Seven%20Wonders%20of%20the%20World)/Petra%2C%20Jordan.html" | ||||||
|  |                         target="detail">Petra, Jordan</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li>Books | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Books/To%20read.html" target="detail">To read</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Books/Book%20template.html" target="detail">Book template</a> | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Books/Book%20template/Highlights.html" target="detail">Highlights</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Reviews | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Journal/2021/12%20-%20December/22%20-%20Friday/The%20Mechanical.html" | ||||||
|  |                         target="detail">The Mechanical</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li>Work | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Work/HR.html" target="detail">HR</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Work/Processes.html" target="detail">Processes</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Work/Projects.html" target="detail">Projects</a> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li><a href="root/Trilium%20Demo/Steel%20Blue.css" target="detail">Steel Blue</a> | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Steel%20Blue/eb-garamond-v9-latin-reg.woff2" | ||||||
|  |                     target="detail">eb-garamond-v9-latin-regular.woff2</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Steel%20Blue/raleway-v12-latin-regula.woff2" | ||||||
|  |                     target="detail">raleway-v12-latin-regular.woff2</a> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |               <li>Scripting examples | ||||||
|  |                 <ul> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager.html" | ||||||
|  |                     target="detail">Task manager</a> | ||||||
|  |                     <ul> | ||||||
|  |                       <li>Locations | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/gym.html" | ||||||
|  |                             target="detail">gym</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li>work | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/work/Send%20invites%20for%20christmas%20par.html" | ||||||
|  |                                 target="detail">Send invites for christmas party</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li>tesco | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/tesco/Buy%20milk.html" | ||||||
|  |                                 target="detail">Buy milk</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li>mall | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/mall/Buy%20some%20book%20for%20Bob.html" | ||||||
|  |                                 target="detail">Buy some book for Bob</a> | ||||||
|  |                                 <ul> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/mall/Buy%20some%20book%20for%20Bob/Maybe%20Black%20Swan.html" | ||||||
|  |                                     target="detail">Maybe Black Swan?</a> | ||||||
|  |                                   </li> | ||||||
|  |                                 </ul> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Done | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Done/Buy%20a%20board%20game%20for%20Alice.html" | ||||||
|  |                             target="detail">Buy a board game for Alice</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Done/Dentist%20appointment.html" | ||||||
|  |                             target="detail">Dentist appointment</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Done/Get%20a%20gym%20membership.html" | ||||||
|  |                             target="detail">Get a gym membership</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>TODO | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/work/Send%20invites%20for%20christmas%20par.html" | ||||||
|  |                             target="detail">Send invites for christmas party</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/tesco/Buy%20milk.html" | ||||||
|  |                             target="detail">Buy milk</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/mall/Buy%20some%20book%20for%20Bob.html" | ||||||
|  |                             target="detail">Buy some book for Bob</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Implementation | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Implementation/attribute%20changed.js" | ||||||
|  |                             target="detail">attribute changed</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Implementation/attribute%20changed/reconcileAssignments.js" | ||||||
|  |                                 target="detail">reconcileAssignments</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Implementation/CSS.css" | ||||||
|  |                             target="detail">CSS</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Implementation/task%20template.html" | ||||||
|  |                             target="detail">task template</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Implementation/createNewTask.js" | ||||||
|  |                             target="detail">createNewTask</a> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Tags | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Tags/health.html" | ||||||
|  |                             target="detail">health</a> | ||||||
|  |                           </li> | ||||||
|  |                           <li>shopping | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/mall/Buy%20some%20book%20for%20Bob.html" | ||||||
|  |                                 target="detail">Buy some book for Bob</a> | ||||||
|  |                               </li> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/tesco/Buy%20milk.html" | ||||||
|  |                                 target="detail">Buy milk</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li>groceries | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/tesco/Buy%20milk.html" | ||||||
|  |                                 target="detail">Buy milk</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                           <li>christmas | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Locations/mall/Buy%20some%20book%20for%20Bob.html" | ||||||
|  |                                 target="detail">Buy some book for Bob</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Scripting%20examples/Task%20manager/Create%20Launcher.js" | ||||||
|  |                         target="detail">Create Launcher</a> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Word%20count%20widget.js" | ||||||
|  |                     target="detail">Word count widget</a> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Weight Tracker | ||||||
|  |                     <ul> | ||||||
|  |                       <li><a href="root/Trilium%20Demo/Scripting%20examples/Weight%20Tracker/Implementation.html" | ||||||
|  |                         target="detail">Implementation</a> | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Weight%20Tracker/Implementation/JS%20code.js" | ||||||
|  |                             target="detail">JS code</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Weight%20Tracker/Implementation/JS%20code/chart.js" | ||||||
|  |                                 target="detail">chart.js</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li>Statistics | ||||||
|  |                     <ul> | ||||||
|  |                       <li>Attribute count | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Attribute%20count/template.html" | ||||||
|  |                             target="detail">template</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Attribute%20count/template/js.js" | ||||||
|  |                                 target="detail">js</a> | ||||||
|  |                                 <ul> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Attribute%20count/template/js/renderPieChart.js" | ||||||
|  |                                     target="detail">renderPieChart</a> | ||||||
|  |                                     <ul> | ||||||
|  |                                       <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Attribute%20count/template/js/renderPieChart/chartjs-plugin-datalabe.min.js" | ||||||
|  |                                         target="detail">chartjs-plugin-datalabels.min.js</a> | ||||||
|  |                                         <ul> | ||||||
|  |                                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Weight%20Tracker/Implementation/JS%20code/chart.js" | ||||||
|  |                                             target="detail">chart.js</a> | ||||||
|  |                                           </li> | ||||||
|  |                                         </ul> | ||||||
|  |                                       </li> | ||||||
|  |                                       <li><a href="root/Trilium%20Demo/Scripting%20examples/Weight%20Tracker/Implementation/JS%20code/chart.js" | ||||||
|  |                                         target="detail">chart.js</a> | ||||||
|  |                                       </li> | ||||||
|  |                                     </ul> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Attribute%20count/template/js/renderTable.js" | ||||||
|  |                                     target="detail">renderTable</a> | ||||||
|  |                                   </li> | ||||||
|  |                                 </ul> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Largest notes | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Largest%20notes/template.html" | ||||||
|  |                             target="detail">template</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Largest%20notes/template/js.js" | ||||||
|  |                                 target="detail">js</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Most edited notes | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Most%20edited%20notes/template.html" | ||||||
|  |                             target="detail">template</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Most%20edited%20notes/template/js.js" | ||||||
|  |                                 target="detail">js</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Most linked notes | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Most%20linked%20notes/template.html" | ||||||
|  |                             target="detail">template</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Most%20linked%20notes/template/js.js" | ||||||
|  |                                 target="detail">js</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Note type count | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Note%20type%20count/template.html" | ||||||
|  |                             target="detail">template</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Note%20type%20count/template/js.js" | ||||||
|  |                                 target="detail">js</a> | ||||||
|  |                                 <ul> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Note%20type%20count/template/js/renderTable.js" | ||||||
|  |                                     target="detail">renderTable</a> | ||||||
|  |                                   </li> | ||||||
|  |                                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Attribute%20count/template/js/renderPieChart.js" | ||||||
|  |                                     target="detail">renderPieChart</a> | ||||||
|  |                                   </li> | ||||||
|  |                                 </ul> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                       <li>Most cloned notes | ||||||
|  |                         <ul> | ||||||
|  |                           <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Most%20cloned%20notes/template.html" | ||||||
|  |                             target="detail">template</a> | ||||||
|  |                             <ul> | ||||||
|  |                               <li><a href="root/Trilium%20Demo/Scripting%20examples/Statistics/Most%20cloned%20notes/template/js.js" | ||||||
|  |                                 target="detail">js</a> | ||||||
|  |                               </li> | ||||||
|  |                             </ul> | ||||||
|  |                           </li> | ||||||
|  |                         </ul> | ||||||
|  |                       </li> | ||||||
|  |                     </ul> | ||||||
|  |                   </li> | ||||||
|  |                   <li><a href="root/Trilium%20Demo/Scripting%20examples/Custom%20request%20handler.js" | ||||||
|  |                     target="detail">Custom request handler</a> | ||||||
|  |                   </li> | ||||||
|  |                 </ul> | ||||||
|  |               </li> | ||||||
|  |             </ul> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </li> | ||||||
|  |     </ul> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										81
									
								
								demo/root/Trilium Demo.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,81 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Trilium Demo</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Trilium Demo</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <figure class="image image-style-align-right image_resized" style="width:29.84%;"> | ||||||
|  |           <img style="aspect-ratio:150/150;" src="Trilium Demo_icon-color.svg" width="150" | ||||||
|  |           height="150"> | ||||||
|  |         </figure> | ||||||
|  |         <p><strong>Welcome to TriliumNext Notes!</strong> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <p>This is initial "demo" document provided by TriliumNext by default to | ||||||
|  |           showcase some of its features and also give you some ideas how you might | ||||||
|  |           structure your notes. You can play with it, modify note content and tree | ||||||
|  |           structure as you wish.</p> | ||||||
|  |         <p>If you need any help, visit TriliumNext website: <a href="https://github.com/TriliumNext">https://github.com/TriliumNext</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |          <h3>Cleanup</h3> | ||||||
|  |  | ||||||
|  |         <p>Once you're finished with experimenting and want to cleanup these pages, | ||||||
|  |           you can simply delete them all.</p> | ||||||
|  |          <h3>Formatting</h3> | ||||||
|  |  | ||||||
|  |         <p>TriliumNext supports classic formatting like <em>italic</em>, <strong>bold</strong>, <em><strong>bold and italic</strong></em>. | ||||||
|  |           Of course you can add links like this one pointing to <a href="http://www.google.com">google.com</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <p>Lists</p> | ||||||
|  |         <p><strong>Ordered:</strong> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <ol> | ||||||
|  |           <li>First Item</li> | ||||||
|  |           <li>Second item | ||||||
|  |             <ol> | ||||||
|  |               <li>First sub-item | ||||||
|  |                 <ol> | ||||||
|  |                   <li>sub-sub-item</li> | ||||||
|  |                 </ol> | ||||||
|  |               </li> | ||||||
|  |             </ol> | ||||||
|  |           </li> | ||||||
|  |         </ol> | ||||||
|  |         <p><strong>Unordered:</strong> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <ul> | ||||||
|  |           <li>Item</li> | ||||||
|  |           <li>Another item | ||||||
|  |             <ul> | ||||||
|  |               <li>Sub-item</li> | ||||||
|  |             </ul> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |         <p>Block quotes</p> | ||||||
|  |         <blockquote> | ||||||
|  |           <p>Whereof one cannot speak, thereof one must be silent”</p> | ||||||
|  |           <p>– Ludwig Wittgenstein</p> | ||||||
|  |         </blockquote> | ||||||
|  |         <p>Checkout also other examples like <a href="Trilium%20Demo/Formatting%20examples/School%20schedule.html">tables</a>, | ||||||
|  |           <a | ||||||
|  |           href="Trilium%20Demo/Formatting%20examples/Checkbox%20lists.html">checkbox lists,</a> <a href="Trilium%20Demo/Formatting%20examples/Highlighting.html">highlighting</a>, | ||||||
|  |             <a | ||||||
|  |             href="Trilium%20Demo/Formatting%20examples/Code%20blocks.html">code blocks</a>and <a href="Trilium%20Demo/Formatting%20examples/Math.html">math examples</a>.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										40
									
								
								demo/root/Trilium Demo/Books/Book template.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,40 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Book template</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Book template</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <h2>Main characters</h2> | ||||||
|  |  | ||||||
|  |         <p>… here put main characters …</p> | ||||||
|  |         <p> </p> | ||||||
|  |          <h2>Plot</h2> | ||||||
|  |  | ||||||
|  |         <p>… describe main plot lines …</p> | ||||||
|  |         <p> </p> | ||||||
|  |          <h2>Tone</h2> | ||||||
|  |  | ||||||
|  |         <p> </p> | ||||||
|  |          <h2>Genre</h2> | ||||||
|  |  | ||||||
|  |         <p>scifi / drama / romance</p> | ||||||
|  |         <p> </p> | ||||||
|  |          <h2>Similar books</h2> | ||||||
|  |  | ||||||
|  |         <ul> | ||||||
|  |           <li>…</li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										24
									
								
								demo/root/Trilium Demo/Books/Book template/Highlights.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,24 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Highlights</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Highlights</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <blockquote> | ||||||
|  |           <p>highlght 1</p> | ||||||
|  |         </blockquote> | ||||||
|  |         <p>my comment</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>The Mechanical</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>The Mechanical</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>This is a clone of a note. Go to its <a href="../../Journal/2021/12%20-%20December/22%20-%20Friday/The%20Mechanical.html">primary location</a>.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										31
									
								
								demo/root/Trilium Demo/Books/To read.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,31 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>To read</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>To read</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Checkout Kindle daily deals: <a href="https://www.amazon.com/gp/feature.html?docId=1000677541">https://www.amazon.com/gp/feature.html?docId=1000677541</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <ul> | ||||||
|  |           <li>Cixin Liu - <a href="https://www.amazon.com/Dark-Forest-Remembrance-Earths-Past/dp/0765386690/ref=pd_bxgy_14_img_2?_encoding=UTF8&pd_rd_i=0765386690&pd_rd_r=AB0J179TM9NTEAMHE240&pd_rd_w=FAhxX&pd_rd_wg=pLGK7&psc=1&refRID=AB0J179TM9NTEAMHE240">The Dark Forest</a> | ||||||
|  |  | ||||||
|  |           </li> | ||||||
|  |           <li>Ann Leckie - <a href="https://www.amazon.com/Ancillary-Sword-Imperial-Radch-Leckie/dp/0316246654/ref=pd_sim_14_1?_encoding=UTF8&pd_rd_i=0316246654&pd_rd_r=D7KDTGZFP7YM1YSYVY4G&pd_rd_w=jkn28&pd_rd_wg=JVhtw&psc=1&refRID=D7KDTGZFP7YM1YSYVY4G">Ancillary Sword</a> | ||||||
|  |  | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,47 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Checkbox lists</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Checkbox lists</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Create easy TODO-lists with checkboxes:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">buy milk  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" checked="checked" disabled="disabled"><span class="todo-list__label__description">do the laundry  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" checked="checked" disabled="disabled"><span class="todo-list__label__description">watch TV  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">eat ice cream  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										33
									
								
								demo/root/Trilium Demo/Formatting examples/Code blocks.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,33 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Code blocks</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Code blocks</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Code blocks are useful to add short snippets of code blocks inside text | ||||||
|  |           notes. Depending on your preference, it's possible to enable or disable | ||||||
|  |           word wrapping for these code blocks.</p> | ||||||
|  |         <p>We added syntax highlighting to code blocks as well. When a code block | ||||||
|  |           is first created it will try to automatically determine the programming | ||||||
|  |           language, should that fail it is possible to manually adjust it. The color | ||||||
|  |           scheme for the syntax highlighting is adjustable in settings. </p><pre><code class="language-application-javascript-env-frontend">function helloWorld() { | ||||||
|  | 	alert("Hello world"); | ||||||
|  | }</code></pre> | ||||||
|  |  | ||||||
|  |         <p>For larger pieces of code it is better to use a code note, which uses | ||||||
|  |           a fully-fledged code editor (CodeMirror). For an example of a code note, | ||||||
|  |           see <a class="reference-link" href="../Scripting%20examples/Custom%20request%20handler.js">Custom request handler</a>.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										35
									
								
								demo/root/Trilium Demo/Formatting examples/Highlighting.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,35 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Highlighting</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Highlighting</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p><span class="text-big">Space Shuttle Discovery</span> (Orbiter Vehicle | ||||||
|  |           Designation: <code>OV-103</code>) is one of the orbiters from NASA's Space | ||||||
|  |           Shuttle program and the third of five fully operational orbiters to be | ||||||
|  |           built. Its first mission, STS-41-D, flew from August 30 to September 5, | ||||||
|  |           1984. Over 27 years of service it launched and landed <span style="background-color:hsl(60,75%,60%);">39 times</span>, | ||||||
|  |           gathering more spaceflights than any other spacecraft to date. The shuttle | ||||||
|  |           has three main components: the Space Shuttle orbiter, a central fuel tank, | ||||||
|  |           and two rocket boosters. Nearly <span style="background-color:hsl(120,75%,60%);">25,000 heat resistant tiles</span> cover | ||||||
|  |           the orbiter to protect it from high temperatures on re-entry.</p> | ||||||
|  |         <p>Discovery became the third operational orbiter to enter service, preceded | ||||||
|  |           by Columbia and Challenger. <span style="color:hsl(270,75%,60%);">It embarked on its last mission, STS-133, on February 24, 2011</span> and | ||||||
|  |           touched down for the final time at Kennedy Space Center on March 9, having | ||||||
|  |           spent a cumulative total of almost a full year in space. Discovery performed | ||||||
|  |           both research and International Space Station (ISS) assembly missions, | ||||||
|  |           and also carried the Hubble Space Telescope into orbit.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										27
									
								
								demo/root/Trilium Demo/Formatting examples/Math.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,27 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Math</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Math</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p><span class="math-tex">\(% \f is defined as #1f(#2) using the macro \f\relax{x} = \int_{-\infty}^\infty     \f\hat\xi\,e^{2 \pi i \xi x}     \,d\xi\)</span>Some | ||||||
|  |           math examples:</p><span class="math-tex">\[\displaystyle \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }\]</span> | ||||||
|  |  | ||||||
|  |         <p>Another:</p><span class="math-tex">\[\displaystyle \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)\]</span> | ||||||
|  |  | ||||||
|  |         <p>Inline math is also possible: <span class="math-tex">\(c^2 = a^2 + b^2\)</span> </p> | ||||||
|  |         <p> </p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,69 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>School schedule</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>School schedule</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <figure class="table"> | ||||||
|  |           <table> | ||||||
|  |             <thead> | ||||||
|  |               <tr> | ||||||
|  |                 <th> </th> | ||||||
|  |                 <th>Monday</th> | ||||||
|  |                 <th>Tuesday</th> | ||||||
|  |                 <th>Wednesday</th> | ||||||
|  |                 <th>Thursday</th> | ||||||
|  |                 <th>Friday</th> | ||||||
|  |               </tr> | ||||||
|  |             </thead> | ||||||
|  |             <tbody> | ||||||
|  |               <tr> | ||||||
|  |                 <th>9:00-10:30</th> | ||||||
|  |                 <td>P.E.</td> | ||||||
|  |                 <td> </td> | ||||||
|  |                 <td>Math</td> | ||||||
|  |                 <td>Computer Science</td> | ||||||
|  |                 <td> </td> | ||||||
|  |               </tr> | ||||||
|  |               <tr> | ||||||
|  |                 <th>11:00-12:30</th> | ||||||
|  |                 <td>History</td> | ||||||
|  |                 <td>English</td> | ||||||
|  |                 <td> </td> | ||||||
|  |                 <td>Physics</td> | ||||||
|  |                 <td>Math</td> | ||||||
|  |               </tr> | ||||||
|  |               <tr> | ||||||
|  |                 <th>13:00-14:30</th> | ||||||
|  |                 <td> </td> | ||||||
|  |                 <td>Computer Science</td> | ||||||
|  |                 <td>Chemistry</td> | ||||||
|  |                 <td>Physics Lab</td> | ||||||
|  |                 <td>Geography</td> | ||||||
|  |               </tr> | ||||||
|  |               <tr> | ||||||
|  |                 <th>15:00-16:30</th> | ||||||
|  |                 <td>Computer Science</td> | ||||||
|  |                 <td> </td> | ||||||
|  |                 <td>Latin</td> | ||||||
|  |                 <td> </td> | ||||||
|  |                 <td> </td> | ||||||
|  |               </tr> | ||||||
|  |             </tbody> | ||||||
|  |           </table> | ||||||
|  |           <figcaption>School schedule</figcaption> | ||||||
|  |         </figure> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										25
									
								
								demo/root/Trilium Demo/Inbox.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,25 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Inbox</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Inbox</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <div> | ||||||
|  |           <div> | ||||||
|  |             <p>This is a place I use to put notes waiting for better categorization</p> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										22
									
								
								demo/root/Trilium Demo/Inbox/Book to read.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Book to read</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Book to read</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>How to be a stoic from Massimo Pigliuci:</p> | ||||||
|  |         <p><a href="https://www.amazon.com/gp/product/B01K3WN1BY?pf_rd_m=A2R2RITDJNW1Q6&storeType=ebooks&pageType=STOREFRONT&pf_rd_p=8e2a96d9-c848-435b-92bd-0856850ad544&pf_rd_r=4J6CT15BS4X8062XNGDF&pf_rd_s=merchandised-search-5&pf_rd_t=40901&ref_=dbs_f_ebk_rwt_scns_mwl_ms5_kmw_8e2a96d9-c848-435b-92bd-0856850ad544_2&pf_rd_i=154606011">https://www.amazon.com/gp/product/B01K3WN1BY?pf_rd_m=A2R2RITDJNW1Q6&storeType=ebooks&pageType=STOREFRONT&pf_rd_p=8e2a96d9-c848-435b-92bd-0856850ad544&pf_rd_r=4J6CT15BS4X8062XNGDF&pf_rd_s=merchandised-search-5&pf_rd_t=40901&ref_=dbs_f_ebk_rwt_scns_mwl_ms5_kmw_8e2a96d9-c848-435b-92bd-0856850ad544_2&pf_rd_i=154606011</a> </p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										25
									
								
								demo/root/Trilium Demo/Inbox/Grocery list for today.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,25 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Grocery list for today</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Grocery list for today</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <ul> | ||||||
|  |           <li>cucumber</li> | ||||||
|  |           <li>cheese</li> | ||||||
|  |           <li>beer</li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										32
									
								
								demo/root/Trilium Demo/Inbox/The Last Question.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,32 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>The Last Question</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>The Last Question</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>"<strong>The Last Question</strong>" is a <a href="https://en.wikipedia.org/wiki/Science_fiction">science fiction</a>  | ||||||
|  |           <a | ||||||
|  |           href="https://en.wikipedia.org/wiki/Short_story">short story</a>by American writer <a href="https://en.wikipedia.org/wiki/Isaac_Asimov">Isaac Asimov</a>. | ||||||
|  |             It first appeared in the November 1956 issue of <a href="https://en.wikipedia.org/wiki/Science_Fiction_Quarterly"><em>Science Fiction Quarterly</em></a>.</p> | ||||||
|  |         <section | ||||||
|  |         class="include-note" data-note-id="ZWCYra81yOFO" data-box-size="medium"> </section> | ||||||
|  |           <p>This page demonstrates two things:</p> | ||||||
|  |           <ul> | ||||||
|  |             <li>possibility to <a href="#root/_hidden/_help/_help_KSZ04uQ2D1St/_help_iPIMuisry3hd/_help_nBAXQFj20hS1">include one note into another</a> | ||||||
|  |             </li> | ||||||
|  |             <li>PDF preview - you can read PDFs directly in Trilium!</li> | ||||||
|  |           </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										23
									
								
								demo/root/Trilium Demo/Journal.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,23 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Journal</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Journal</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>You can read some explanation on how this journal works here: <a href="https://github.com/zadam/trilium/wiki/Day-notes">https://github.com/zadam/trilium/wiki/Day-notes</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>28 - Tuesday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>28 - Tuesday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,28 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Christmas gift ideas</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Christmas gift ideas</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <ul> | ||||||
|  |           <li>XBox</li> | ||||||
|  |           <li>Candles</li> | ||||||
|  |           <li><a href="https://www.amazon.ca/Anker-SoundCore-Portable-Bluetooth-Resistance/dp/B01MTB55WH?pd_rd_wg=honW8&pd_rd_r=c9bb7c0f-0051-4da7-991f-4ca711a1b3e3&pd_rd_w=ciUpR&ref_=pd_gw_simh&pf_rd_r=K10XKX0NGPDNTYYP4BS4&pf_rd_p=5f1b460b-78c1-580e-929e-2878fe4859e8">Portable speakers</a> | ||||||
|  |  | ||||||
|  |           </li> | ||||||
|  |           <li>...?</li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Phone call about work project</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Phone call about work project</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Bla bla bla ...</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,33 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Trusted timestamping</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Trusted timestamping</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Wiki: <a href="https://en.wikipedia.org/wiki/Trusted_timestamping">https://en.wikipedia.org/wiki/Trusted_timestamping</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <p>Bozho: <a href="https://techblog.bozho.net/using-trusted-timestamping-java/">https://techblog.bozho.net/using-trusted-timestamping-java/</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <p><strong>Trusted timestamping</strong> is the process of <a href="https://en.wikipedia.org/wiki/Computer_security">securely</a> keeping | ||||||
|  |           track of the creation and modification time of a document. Security here | ||||||
|  |           means that no one—not even the owner of the document—should be able to | ||||||
|  |           change it once it has been recorded provided that the timestamper's integrity | ||||||
|  |           is never compromised.</p> | ||||||
|  |         <p>The administrative aspect involves setting up a publicly available, trusted | ||||||
|  |           timestamp management infrastructure to collect, process and renew timestamps.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,27 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>18 - Monday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>18 - Monday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Miscellaneous notes done on monday ...</p> | ||||||
|  |         <p> </p> | ||||||
|  |         <p>Interesting video: <a href="https://www.youtube.com/watch?v=_eSAF_qT_FY&feature=youtu.be">https://www.youtube.com/watch?v=_eSAF_qT_FY&feature=youtu.be</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |         <p> </p> | ||||||
|  |         <p> </p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Meeting minutes</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Meeting minutes</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>bla bla bla...</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| After Width: | Height: | Size: 16 KiB | 
| After Width: | Height: | Size: 31 KiB | 
| After Width: | Height: | Size: 71 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 22 KiB | 
| After Width: | Height: | Size: 78 KiB | 
| After Width: | Height: | Size: 30 KiB | 
| After Width: | Height: | Size: 39 KiB | 
| After Width: | Height: | Size: 48 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 74 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| @@ -0,0 +1,19 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Send invites for christmas party</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Send invites for christmas party</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"></div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>19 - Tuesday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>19 - Tuesday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,19 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Dentist appointment</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Dentist appointment</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"></div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>20 - Wednesday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>20 - Wednesday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>21 - Thursday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>21 - Thursday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Christmas shopping</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Christmas shopping</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Bought a book!</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Office party</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Office party</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>That was fun!</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>22 - Friday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>22 - Friday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,19 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Christmas shopping</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Christmas shopping</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"></div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>The Mechanical</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>The Mechanical</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>I enjoyed this book a lot. It's slow moving at times with the author taking | ||||||
|  |           his time with conversations and descriptions of them. The premise is very | ||||||
|  |           interesting, but I'm sad that it wasn't elaborated more deeply - e.g. the | ||||||
|  |           history and development of the clakker technology with Huygens and how | ||||||
|  |           Spinoza comes into the picture. Maybe the author saves it for the next | ||||||
|  |           two parts of the book.</p> | ||||||
|  |         <p>Language can be intimidating at first for non-native english speakers | ||||||
|  |           - author uses wide range of vocabulary. Fortunately it gets better after | ||||||
|  |           a while as reader adjusts.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,44 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Highlights</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Highlights</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <blockquote> | ||||||
|  |           <p>Like a raindrop rolling down dry valleys to the sea, his body sensed the | ||||||
|  |             contours of agony and helplessly followed their gradient. Impelled by alchemical | ||||||
|  |             compulsion rather than gravity, Jax became an unstoppable boulder careering | ||||||
|  |             along gullies of human whim.</p> | ||||||
|  |         </blockquote> | ||||||
|  |         <blockquote> | ||||||
|  |           <p>Free Will was a vacuum, a negative space. It was the absence of coercion, | ||||||
|  |             the absence of compulsion, the absence of agony.</p> | ||||||
|  |         </blockquote> | ||||||
|  |         <blockquote> | ||||||
|  |           <p>Overwhelming: he could do anything he wanted. But the grand sum of anything-at-all | ||||||
|  |             was nothing-at-all. The topology of freedom offered no gradients to nudge | ||||||
|  |             him, no landmarks to guide him. How did humans guide themselves? How did | ||||||
|  |             they know what to do and what not to do? How did they know when to do anything | ||||||
|  |             without the benefit of geasa and metageasa to prioritize every single action | ||||||
|  |             of their waking lives? How did they order their daily existence without | ||||||
|  |             somebody to tell them what to do?</p> | ||||||
|  |         </blockquote> | ||||||
|  |         <blockquote> | ||||||
|  |           <p>Life as a slave was unspeakable; life as a slave who had briefly tasted | ||||||
|  |             freedom was unthinkable. Clakkers carried complex geasa by dint of alchemy; | ||||||
|  |             humans carried heavy obligations, too, but called them culture. Society.</p> | ||||||
|  |         </blockquote> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>23 - Saturday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>23 - Saturday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>24 - Sunday - Christmas Eve!</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>24 - Sunday - Christmas Eve!</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| After Width: | Height: | Size: 7.0 KiB | 
| @@ -0,0 +1,27 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Buy a board game for Alice</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Buy a board game for Alice</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <figure class="image image-style-side"> | ||||||
|  |           <img style="aspect-ratio:209/300;" src="DONE - Buy a board game fo.jpg" | ||||||
|  |           width="209" height="300"> | ||||||
|  |         </figure> | ||||||
|  |         <p>Maybe CodeNames? <a href="https://boardgamegeek.com/boardgame/178900/codenames">https://boardgamegeek.com/boardgame/178900/codenames</a> | ||||||
|  |  | ||||||
|  |         </p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -3,14 +3,14 @@ | |||||||
|   <head> |   <head> | ||||||
|     <meta charset="utf-8"> |     <meta charset="utf-8"> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1"> |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|     <link rel="stylesheet" href="../../style.css"> |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|     <base target="_parent"> |     <base target="_parent"> | ||||||
|     <title data-trilium-title>Mermaid Diagram</title> |     <title data-trilium-title>Buy milk</title> | ||||||
|   </head> |   </head> | ||||||
|    |    | ||||||
|   <body> |   <body> | ||||||
|     <div class="content"> |     <div class="content"> | ||||||
|        <h1 data-trilium-h1>Mermaid Diagram</h1> |        <h1 data-trilium-h1>Buy milk</h1> | ||||||
| 
 | 
 | ||||||
|       <div class="ck-content"></div> |       <div class="ck-content"></div> | ||||||
|     </div> |     </div> | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>30 - Thursday</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>30 - Thursday</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										23
									
								
								demo/root/Trilium Demo/Journal/2021/Epics.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,23 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Epics</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Epics</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Epic is kind of medium-term events or projects spread over days or months.</p> | ||||||
|  |         <p>Remember that Trilium is all free form so you can organise your stuff | ||||||
|  |           in whatever way you'd like.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										21
									
								
								demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Christmas</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Christmas</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>This christmas is going to be awesome!</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Christmas dinner</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Christmas dinner</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Carp of course!</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Christmas gift ideas</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Christmas gift ideas</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>This is a clone of a note. Go to its <a href="../../../11%20-%20November/28%20-%20Tuesday/Christmas%20gift%20ideas.html">primary location</a>.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
| @@ -0,0 +1,22 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Vacation days</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Vacation days</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>25. 12., 26. 12., 1. 1. - statutory holidays</p> | ||||||
|  |         <p>27. 12. - 29. 12., 2. 1. - vacation days</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										21
									
								
								demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,21 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Vacation</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Vacation</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>Planning stuff etc.</p> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||
							
								
								
									
										29
									
								
								demo/root/Trilium Demo/Journal/Day template.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,29 @@ | |||||||
|  | <html> | ||||||
|  |    | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <link rel="stylesheet" href="../../../style.css"> | ||||||
|  |     <base target="_parent"> | ||||||
|  |     <title data-trilium-title>Day template</title> | ||||||
|  |   </head> | ||||||
|  |    | ||||||
|  |   <body> | ||||||
|  |     <div class="content"> | ||||||
|  |        <h1 data-trilium-h1>Day template</h1> | ||||||
|  |  | ||||||
|  |       <div class="ck-content"> | ||||||
|  |         <p>TODO:</p> | ||||||
|  |         <ul class="todo-list"> | ||||||
|  |           <li> | ||||||
|  |             <label class="todo-list__label"> | ||||||
|  |               <input type="checkbox" disabled="disabled"><span class="todo-list__label__description">  </span> | ||||||
|  |  | ||||||
|  |             </label> | ||||||
|  |           </li> | ||||||
|  |         </ul> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </body> | ||||||
|  |  | ||||||
|  | </html> | ||||||