Merge remote-tracking branch 'origin/develop' into feature/touchbar
| @@ -5,7 +5,6 @@ | ||||
| .prettier* | ||||
| electron* | ||||
| entitlements.plist | ||||
| forge.config.cjs | ||||
| nodemon.json | ||||
| renovate.json | ||||
| trilium.iml | ||||
| @@ -34,4 +33,12 @@ npm-debug.log | ||||
|  | ||||
|  | ||||
| # 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 | ||||
| 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 | ||||
							
								
								
									
										4
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,4 +1,4 @@ | ||||
| # These are supported funding model platforms | ||||
|  | ||||
| github: [zadam] | ||||
| custom: ["https://paypal.me/za4am"] | ||||
| github: [eliandoran] | ||||
| custom: ["https://paypal.me/eliandoran"] | ||||
|   | ||||
							
								
								
									
										90
									
								
								.github/actions/build-electron/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -8,8 +8,11 @@ inputs: | ||||
|   arch: | ||||
|     description: "The architecture to build for: x64, arm64" | ||||
|     required: true | ||||
|   extension: | ||||
|     description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip" | ||||
|   shell: | ||||
|     description: "Which shell to use" | ||||
|     required: true | ||||
|   forge_platform: | ||||
|     description: "The --platform to pass to Electron Forge" | ||||
|     required: true | ||||
|  | ||||
| runs: | ||||
| @@ -38,21 +41,21 @@ runs: | ||||
|  | ||||
|     - name: Verify certificates | ||||
|       if: inputs.os == 'macos' | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: | | ||||
|         echo "Available signing identities:" | ||||
|         security find-identity -v -p codesigning build.keychain | ||||
|  | ||||
|     - name: Set up Python and other macOS dependencies | ||||
|       if: ${{ inputs.os == 'macos' }} | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: | | ||||
|         brew install python-setuptools | ||||
|         brew install create-dmg | ||||
|  | ||||
|     - name: Install dependencies for RPM and Flatpak package building | ||||
|       if: ${{ inputs.os == 'linux' }} | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: | | ||||
|         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 | ||||
| @@ -62,42 +65,35 @@ runs: | ||||
|  | ||||
|     # Build setup | ||||
|     - name: Install dependencies | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: npm ci | ||||
|  | ||||
|     - name: Update build info | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: npm run chore:update-build-info | ||||
|  | ||||
|     # Critical debugging configuration | ||||
|     - name: Run electron-forge build with enhanced logging | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       env: | ||||
|         # Pass through required environment variables for signing and notarization | ||||
|         APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} | ||||
|         APPLE_ID: ${{ env.APPLE_ID }} | ||||
|         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: | | ||||
|         # 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 -- \ | ||||
|           --arch=${{ inputs.arch }} \ | ||||
|           --platform=$PLATFORM | ||||
|           --platform=${{ inputs.forge_platform }} | ||||
|  | ||||
|     # Add DMG signing step | ||||
|     - name: Sign DMG | ||||
|       if: inputs.os == 'macos' | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: | | ||||
|         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 | ||||
|           echo "Found DMG: $dmg_file" | ||||
|           # Get the first valid signing identity from the keychain | ||||
| @@ -119,13 +115,13 @@ runs: | ||||
|  | ||||
|     - name: Verify code signing | ||||
|       if: inputs.os == 'macos' | ||||
|       shell: bash | ||||
|       shell: ${{ inputs.shell }} | ||||
|       run: | | ||||
|         echo "Verifying code signing for all artifacts..." | ||||
|  | ||||
|         # First check the .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 | ||||
|           echo "Found app bundle: $app_bundle" | ||||
|           echo "Verifying app bundle signing..." | ||||
| @@ -144,7 +140,7 @@ runs: | ||||
|  | ||||
|         # Then check DMG if it exists | ||||
|         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 | ||||
|           echo "Found DMG: $dmg_file" | ||||
|           echo "Verifying DMG signing..." | ||||
| @@ -160,54 +156,8 @@ runs: | ||||
|  | ||||
|         # Finally check ZIP if it exists | ||||
|         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 | ||||
|           echo "Found ZIP: $zip_file" | ||||
|           echo "Note: ZIP files are not code signed, but their contents should be" | ||||
|         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 | ||||
|       uses: actions/setup-node@v4 | ||||
|       with: | ||||
|         node-version: 20 | ||||
|         node-version: 22 | ||||
|         cache: "npm" | ||||
|     - name: Install dependencies | ||||
|       shell: bash | ||||
| @@ -28,4 +28,5 @@ runs: | ||||
|       run: | | ||||
|         mkdir -p upload | ||||
|         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 | ||||
| on: | ||||
|   push: | ||||
|     branches-ignore: | ||||
|       - 'develop' | ||||
|       - 'feature/update**' | ||||
|     branches: [ develop ] | ||||
|   pull_request: | ||||
|     branches: [ develop ] | ||||
|  | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.ref }} | ||||
| @@ -15,7 +15,73 @@ env: | ||||
|   IMAGE_NAME: ${{ github.repository_owner }}/notes | ||||
|   TEST_TAG: ${{ github.repository_owner }}/notes:test | ||||
|  | ||||
| permissions: | ||||
|   pull-requests: write  # for PR comments | ||||
|  | ||||
| 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: | ||||
|     name: Test development | ||||
|     runs-on: ubuntu-latest | ||||
| @@ -26,7 +92,7 @@ jobs: | ||||
|       - name: Set up node & dependencies | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|           node-version: 22 | ||||
|           cache: "npm" | ||||
|  | ||||
|       - run: npm ci | ||||
| @@ -44,6 +110,10 @@ jobs: | ||||
|       - test_dev | ||||
|     steps: | ||||
|       - 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/build-push-action@v6 | ||||
|         with: | ||||
| @@ -64,6 +134,12 @@ jobs: | ||||
|       - name: Checkout the repository | ||||
|         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 | ||||
|         run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV | ||||
|       - name: Set TEST_TAG to lowercase | ||||
|   | ||||
							
								
								
									
										9
									
								
								.github/workflows/main-docker.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -45,7 +45,7 @@ jobs: | ||||
