Merge remote-tracking branch 'origin/develop' into feature/better_sidebar

This commit is contained in:
Elian Doran 2025-04-02 14:56:10 +03:00
commit 3c49a02742
No known key found for this signature in database
812 changed files with 38780 additions and 14779 deletions

View File

@ -34,9 +34,11 @@ npm-debug.log
# exceptions # exceptions
!/bin/copy-dist.ts !/bin/copy-dist.ts
!/bin/cleanupNodeModules.ts
# temporary exception to make copy-dist inside Docker build not fail # temporary exception to make copy-dist inside Docker build not fail
# TriliumNextTODO: make copy-dist *not* requiring to copy this file for builds other than electron-forge # TriliumNextTODO: make copy-dist *not* requiring to copy these file for builds other than electron-forge
!forge.config.cjs !forge.config.cjs
!/bin/tpl !/bin/tpl
!/bin/electron-forge/desktop.ejs !/bin/electron-forge/desktop.ejs
!/bin/electron-forge/sign-windows.cjs

44
.dprint.json Normal file
View File

@ -0,0 +1,44 @@
{
"typescript": {
"indentWidth": 4,
"quoteStyle": "preferDouble",
"semiColons": "prefer",
"quoteProps": "asNeeded",
"newLineKind": "lf",
"lineWidth": 200,
"trailingCommas": "never",
"arrayPattern.spaceAround": true,
"arrayExpression.spaceAround": true
},
"json": {
},
"markdown": {
},
"dockerfile": {
},
"malva": {
},
"markup": {
},
"yaml": {
},
"excludes": [
"**/node_modules",
"**/*-lock.json",
"*.html",
"*.md",
"*.yml",
"libraries/*",
"docs/*",
"src/public/app/doc_notes"
],
"plugins": [
"https://plugins.dprint.dev/typescript-0.94.0.wasm",
"https://plugins.dprint.dev/json-0.20.0.wasm",
"https://plugins.dprint.dev/markdown-0.18.0.wasm",
"https://plugins.dprint.dev/dockerfile-0.3.2.wasm",
"https://plugins.dprint.dev/g-plane/malva-v0.11.1.wasm",
"https://plugins.dprint.dev/g-plane/markup_fmt-v0.19.0.wasm",
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm"
]
}

9
.gitattributes vendored
View File

@ -1,4 +1,13 @@
package-lock.json linguist-generated=true package-lock.json linguist-generated=true
**/package-lock.json linguist-generated=true **/package-lock.json linguist-generated=true
src/public/app/doc_notes/en/User[[:space:]]Guide/** linguist-generated=true src/public/app/doc_notes/en/User[[:space:]]Guide/** linguist-generated=true
src/public/app/doc_notes/en/User[[:space:]]Guide/**/*.md eol=lf
demo/**/*.html eol=lf
demo/**/*.json eol=lf
demo/**/*.svg eol=lf
demo/**/*.txt eol=lf
demo/**/*.js eol=lf
demo/**/*.css eol=lf
libraries/** linguist-vendored libraries/** linguist-vendored

View File

@ -8,8 +8,11 @@ inputs:
arch: arch:
description: "The architecture to build for: x64, arm64" description: "The architecture to build for: x64, arm64"
required: true required: true
extension: shell:
description: "Platform specific extensions to copy in the output: dmg, deb, rpm, exe, zip" description: "Which shell to use"
required: true
forge_platform:
description: "The --platform to pass to Electron Forge"
required: true required: true
runs: runs:
@ -38,21 +41,21 @@ runs:
- name: Verify certificates - name: Verify certificates
if: inputs.os == 'macos' if: inputs.os == 'macos'
shell: bash shell: ${{ inputs.shell }}
run: | run: |
echo "Available signing identities:" echo "Available signing identities:"
security find-identity -v -p codesigning build.keychain security find-identity -v -p codesigning build.keychain
- name: Set up Python and other macOS dependencies - name: Set up Python and other macOS dependencies
if: ${{ inputs.os == 'macos' }} if: ${{ inputs.os == 'macos' }}
shell: bash shell: ${{ inputs.shell }}
run: | run: |
brew install python-setuptools brew install python-setuptools
brew install create-dmg brew install create-dmg
- name: Install dependencies for RPM and Flatpak package building - name: Install dependencies for RPM and Flatpak package building
if: ${{ inputs.os == 'linux' }} if: ${{ inputs.os == 'linux' }}
shell: bash shell: ${{ inputs.shell }}
run: | run: |
sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils sudo apt-get update && sudo apt-get install rpm flatpak-builder elfutils
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
@ -62,39 +65,32 @@ runs:
# Build setup # Build setup
- name: Install dependencies - name: Install dependencies
shell: bash shell: ${{ inputs.shell }}
run: npm ci run: npm ci
- name: Update build info - name: Update build info
shell: bash shell: ${{ inputs.shell }}
run: npm run chore:update-build-info run: npm run chore:update-build-info
# Critical debugging configuration # Critical debugging configuration
- name: Run electron-forge build with enhanced logging - name: Run electron-forge build with enhanced logging
shell: bash shell: ${{ inputs.shell }}
env: env:
# Pass through required environment variables for signing and notarization # Pass through required environment variables for signing and notarization
APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }} APPLE_TEAM_ID: ${{ env.APPLE_TEAM_ID }}
APPLE_ID: ${{ env.APPLE_ID }} APPLE_ID: ${{ env.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }} APPLE_ID_PASSWORD: ${{ env.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ env.WINDOWS_SIGN_EXECUTABLE }}
TRILIUM_ARTIFACT_NAME_HINT: TriliumNextNotes-${{ github.ref_name }}-${{ inputs.os }}-${{ inputs.arch }}
run: | run: |
# Map OS names to Electron Forge platform names
if [ "${{ inputs.os }}" = "macos" ]; then
PLATFORM="darwin"
elif [ "${{ inputs.os }}" = "windows" ]; then
PLATFORM="win32"
else
PLATFORM="${{ inputs.os }}"
fi
npm run electron-forge:make -- \ npm run electron-forge:make -- \
--arch=${{ inputs.arch }} \ --arch=${{ inputs.arch }} \
--platform=$PLATFORM --platform=${{ inputs.forge_platform }}
# Add DMG signing step # Add DMG signing step
- name: Sign DMG - name: Sign DMG
if: inputs.os == 'macos' if: inputs.os == 'macos'
shell: bash shell: ${{ inputs.shell }}
run: | run: |
echo "Signing DMG file..." echo "Signing DMG file..."
dmg_file=$(find ./dist -name "*.dmg" -print -quit) dmg_file=$(find ./dist -name "*.dmg" -print -quit)
@ -119,7 +115,7 @@ runs:
- name: Verify code signing - name: Verify code signing
if: inputs.os == 'macos' if: inputs.os == 'macos'
shell: bash shell: ${{ inputs.shell }}
run: | run: |
echo "Verifying code signing for all artifacts..." echo "Verifying code signing for all artifacts..."
@ -165,49 +161,3 @@ runs:
echo "Found ZIP: $zip_file" echo "Found ZIP: $zip_file"
echo "Note: ZIP files are not code signed, but their contents should be" echo "Note: ZIP files are not code signed, but their contents should be"
fi fi
- name: Prepare artifacts
shell: bash
run: |
mkdir -p upload
if [ "${{ inputs.os }}" = "macos" ]; then
# For macOS, we need to look in specific directories based on the maker
echo "Collecting macOS artifacts..."
# Look for DMG files recursively
echo "Looking for DMG files..."
dmg_file=$(find ./dist -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 ./dist -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 ./dist -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/

View File

@ -11,7 +11,7 @@ runs:
- name: Set up node & dependencies - name: Set up node & dependencies
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 22
cache: "npm" cache: "npm"
- name: Install dependencies - name: Install dependencies
shell: bash shell: bash

View File

@ -26,7 +26,7 @@ jobs:
- name: Set up node & dependencies - name: Set up node & dependencies
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 22
cache: "npm" cache: "npm"
- run: npm ci - run: npm ci

View File

@ -45,7 +45,7 @@ jobs:
- name: Set up node & dependencies - name: Set up node & dependencies
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 22
cache: "npm" cache: "npm"
- name: Install npm dependencies - name: Install npm dependencies

View File

@ -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

View File

@ -5,6 +5,13 @@ on:
- cron: "0 2 * * *" # run at 2 AM UTC - cron: "0 2 * * *" # run at 2 AM UTC
# This can be used to allow manually triggering nightlies from the web interface # This can be used to allow manually triggering nightlies from the web interface
workflow_dispatch: workflow_dispatch:
push:
branches:
- renovate/electron-forge*
pull_request:
paths:
- .github/actions/build-electron/*
- forge.config.cjs
env: env:
GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label} GITHUB_UPLOAD_URL: https://uploads.github.com/repos/TriliumNext/Notes/releases/179589950/assets{?name,label}
GITHUB_RELEASE_ID: 179589950 GITHUB_RELEASE_ID: 179589950
@ -20,22 +27,24 @@ jobs:
os: os:
- name: macos - name: macos
image: macos-latest image: macos-latest
extension: [dmg, zip] shell: bash
forge_platform: darwin
- name: linux - name: linux
image: ubuntu-latest image: ubuntu-latest
extension: [deb, rpm, zip, flatpak] shell: bash
forge_platform: linux
- name: windows - name: windows
image: windows-latest image: win-signing
extension: [exe, zip] shell: cmd
forge_platform: win32
runs-on: ${{ matrix.os.image }} runs-on: ${{ matrix.os.image }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up node & dependencies - name: Set up node & dependencies
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 22
- name: Install dependencies - name: Install dependencies
shell: bash
run: npm ci run: npm ci
- name: Update nightly version - name: Update nightly version
run: npm run chore:ci-update-nightly-version run: npm run chore:ci-update-nightly-version
@ -44,7 +53,8 @@ jobs:
with: with:
os: ${{ matrix.os.name }} os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }} arch: ${{ matrix.arch }}
extension: ${{ join(matrix.os.extension, ' ') }} shell: ${{ matrix.os.shell }}
forge_platform: ${{ matrix.os.forge_platform }}
env: env:
APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }}
APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }}
@ -53,9 +63,11 @@ jobs:
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }}
- name: Publish release - name: Publish release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
if: ${{ github.event_name != 'pull_request' }}
with: with:
make_latest: false make_latest: false
prerelease: true prerelease: true
@ -65,34 +77,9 @@ jobs:
tag_name: nightly tag_name: nightly
name: Nightly Build name: Nightly Build
nightly-server: - name: Publish artifacts
name: Deploy server nightly uses: actions/upload-artifact@v4
strategy: if: ${{ github.event_name == 'pull_request' }}
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: with:
os: linux name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}
arch: ${{ matrix.arch }} path: upload
- name: Publish release
uses: softprops/action-gh-release@v2
with:
make_latest: false
prerelease: true
draft: false
fail_on_unmatched_files: true
files: upload/*.*
tag_name: nightly
name: Nightly Build

View File

@ -20,26 +20,30 @@ jobs:
os: os:
- name: macos - name: macos
image: macos-latest image: macos-latest
extension: [dmg, zip] shell: bash
forge_platform: darwin
- name: linux - name: linux
image: ubuntu-latest image: ubuntu-latest
extension: [deb, rpm, zip, flatpak] shell: bash
forge_platform: linux
- name: windows - name: windows
image: windows-latest image: win-signing
extension: [exe, zip] shell: cmd
forge_platform: win32
runs-on: ${{ matrix.os.image }} runs-on: ${{ matrix.os.image }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up node & dependencies - name: Set up node & dependencies
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 22
- name: Run the build - name: Run the build
uses: ./.github/actions/build-electron uses: ./.github/actions/build-electron
with: with:
os: ${{ matrix.os.name }} os: ${{ matrix.os.name }}
arch: ${{ matrix.arch }} arch: ${{ matrix.arch }}
extension: ${{ join(matrix.os.extension, ' ') }} shell: ${{ matrix.os.shell }}
forge_platform: ${{ matrix.os.forge_platform }}
env: env:
APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }} APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }}
APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }} APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }}
@ -48,6 +52,7 @@ jobs:
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }}
- name: Publish release - name: Publish release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2

1
.gitignore vendored
View File

@ -26,6 +26,7 @@ server-package.json
.idea/shelf/ .idea/shelf/
data/ data/
data-test/ data-test/
data-demo/
tmp/ tmp/
.eslintcache .eslintcache

View File

@ -1,6 +0,0 @@
*.html
*.md
*.yml
libraries/*
docs/*
src/public/app/doc_notes/**/*