|       - name: Set up node & dependencies | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|           node-version: 22 | ||||
|           cache: "npm" | ||||
|  | ||||
|       - name: Install npm dependencies | ||||
| @@ -131,6 +131,13 @@ jobs: | ||||
|  | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: Install dependencies | ||||
|         run: npm ci | ||||
|  | ||||
|       - name: Update build info | ||||
|         run: npm run chore:update-build-info | ||||
|  | ||||
|       - name: Docker meta | ||||
|         id: meta | ||||
|         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 | ||||
|   # This can be used to allow manually triggering nightlies from the web interface | ||||
|   workflow_dispatch: | ||||
|   push: | ||||
|     branches: | ||||
|       - renovate/electron-forge* | ||||
|   pull_request: | ||||
|     paths: | ||||
|       - .github/actions/build-electron/* | ||||
|       - forge.config.cjs | ||||
| env: | ||||
|   GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label} | ||||
|   GITHUB_RELEASE_ID: 179589950 | ||||
| @@ -20,22 +27,24 @@ jobs: | ||||
|         os: | ||||
|           - name: macos | ||||
|             image: macos-latest | ||||
|             extension: [dmg, zip] | ||||
|             shell: bash | ||||
|             forge_platform: darwin | ||||
|           - name: linux | ||||
|             image: ubuntu-latest | ||||
|             extension: [deb, rpm, zip, flatpak] | ||||
|             shell: bash | ||||
|             forge_platform: linux | ||||
|           - name: windows | ||||
|             image: windows-latest | ||||
|             extension: [exe, zip] | ||||
|             image: win-signing | ||||
|             shell: cmd | ||||
|             forge_platform: win32 | ||||
|     runs-on: ${{ matrix.os.image }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - name: Set up node & dependencies | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|           node-version: 22 | ||||
|       - name: Install dependencies | ||||
|         shell: bash | ||||
|         run: npm ci | ||||
|       - name: Update nightly version | ||||
|         run: npm run chore:ci-update-nightly-version | ||||
| @@ -44,7 +53,8 @@ jobs: | ||||
|         with: | ||||
|           os: ${{ matrix.os.name }} | ||||
|           arch: ${{ matrix.arch }} | ||||
|           extension: ${{ join(matrix.os.extension, ' ') }} | ||||
|           shell: ${{ matrix.os.shell }} | ||||
|           forge_platform: ${{ matrix.os.forge_platform }} | ||||
|         env: | ||||
|           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} | ||||
|           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} | ||||
| @@ -53,9 +63,11 @@ jobs: | ||||
|           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | ||||
|           APPLE_ID: ${{ secrets.APPLE_ID }} | ||||
|           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | ||||
|           WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} | ||||
|  | ||||
|       - name: Publish release | ||||
|         uses: softprops/action-gh-release@v2 | ||||
|         if: ${{ github.event_name != 'pull_request' }} | ||||
|         with: | ||||
|           make_latest: false | ||||
|           prerelease: true | ||||
| @@ -65,6 +77,13 @@ jobs: | ||||
|           tag_name: nightly | ||||
|           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: | ||||
|     name: Deploy server nightly | ||||
|     strategy: | ||||
| @@ -88,6 +107,7 @@ jobs: | ||||
|  | ||||
|       - name: Publish release | ||||
|         uses: softprops/action-gh-release@v2 | ||||
|         if: ${{ github.event_name != 'pull_request' }} | ||||
|         with: | ||||
|           make_latest: false | ||||
|           prerelease: true | ||||
|   | ||||
							
								
								
									
										18
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -3,7 +3,6 @@ on: | ||||
|   push: | ||||
|     tags: | ||||
|       - "v*" | ||||
|   workflow_dispatch: | ||||
| permissions: | ||||
|   contents: write | ||||
| concurrency: | ||||
| @@ -20,26 +19,30 @@ jobs: | ||||
|         os: | ||||
|           - name: macos | ||||
|             image: macos-latest | ||||
|             extension: [dmg, zip] | ||||
|             shell: bash | ||||
|             forge_platform: darwin | ||||
|           - name: linux | ||||
|             image: ubuntu-latest | ||||
|             extension: [deb, rpm, zip, flatpak] | ||||
|             shell: bash | ||||
|             forge_platform: linux | ||||
|           - name: windows | ||||
|             image: windows-latest | ||||
|             extension: [exe, zip] | ||||
|             image: win-signing | ||||
|             shell: cmd | ||||
|             forge_platform: win32 | ||||
|     runs-on: ${{ matrix.os.image }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - name: Set up node & dependencies | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|           node-version: 22 | ||||
|       - name: Run the build | ||||
|         uses: ./.github/actions/build-electron | ||||
|         with: | ||||
|           os: ${{ matrix.os.name }} | ||||
|           arch: ${{ matrix.arch }} | ||||
|           extension: ${{ join(matrix.os.extension, ' ') }} | ||||
|           shell: ${{ matrix.os.shell }} | ||||
|           forge_platform: ${{ matrix.os.forge_platform }} | ||||
|         env: | ||||
|           APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} | ||||
|           APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} | ||||
| @@ -48,6 +51,7 @@ jobs: | ||||
|           APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | ||||
|           APPLE_ID: ${{ secrets.APPLE_ID }} | ||||
|           APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | ||||
|           WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }} | ||||
|  | ||||
|       - name: Publish release | ||||
|         uses: softprops/action-gh-release@v2 | ||||
|   | ||||
							
								
								
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -2,6 +2,7 @@ | ||||
| .DS_Store | ||||
| node_modules/ | ||||
| dist/ | ||||
| upload/ | ||||
| build/ | ||||
| coverage/ | ||||
| src/public/app-dist/ | ||||
| @@ -26,6 +27,7 @@ server-package.json | ||||
| .idea/shelf/ | ||||
| data/ | ||||
| data-test/ | ||||
| data-demo/ | ||||
| tmp/ | ||||
| .eslintcache | ||||
|  | ||||
| @@ -36,4 +38,13 @@ images/app-icons/mac/*.png | ||||
| /playwright-report/ | ||||
| /blob-report/ | ||||
| /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": [ | ||||
|     "lokalise.i18n-ally", | ||||
|     "editorconfig.editorconfig", | ||||
|     "vitest.explorer" | ||||
|     "vitest.explorer", | ||||
|     "ms-playwright.playwright", | ||||
|     "tobermory.es6-string-html", | ||||
|     "dbaeumer.vscode-eslint" | ||||
|   ] | ||||
| } | ||||
|   | ||||
| @@ -10,8 +10,8 @@ COPY . . | ||||
| RUN npm ci && \ | ||||
|     npm run build:prepare-dist && \ | ||||
|     npm cache clean --force && \ | ||||
|     rm -rf dist/node_modules && \ | ||||
|     mv dist/* \ | ||||
|     rm -rf build/node_modules && \ | ||||
|     mv build/* \ | ||||
|       start-docker.sh \ | ||||
|       /usr/src/app/ && \ | ||||
|     rm -rf \ | ||||
| @@ -39,8 +39,11 @@ COPY --from=builder /usr/src/app ./ | ||||
|  | ||||
| RUN sed -i "/electron/d" package.json && \ | ||||
|     npm ci --omit=dev && \ | ||||
|     node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \ | ||||
|     npm cache clean --force && \ | ||||
|     rm -rf /tmp/node-compile-cache | ||||
|     rm -rf \ | ||||
|       /tmp/node-compile-cache \ | ||||
|       /usr/src/app/bin/cleanupNodeModules.ts | ||||
|  | ||||
| # Configure container | ||||
| EXPOSE 8080 | ||||
|   | ||||
| @@ -10,8 +10,8 @@ COPY . . | ||||
| RUN npm ci && \ | ||||
|     npm run build:prepare-dist && \ | ||||
|     npm cache clean --force && \ | ||||
|     rm -rf dist/node_modules && \ | ||||
|     mv dist/* \ | ||||
|     rm -rf build/node_modules && \ | ||||
|     mv build/* \ | ||||
|       start-docker.sh \ | ||||
|       /usr/src/app/ && \ | ||||
|     rm -rf \ | ||||
| @@ -34,8 +34,11 @@ COPY --from=builder /usr/src/app ./ | ||||
|  | ||||
| RUN sed -i "/electron/d" package.json && \ | ||||
|     npm ci --omit=dev && \ | ||||
|     node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \ | ||||
|     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 | ||||
| RUN adduser -s /bin/false node; exit 0 | ||||
|   | ||||
							
								
								
									
										13
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,6 +1,6 @@ | ||||
| # 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) | ||||
|  | ||||
| @@ -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) | ||||
| * 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) | ||||
| * Direct OpenID and TOTP integration for more secure login | ||||
| * [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) | ||||
| * [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 | ||||
|  | ||||
| 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) | ||||
| * Use of a mobile app is not yet supported ([see here](https://github.com/TriliumNext/Notes/issues/72)) to track mobile improvements. | ||||
| 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). | ||||
|  | ||||
| See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support. | ||||
|  | ||||
| ### Server | ||||
|  | ||||
| @@ -107,7 +109,8 @@ npm run server:start | ||||
|  | ||||
| ### 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 | ||||
|  | ||||
|   | ||||
| @@ -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" | ||||
|  | ||||
| # Set Node.js version and architecture-specific filename | ||||
| NODE_VERSION=20.15.1 | ||||
| NODE_ARCH=$ARCH | ||||
| NODE_VERSION=22.14.0 | ||||
|  | ||||
| # Debug output | ||||
| echo "Node arch: $NODE_ARCH" | ||||
| BUILD_DIR="./build" | ||||
| 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 | ||||
| echo "Node filename: $NODE_FILENAME" | ||||
| # Trigger the build | ||||
| echo "Build start" | ||||
| npm run build:prepare-dist | ||||
| echo "Build finished" | ||||
|  | ||||
| PKG_DIR=dist/trilium-linux-${ARCH}-server | ||||
| echo "Package directory: $PKG_DIR" | ||||
| # pruning of unnecessary files and devDeps in node_modules | ||||
| node --experimental-strip-types $CLEANUP_SCRIPT $BUILD_DIR | ||||
|  | ||||
| if [ "$1" != "DONTCOPY" ] | ||||
| then | ||||
|     # Need to modify copy-trilium.sh to accept the target directory | ||||
|     ./bin/copy-trilium.sh "$PKG_DIR" | ||||
| fi | ||||
| NODE_FILENAME=node-v${NODE_VERSION}-linux-${ARCH} | ||||
|  | ||||
| cd dist | ||||
| wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz | ||||
| tar xfJ node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz | ||||
| rm node-v${NODE_VERSION}-linux-${NODE_FILENAME}.tar.xz | ||||
| echo "Downloading Node.js runtime $NODE_FILENAME..." | ||||
| cd $BUILD_DIR | ||||
| wget -qO- https://nodejs.org/dist/v${NODE_VERSION}/${NODE_FILENAME}.tar.xz | tar xfJ - | ||||
| mv $NODE_FILENAME node | ||||
| cd .. | ||||
|  | ||||
| mv dist/node-v${NODE_VERSION}-linux-${NODE_FILENAME} $PKG_DIR/node | ||||
|  | ||||
| rm -r $PKG_DIR/node/lib/node_modules/npm | ||||
| rm -r $PKG_DIR/node/include/node | ||||
| rm -r $BUILD_DIR/node/lib/node_modules/{npm,corepack} \ | ||||
|     $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* | ||||
| rm -r $PKG_DIR/electron*.js | ||||
| printf "#!/bin/sh\n./node/bin/node src/main\n" > $BUILD_DIR/trilium.sh | ||||
| chmod 755 $BUILD_DIR/trilium.sh | ||||
|  | ||||
| printf "#!/bin/sh\n./node/bin/node src/main" > $PKG_DIR/trilium.sh | ||||
| chmod 755 $PKG_DIR/trilium.sh | ||||
|  | ||||
| cp bin/tpl/anonymize-database.sql $PKG_DIR/ | ||||
|  | ||||
| cp -r translations $PKG_DIR/ | ||||
| # TriliumNextTODO: is this still required? If yes → move to copy-dist/copy-trilium | ||||
| cp bin/tpl/anonymize-database.sql $BUILD_DIR/ | ||||
|  | ||||
| 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 path from "path"; | ||||
|  | ||||
| const DEST_DIR = "./dist"; | ||||
| const DEST_DIR = "./build"; | ||||
|  | ||||
| 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 { | ||||
|  | ||||
|     const assetsToCopy = new Set([ | ||||
|         // copy node_module, to avoid downloading packages a 2nd time during pruning | ||||
|         "./node_modules", | ||||
|         "./images", | ||||
|         "./libraries", | ||||
|         "./translations", | ||||
| @@ -28,6 +23,13 @@ try { | ||||
|         "./config-sample.ini", | ||||
|         "./package-lock.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/etapi/etapi.openapi.yaml", | ||||
|         "./src/routes/api/openapi.json", | ||||
| @@ -36,7 +38,8 @@ try { | ||||
|         "./src/public/robots.txt", | ||||
|         "./src/public/fonts", | ||||
|         "./src/public/stylesheets", | ||||
|         "./src/public/translations" | ||||
|         "./src/public/translations", | ||||
|         "./packages/turndown-plugin-gfm/src" | ||||
|     ]); | ||||
|  | ||||
|     for (const asset of assetsToCopy) { | ||||
| @@ -53,54 +56,10 @@ try { | ||||
|         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!") | ||||
|  | ||||
| } catch(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', | ||||
|        'whatLinksHereWidgetDisabled', 'similarNotesWidgetDisabled', 'workspace', 'workspaceIconClass', | ||||
|        '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', | ||||
|        'fullContentWidth', 'shareHiddenFromTree', 'shareExternalLink', 'shareOmitDefaultCss', 'shareRoot', 'shareDescription', | ||||
|        'shareRaw', 'shareDisallowRobotIndexing', 'shareIndex', 'displayRelations', 'hideRelations', 'titleTemplate', | ||||
| @@ -31,7 +32,8 @@ UPDATE attributes SET name = 'name' WHERE type = 'relation' | ||||
|        'widget', 'noteInfoWidgetDisabled', 'linkMapWidgetDisabled', 'revisionsWidgetDisabled', | ||||
|        'whatLinksHereWidgetDisabled', 'similarNotesWidgetDisabled', 'workspace', 'workspaceIconClass', | ||||
|        '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', | ||||
|        'fullContentWidth', 'shareHiddenFromTree', 'shareExternalLink', 'shareOmitDefaultCss', 'shareRoot', 'shareDescription', | ||||
|        'shareRaw', 'shareDisallowRobotIndexing', 'shareIndex', 'displayRelations', 'hideRelations', 'titleTemplate', | ||||
|   | ||||
| @@ -16,7 +16,7 @@ chcp 65001 | ||||
| :: Get Current Trilium executable directory and compute data directory | ||||
| SET DIR=%~dp0 | ||||
| set NODE_TLS_REJECT_UNAUTHORIZED=0 | ||||
| cd %DIR% | ||||
| cd "%DIR%" | ||||
| start trilium.exe | ||||
| GOTO END | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,9 @@ chcp 65001 | ||||
|  | ||||
| :: Get Current Trilium executable directory and compute data directory | ||||
| SET DIR=%~dp0 | ||||
| SET DIR=%DIR:~0,-1% | ||||
| SET TRILIUM_DATA_DIR=%DIR%\trilium-data | ||||
| cd %DIR% | ||||
| cd "%DIR%" | ||||
| start trilium.exe | ||||
| GOTO END | ||||
|  | ||||
|   | ||||
| @@ -16,7 +16,7 @@ chcp 65001 | ||||
| :: Get Current Trilium executable directory and compute data directory | ||||
| SET DIR=%~dp0 | ||||
| SET TRILIUM_SAFE_MODE=1 | ||||
| cd %DIR% | ||||
| cd "%DIR%" | ||||
| start trilium.exe --disable-gpu | ||||
| GOTO END | ||||
|  | ||||
|   | ||||
| @@ -8,9 +8,6 @@ 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 | ||||
| @@ -46,4 +43,17 @@ cookieMaxAge=1814400 | ||||
| [Sync] | ||||
| #syncServerHost= | ||||
| #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 () => { | ||||
|     const existingBlobIds = new Set(); | ||||
|  | ||||
|     for (const noteId of sql.getColumn<string>(`SELECT noteId FROM note_contents`)) { | ||||
|         const row = sql.getRow<NoteContentsRow>(`SELECT noteId, content, dateModified, utcDateModified FROM note_contents WHERE noteId = ?`, [noteId]); | ||||
|     for (const noteId of sql.getColumn<string>(/*sql*/`SELECT noteId FROM note_contents`)) { | ||||
|         const row = sql.getRow<NoteContentsRow>(/*sql*/`SELECT noteId, content, dateModified, utcDateModified FROM note_contents WHERE noteId = ?`, [noteId]); | ||||
|         const blobId = utils.hashedBlobId(row.content); | ||||
|  | ||||
|         if (!existingBlobIds.has(blobId)) { | ||||
| @@ -40,8 +40,8 @@ export default () => { | ||||
|         sql.execute("UPDATE notes SET blobId = ? WHERE noteId = ?", [blobId, row.noteId]); | ||||
|     } | ||||
|  | ||||
|     for (const noteRevisionId of sql.getColumn(`SELECT noteRevisionId FROM note_revision_contents`)) { | ||||
|         const row = sql.getRow<NoteRevisionContents>(`SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents WHERE noteRevisionId = ?`, [noteRevisionId]); | ||||
|     for (const noteRevisionId of sql.getColumn(/*sql*/`SELECT noteRevisionId FROM note_revision_contents`)) { | ||||
|         const row = sql.getRow<NoteRevisionContents>(/*sql*/`SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents WHERE noteRevisionId = ?`, [noteRevisionId]); | ||||
|         const blobId = utils.hashedBlobId(row.content); | ||||
|  | ||||
|         if (!existingBlobIds.has(blobId)) { | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import sql from "../../src/services/sql"; | ||||
| export default () => { | ||||
|     cls.init(() => { | ||||
|         // 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(); | ||||
|  | ||||
|   | ||||
							
								
								
									
										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, | ||||
|     isDeleted    INT  not 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 | ||||
|     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> | ||||
|     <meta charset="utf-8"> | ||||
|     <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"> | ||||
|     <title data-trilium-title>Mermaid Diagram</title> | ||||
|     <title data-trilium-title>Buy milk</title> | ||||
|   </head> | ||||
|    | ||||
|   <body> | ||||
|     <div class="content"> | ||||
|        <h1 data-trilium-h1>Mermaid Diagram</h1> | ||||
|        <h1 data-trilium-h1>Buy milk</h1> | ||||
| 
 | ||||
|       <div class="ck-content"></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> | ||||