View File

@ -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
}
}
]
}

View File

@ -2,6 +2,8 @@
"recommendations": [ "recommendations": [
"lokalise.i18n-ally", "lokalise.i18n-ally",
"editorconfig.editorconfig", "editorconfig.editorconfig",
"vitest.explorer" "vitest.explorer",
"ms-playwright.playwright",
"tobermory.es6-string-html"
] ]
} }

View File

@ -39,8 +39,11 @@ COPY --from=builder /usr/src/app ./
RUN sed -i "/electron/d" package.json && \ RUN sed -i "/electron/d" package.json && \
npm ci --omit=dev && \ npm ci --omit=dev && \
node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \
npm cache clean --force && \ npm cache clean --force && \
rm -rf /tmp/node-compile-cache rm -rf \
/tmp/node-compile-cache \
/usr/src/app/bin/cleanupNodeModules.ts
# Configure container # Configure container
EXPOSE 8080 EXPOSE 8080

View File

@ -34,8 +34,11 @@ COPY --from=builder /usr/src/app ./
RUN sed -i "/electron/d" package.json && \ RUN sed -i "/electron/d" package.json && \
npm ci --omit=dev && \ npm ci --omit=dev && \
node --experimental-strip-types ./bin/cleanupNodeModules.ts . --skip-prune-dev-deps && \
npm cache clean --force && \ npm cache clean --force && \
rm -rf /tmp/node-compile-cache rm -rf \
/tmp/node-compile-cache \
/usr/src/app/bin/cleanupNodeModules.ts
# Add application user # Add application user
RUN adduser -s /bin/false node; exit 0 RUN adduser -s /bin/false node; exit 0

View File

@ -37,6 +37,7 @@ Feel free to join our official conversations. We would love to hear what feature
* Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting) * Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
* Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions) * Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts) * Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts)
* Direct OpenID and TOTP integration for more secure login
* [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server * [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server
* there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting) * there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting)
* [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet * [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet
@ -79,10 +80,11 @@ xattr -c "/path/to/Trilium Next.app"
### Mobile ### Mobile
To use TriliumNext on a mobile device: To use TriliumNext on a mobile device, you can use a mobile web browser to access the mobile interface of a server installation (see below).
* Use a mobile web browser to access the mobile interface of a server installation (see below) If you prefer a native Android app, you can use [TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid). Report bugs and missing features at [their repository](https://github.com/FliegendeWurst/TriliumDroid).
* Use of a mobile app is not yet supported ([see here](https://github.com/TriliumNext/Notes/issues/72)) to track mobile improvements.
See issue https://github.com/TriliumNext/Notes/issues/72 for more information on mobile app support.
### Server ### Server
@ -107,7 +109,8 @@ npm run server:start
### Documentation ### Documentation
Head on over to our [Docs repo](https://github.com/TriliumNext/Docs) We are currently transitioning to a new documentation mechanism.
Meanwhile you can still view the [archived Docs repository](https://github.com/TriliumNext/Docs).
## 👏 Shoutouts ## 👏 Shoutouts

View File

@ -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\|

View File

@ -21,12 +21,20 @@ fi
echo "Selected Arch: $ARCH" echo "Selected Arch: $ARCH"
# Set Node.js version and architecture-specific filename # Set Node.js version and architecture-specific filename
NODE_VERSION=20.15.1 NODE_VERSION=22.14.0
BUILD_DIR="./build" BUILD_DIR="./build"
DIST_DIR="./dist" DIST_DIR="./dist"
CLEANUP_SCRIPT="./bin/cleanupNodeModules.ts"
./bin/copy-trilium.sh
# Trigger the build
echo "Build start"
npm run build:prepare-dist
echo "Build finished"
# pruning of unnecessary files and devDeps in node_modules
node --experimental-strip-types $CLEANUP_SCRIPT $BUILD_DIR
NODE_FILENAME=node-v${NODE_VERSION}-linux-${ARCH} NODE_FILENAME=node-v${NODE_VERSION}-linux-${ARCH}
@ -37,7 +45,9 @@ mv $NODE_FILENAME node
cd .. cd ..
rm -r $BUILD_DIR/node/lib/node_modules/npm \ 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/include/node \
$BUILD_DIR/node_modules/electron* \ $BUILD_DIR/node_modules/electron* \
$BUILD_DIR/electron*.{js,map} $BUILD_DIR/electron*.{js,map}

109
bin/cleanupNodeModules.ts Normal file
View 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()

View File

@ -11,16 +11,11 @@ function log(...args: any[]) {
} }
} }
function copyNodeModuleFileOrFolder(source: string) {
const destination = path.join(DEST_DIR, source);
log(`Copying ${source} to ${destination}`);
fs.ensureDirSync(path.dirname(destination));
fs.copySync(source, destination);
}
try { try {
const assetsToCopy = new Set([ const assetsToCopy = new Set([
// copy node_module, to avoid downloading packages a 2nd time during pruning
"./node_modules",
"./images", "./images",
"./libraries", "./libraries",
"./translations", "./translations",
@ -32,7 +27,9 @@ try {
"./README.md", "./README.md",
"./forge.config.cjs", "./forge.config.cjs",
"./bin/tpl/", "./bin/tpl/",
"./bin/cleanupNodeModules.ts",
"./bin/electron-forge/desktop.ejs", "./bin/electron-forge/desktop.ejs",
"./bin/electron-forge/sign-windows.cjs",
"./src/views/", "./src/views/",
"./src/etapi/etapi.openapi.yaml", "./src/etapi/etapi.openapi.yaml",
"./src/routes/api/openapi.json", "./src/routes/api/openapi.json",
@ -41,7 +38,8 @@ try {
"./src/public/robots.txt", "./src/public/robots.txt",
"./src/public/fonts", "./src/public/fonts",
"./src/public/stylesheets", "./src/public/stylesheets",
"./src/public/translations" "./src/public/translations",
"./packages/turndown-plugin-gfm/src"
]); ]);
for (const asset of assetsToCopy) { for (const asset of assetsToCopy) {
@ -58,55 +56,10 @@ try {
fs.copySync(dir, path.join(PUBLIC_DIR, path.basename(dir))); fs.copySync(dir, path.join(PUBLIC_DIR, path.basename(dir)));
} }
const nodeModulesFile = new Set([
"node_modules/react/umd/react.production.min.js",
"node_modules/react/umd/react.development.js",
"node_modules/react-dom/umd/react-dom.production.min.js",
"node_modules/react-dom/umd/react-dom.development.js",
"node_modules/katex/dist/katex.min.js",
"node_modules/katex/dist/contrib/mhchem.min.js",
"node_modules/katex/dist/contrib/auto-render.min.js",
"node_modules/@highlightjs/cdn-assets/highlight.min.js",
"node_modules/@mind-elixir/node-menu/dist/node-menu.umd.cjs"
]);
const nodeModulesFolder = new Set([
"node_modules/@excalidraw/excalidraw/dist/prod/fonts/",
"node_modules/katex/dist/",
"node_modules/dayjs/",
"node_modules/boxicons/css/",
"node_modules/boxicons/fonts/",
"node_modules/mermaid/dist/",
"node_modules/jquery/dist/",
"node_modules/jquery-hotkeys/",
"node_modules/split.js/dist/",
"node_modules/panzoom/dist/",
"node_modules/i18next/",
"node_modules/i18next-http-backend/",
"node_modules/jsplumb/dist/",
"node_modules/vanilla-js-wheel-zoom/dist/",
"node_modules/mark.js/dist/",
"node_modules/normalize.css/",
"node_modules/jquery.fancytree/dist/",
"node_modules/autocomplete.js/dist/",
"node_modules/codemirror/lib/",
"node_modules/codemirror/addon/",
"node_modules/codemirror/mode/",
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/",
"node_modules/@highlightjs/cdn-assets/languages",
"node_modules/@highlightjs/cdn-assets/styles",
"node_modules/leaflet/dist"
]);
for (const nodeModuleItem of [...nodeModulesFile, ...nodeModulesFolder]) {
copyNodeModuleFileOrFolder(nodeModuleItem);
}
console.log("Copying complete!") console.log("Copying complete!")
} catch(err) { } catch(err) {
console.error("Error during copy:", err) console.error("Error during copy:", err)
process.exit(1) process.exit(1)
} }

View File

@ -1,44 +0,0 @@
#!/usr/bin/env bash
set -e # Fail on any command error
shopt -s globstar
BUILD_DIR="./build"
if ! [[ $(which npm) ]]; then
echo "Missing npm"
exit 1
fi
# Trigger the build
echo Build start
npm run build:prepare-dist
echo Build finished
# Patch package.json main
sed -i 's|./dist/electron-main.js|electron-main.js|g' "$BUILD_DIR/package.json"
# run in subshell (so we return to original dir)
(cd $BUILD_DIR && npm ci --omit=dev)
if [[ -d "$BUILD_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 "$BUILD_DIR"/node_modules/"$d" ]] && rm -r "$BUILD_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 "$BUILD_DIR"/node_modules -name "$d" -exec rm -rf {} +
done
fi
find $BUILD_DIR/libraries -name "*.map" -type f -delete
find $BUILD_DIR/node_modules -name "*.map" -type f -delete
find $BUILD_DIR -name "*.ts" -type f -delete
unset f d BUILD_DIR

View 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);
}

View File

@ -8,9 +8,6 @@ noAuthentication=false
# set to true to disable backups (e.g. because of limited space on server) # set to true to disable backups (e.g. because of limited space on server)
noBackup=false noBackup=false
# Disable automatically generating desktop icon
# noDesktopIcon=true
[Network] [Network]
# host setting is relevant only for web deployments - set the host on which the server will listen # host setting is relevant only for web deployments - set the host on which the server will listen
# host=0.0.0.0 # host=0.0.0.0
@ -47,3 +44,16 @@ cookieMaxAge=1814400
#syncServerHost= #syncServerHost=
#syncServerTimeout= #syncServerTimeout=
#syncServerProxy= #syncServerProxy=
[MultiFactorAuthentication]
# Set the base URL for OAuth/OpenID authentication
# This is the URL of the service that will be used to verify the user's identity
oauthBaseUrl=
# Set the client ID for OAuth/OpenID authentication
# This is the ID of the client that will be used to verify the user's identity
oauthClientId=
# Set the client secret for OAuth/OpenID authentication
# This is the secret of the client that will be used to verify the user's identity
oauthClientSecret=

Binary file not shown.

View File

@ -17,8 +17,8 @@ interface NoteRevisionContents {
export default () => { export default () => {
const existingBlobIds = new Set(); const existingBlobIds = new Set();
for (const noteId of sql.getColumn<string>(`SELECT noteId FROM note_contents`)) { for (const noteId of sql.getColumn<string>(/*sql*/`SELECT noteId FROM note_contents`)) {
const row = sql.getRow<NoteContentsRow>(`SELECT noteId, content, dateModified, utcDateModified FROM note_contents WHERE noteId = ?`, [noteId]); const row = sql.getRow<NoteContentsRow>(/*sql*/`SELECT noteId, content, dateModified, utcDateModified FROM note_contents WHERE noteId = ?`, [noteId]);
const blobId = utils.hashedBlobId(row.content); const blobId = utils.hashedBlobId(row.content);
if (!existingBlobIds.has(blobId)) { if (!existingBlobIds.has(blobId)) {
@ -40,8 +40,8 @@ export default () => {
sql.execute("UPDATE notes SET blobId = ? WHERE noteId = ?", [blobId, row.noteId]); sql.execute("UPDATE notes SET blobId = ? WHERE noteId = ?", [blobId, row.noteId]);
} }
for (const noteRevisionId of sql.getColumn(`SELECT noteRevisionId FROM note_revision_contents`)) { for (const noteRevisionId of sql.getColumn(/*sql*/`SELECT noteRevisionId FROM note_revision_contents`)) {
const row = sql.getRow<NoteRevisionContents>(`SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents WHERE noteRevisionId = ?`, [noteRevisionId]); const row = sql.getRow<NoteRevisionContents>(/*sql*/`SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents WHERE noteRevisionId = ?`, [noteRevisionId]);
const blobId = utils.hashedBlobId(row.content); const blobId = utils.hashedBlobId(row.content);
if (!existingBlobIds.has(blobId)) { if (!existingBlobIds.has(blobId)) {

View File

@ -7,7 +7,7 @@ import sql from "../../src/services/sql";
export default () => { export default () => {
cls.init(() => { cls.init(() => {
// emergency disabling of image compression since it appears to make problems in migration to 0.61 // emergency disabling of image compression since it appears to make problems in migration to 0.61
sql.execute(`UPDATE options SET value = 'false' WHERE name = 'compressImages'`); sql.execute(/*sql*/`UPDATE options SET value = 'false' WHERE name = 'compressImages'`);
becca_loader.load(); becca_loader.load();

View 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)
);

View File

@ -126,6 +126,19 @@ CREATE TABLE IF NOT EXISTS "attachments"
utcDateScheduledForErasureSince TEXT DEFAULT NULL, utcDateScheduledForErasureSince TEXT DEFAULT NULL,
isDeleted INT not null, isDeleted INT not null,
deleteId TEXT DEFAULT NULL); deleteId TEXT DEFAULT NULL);
CREATE TABLE IF NOT EXISTS "user_data"
(
tmpID INT,
username TEXT,
email TEXT,
userIDEncryptedDataKey TEXT,
userIDVerificationHash TEXT,
salt TEXT,
derivedKey TEXT,
isSetup TEXT DEFAULT "false",
UNIQUE (tmpID),
PRIMARY KEY (tmpID)
);
CREATE INDEX IDX_attachments_ownerId_role CREATE INDEX IDX_attachments_ownerId_role
on attachments (ownerId, role); on attachments (ownerId, role);

6073
demo/!!!meta.json Normal file

File diff suppressed because it is too large Load Diff

11
demo/index.html Normal file
View 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
View 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>

View File

@ -0,0 +1,74 @@
<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&nbsp;<a href="Trilium%20Demo/Formatting%20examples/Math.html">math examples</a>.</p>
</div>
</div>
</body>
</html>

View 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>&nbsp;</p>
<h2>Plot</h2>
<p>… describe main plot lines …</p>
<p>&nbsp;</p>
<h2>Tone</h2>
<p>&nbsp;</p>
<h2>Genre</h2>
<p>scifi / drama / romance</p>
<p>&nbsp;</p>
<h2>Similar books</h2>
<ul>
<li></li>
</ul>
</div>
</div>
</body>
</html>

View 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>

View 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>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>

View 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&amp;pd_rd_i=0765386690&amp;pd_rd_r=AB0J179TM9NTEAMHE240&amp;pd_rd_w=FAhxX&amp;pd_rd_wg=pLGK7&amp;psc=1&amp;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&amp;pd_rd_i=0316246654&amp;pd_rd_r=D7KDTGZFP7YM1YSYVY4G&amp;pd_rd_w=jkn28&amp;pd_rd_wg=JVhtw&amp;psc=1&amp;refRID=D7KDTGZFP7YM1YSYVY4G">Ancillary Sword</a>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,43 @@
<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&nbsp;&nbsp;</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&nbsp;&nbsp;</span>
</label>
</li>
<li>
<label class="todo-list__label">
<input type="checkbox" checked="checked" disabled="disabled"><span class="todo-list__label__description">watch TV&nbsp;&nbsp;</span>
</label>
</li>
<li>
<label class="todo-list__label">
<input type="checkbox" disabled="disabled"><span class="todo-list__label__description">eat ice cream&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View 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.&nbsp;</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&nbsp;<a class="reference-link" href="../Scripting%20examples/Custom%20request%20handler.js">Custom request handler</a>.</p>
</div>
</div>
</body>
</html>

View 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>

View 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>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 &nbsp; &nbsp; \f\hat\xi\,e^{2 \pi i \xi x} &nbsp; &nbsp; \,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:&nbsp;<span class="math-tex">\(c^2 = a^2 + b^2\)</span>&nbsp;</p>
<p>&nbsp;</p>
</div>
</div>
</body>
</html>

View File

@ -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>&nbsp;</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>&nbsp;</td>
<td>Math</td>
<td>Computer Science</td>
<td>&nbsp;</td>
</tr>
<tr>
<th>11:00-12:30</th>
<td>History</td>
<td>English</td>
<td>&nbsp;</td>
<td>Physics</td>
<td>Math</td>
</tr>
<tr>
<th>13:00-14:30</th>
<td>&nbsp;</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>&nbsp;</td>
<td>Latin</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<figcaption>School schedule</figcaption>
</figure>
</div>
</div>
</body>
</html>

View 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>

View 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&amp;storeType=ebooks&amp;pageType=STOREFRONT&amp;pf_rd_p=8e2a96d9-c848-435b-92bd-0856850ad544&amp;pf_rd_r=4J6CT15BS4X8062XNGDF&amp;pf_rd_s=merchandised-search-5&amp;pf_rd_t=40901&amp;ref_=dbs_f_ebk_rwt_scns_mwl_ms5_kmw_8e2a96d9-c848-435b-92bd-0856850ad544_2&amp;pf_rd_i=154606011">https://www.amazon.com/gp/product/B01K3WN1BY?pf_rd_m=A2R2RITDJNW1Q6&amp;storeType=ebooks&amp;pageType=STOREFRONT&amp;pf_rd_p=8e2a96d9-c848-435b-92bd-0856850ad544&amp;pf_rd_r=4J6CT15BS4X8062XNGDF&amp;pf_rd_s=merchandised-search-5&amp;pf_rd_t=40901&amp;ref_=dbs_f_ebk_rwt_scns_mwl_ms5_kmw_8e2a96d9-c848-435b-92bd-0856850ad544_2&amp;pf_rd_i=154606011</a>&nbsp;</p>
</div>
</div>
</body>
</html>

View 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>

View 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>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">&nbsp;</section>
<p>This page demonstrates two things:</p>
<ul>
<li>possibility to <a href="https://github.com/zadam/trilium/wiki/Text-editor#include-note">include one note into another</a>
</li>
<li>PDF preview - you can read PDFs directly in Trilium!</li>
</ul>
</div>
</div>
</body>
</html>

View 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>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>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@ -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&amp;pd_rd_r=c9bb7c0f-0051-4da7-991f-4ca711a1b3e3&amp;pd_rd_w=ciUpR&amp;ref_=pd_gw_simh&amp;pf_rd_r=K10XKX0NGPDNTYYP4BS4&amp;pf_rd_p=5f1b460b-78c1-580e-929e-2878fe4859e8">Portable speakers</a>
</li>
<li>...?</li>
</ul>
</div>
</div>
</body>
</html>

View 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>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>

View 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>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>

View 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>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>&nbsp;</p>
<p>Interesting video: <a href="https://www.youtube.com/watch?v=_eSAF_qT_FY&amp;feature=youtu.be">https://www.youtube.com/watch?v=_eSAF_qT_FY&amp;feature=youtu.be</a>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
</div>
</body>
</html>

View 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>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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -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>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@ -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>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View 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 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>

View 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>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>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View File

@ -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>

View 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>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>

View File

@ -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>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View 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>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>

View File

@ -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>Buy milk</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Buy milk</h1>
<div class="ck-content"></div>
</div>
</body>
</html>

View 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>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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

View 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>

View 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>

View 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 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>

View 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 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>

View 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>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>

View 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>

View 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">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -0,0 +1 @@
{"view":{"center":{"lat":5.840169838914697,"lng":14.578571156950112},"zoom":3}}

View File

@ -0,0 +1,43 @@
<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>Chichén Itzá, Mexico</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Chichén Itzá, Mexico</h1>
<div class="ck-content">
<p style="margin-left:0px;">Deep in the Mexican state of Yucatán lies <a href="https://www.thecollector.com/enigmatic-archaeology-chichen-itza-world-wonder/"><u>Chichen Itza</u></a>,
a historic <a href="https://www.thecollector.com/mayan-inventions/"><u>Mayan</u></a> city
built between the 9th and 12th centuries. Constructed by the pre-Columbian
Mayan tribe <a href="https://www.thecollector.com/who-were-the-founders-of-chichen-itza/"><u>Itzá</u></a>,
the city includes a series of monuments and temples. The most celebrated
is <a href="https://www.thecollector.com/what-is-el-castillo-and-why-is-it-so-famous/"><u>El Castillo</u></a>,
also known as the Temple of Kukulcan. It is a huge step pyramid in the
center of the city which was built as a devotional temple to the god Kukulkan.
<span
class="footnote-reference" data-footnote-reference="" data-footnote-index="1"
data-footnote-id="6qz4pm021mi" role="doc-noteref" id="fnref6qz4pm021mi"><sup><a href="#fn6qz4pm021mi">[1]</a></sup>
</span>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="6qz4pm021mi" role="doc-endnote" id="fn6qz4pm021mi"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="6qz4pm021mi"><sup><strong><a href="#fnref6qz4pm021mi">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://www.thecollector.com/what-are-the-seven-wonders-of-the-world/">What Are the 7 Wonders of the World? (with HD Images) | TheCollector</a>
</p>
</div>
</li>
</ol>
</div>
</div>
</body>
</html>

View File

@ -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>Christ the Redeemer, Brazil</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Christ the Redeemer, Brazil</h1>
<div class="ck-content">
<p style="margin-left:0px;">The totemic statue of <a href="https://www.thecollector.com/why-was-the-statue-of-christ-the-redeemer-built/"><u>Christ the Redeemer</u></a> stands
over Rio de Janeiro on the top of <a href="https://www.thecollector.com/where-is-the-statue-of-christ-the-redeemer/"><u>Mount Corcovado</u></a>.
At 30 meters tall, this monument is an iconic emblem of Brazil. This huge
public artwork was <a href="https://www.thecollector.com/who-made-the-statue-of-christ-the-redeemer/"><u>designed by the Polish-French sculptor Paul Landowski in the 1920s</u></a> and
completed by Brazilian engineer Heitor da Silva Costa and French engineer
Albert Caquot in 1931. <a href="https://www.thecollector.com/how-was-christ-the-redeemer-built/"><u>Made from</u></a> reinforced
concrete clad in over six million soapstone tiles, the Christ the Redeemer
statue is the largest <a href="https://www.thecollector.com/what-were-the-main-influences-on-art-deco/"><u>Art Deco</u></a> sculpture
in the world. Built just after the end of the First World War, the sculpture
was an overpowering symbol of Christianity and hope when the world had
been brought to its knees.<span class="footnote-reference" data-footnote-reference=""
data-footnote-index="1" data-footnote-id="o6g991vkrwj" role="doc-noteref"
id="fnrefo6g991vkrwj"><sup><a href="#fno6g991vkrwj">[1]</a></sup></span>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="o6g991vkrwj" role="doc-endnote" id="fno6g991vkrwj"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="o6g991vkrwj"><sup><strong><a href="#fnrefo6g991vkrwj">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://www.thecollector.com/what-are-the-seven-wonders-of-the-world/">What Are the 7 Wonders of the World? (with HD Images) | TheCollector</a>
</p>
</div>
</li>
</ol>
</div>
</div>
</body>
</html>

View 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>Machu Picchu, Peru</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Machu Picchu, Peru</h1>
<div class="ck-content">
<p style="margin-left:0px;"><a href="https://www.thecollector.com/why-is-machu-picchu-a-world-wonder/"><u>Machu Picchu</u></a> is
a lost treasure of the 15th century and a rare citadel discovered high
in the Andes mountains above the Peruvian Sacred Valley. Astonishingly,
it is one of the only pre-Columbian ruins found nearly intact, featuring
evidence of former plazas, temples, agricultural terraces, and homes. Archaeologists
believe the citadel was built as an estate for the <a href="https://www.southamerica.travel/peru/news/pachacuti-incan-empire"><u>Inca emperor Pachacuti</u></a> in
around 1450 in polished drystone walls.<span class="footnote-reference"
data-footnote-reference="" data-footnote-index="1" data-footnote-id="4prjheuho88"
role="doc-noteref" id="fnref4prjheuho88"><sup><a href="#fn4prjheuho88">[1]</a></sup></span>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="4prjheuho88" role="doc-endnote" id="fn4prjheuho88"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="4prjheuho88"><sup><strong><a href="#fnref4prjheuho88">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://www.thecollector.com/what-are-the-seven-wonders-of-the-world/">What Are the 7 Wonders of the World? (with HD Images) | TheCollector</a>
</p>
</div>
</li>
</ol>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,41 @@
<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>Petra, Jordan</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>Petra, Jordan</h1>
<div class="ck-content">
<p style="margin-left:0px;"><a href="https://www.thecollector.com/what-is-so-special-about-petra-jordan-world-heritage-site/"><u>Petra</u></a>,
the ancient city in southern Jordan, is also known as the “rose city” for
its golden hue. It dates as far back as 312 BCE. Set in a remote valley,
this city was founded by the Arab Nabataeans, a sophisticated civilization
that carved stunning architecture and complex waterways out of surrounding
rock faces. The Nabateans also established Petra as a successful trade
hub, earning vast wealth and a booming population before being wiped out
by earthquakes.<span class="footnote-reference" data-footnote-reference=""
data-footnote-index="1" data-footnote-id="ej5sd0bakne" role="doc-noteref"
id="fnrefej5sd0bakne"><sup><a href="#fnej5sd0bakne">[1]</a></sup></span>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="ej5sd0bakne" role="doc-endnote" id="fnej5sd0bakne"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="ej5sd0bakne"><sup><strong><a href="#fnrefej5sd0bakne">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://www.thecollector.com/what-are-the-seven-wonders-of-the-world/">What Are the 7 Wonders of the World? (with HD Images) | TheCollector</a>
</p>
</div>
</li>
</ol>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,45 @@
<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 Colosseum, Rome, Italy</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>The Colosseum, Rome, Italy</h1>
<div class="ck-content">
<p style="margin-left:0px;">The <a href="https://www.thecollector.com/why-is-the-roman-colosseum-a-world-wonder/"><u>Colosseum</u></a> is
the great oval <a href="https://www.thecollector.com/roman-theatre-amphitheatre-in-ancient-rome/"><u>amphitheater</u></a> in
the center of Rome where <a href="https://www.thecollector.com/colosseum-day-events/"><u>gladiators once fought for their lives</u></a> and
the pleasure of the crowd. The largest amphitheater ever built, it was
constructed from sand and stone over eight years, from 72 to 80 CE. The
colossal structure could hold 80,000 spectators, arranged in a circular
ring around the central stage. Dramatic and sometimes horrifying events
took place here, not just gladiatorial games but also Classical plays,
animal hunts, and executions. Some say water was even pumped into the arena
to enact mock sea battles known as <a href="https://www.thecollector.com/naumachia-gladiatorial-naval-battles-ancient-rome/"><u>naumachia</u></a>.
<span
class="footnote-reference" data-footnote-reference="" data-footnote-index="1"
data-footnote-id="4kitkusvyi3" role="doc-noteref" id="fnref4kitkusvyi3"><sup><a href="#fn4kitkusvyi3">[1]</a></sup>
</span>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="4kitkusvyi3" role="doc-endnote" id="fn4kitkusvyi3"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="4kitkusvyi3"><sup><strong><a href="#fnref4kitkusvyi3">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://www.thecollector.com/what-are-the-seven-wonders-of-the-world/">What Are the 7 Wonders of the World? (with HD Images) | TheCollector</a>
</p>
</div>
</li>
</ol>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,42 @@
<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 Great Wall of China</title>
</head>
<body>
<div class="content">
<h1 data-trilium-h1>The Great Wall of China</h1>
<div class="ck-content">
<p style="margin-left:0px;"><a href="https://www.thecollector.com/great-wall-china-facts/"><u>The Great Wall of China</u></a>&nbsp;is
a huge barrier that spans thousands of miles along Chinas historic northern
border. Created over millennia, the wall began its life as a series of
smaller walls dating back to the 7th century BCE, built <a href="https://www.thecollector.com/who-built-the-great-wall-of-china-and-why/"><u>as protective barriers against nomadic raids</u></a>.
In 220 BCE, Chinas first Emperor, <a href="https://www.thecollector.com/qin-shi-huangdi-chinese-emperor/"><u>Qin Shi Huang</u></a>,
masterminded the unification of all of Chinas walls into one almighty
barrier, strengthening and extending the wall to keep out northern invaders.
<span
class="footnote-reference" data-footnote-reference="" data-footnote-index="1"
data-footnote-id="o0o2das7ljm" role="doc-noteref" id="fnrefo0o2das7ljm"><sup><a href="#fno0o2das7ljm">[1]</a></sup>
</span>
</p>
<ol class="footnote-section footnotes" data-footnote-section="" role="doc-endnotes">
<li class="footnote-item" data-footnote-item="" data-footnote-index="1"
data-footnote-id="o0o2das7ljm" role="doc-endnote" id="fno0o2das7ljm"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="o0o2das7ljm"><sup><strong><a href="#fnrefo0o2das7ljm">^</a></strong></sup></span>
<div
class="footnote-content" data-footnote-content="">
<p><a href="https://www.thecollector.com/what-are-the-seven-wonders-of-the-world/">What Are the 7 Wonders of the World? (with HD Images) | TheCollector</a>
</p>
</div>
</li>
</ol>
</div>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More