Compare commits
	
		
			85 Commits
		
	
	
		
			copilot/fi
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 70837fdc69 | ||
|  | 67d80512f6 | ||
|  | dd8a1e8aca | ||
|  | 99f43e2280 | ||
|  | bcffa77c90 | ||
|  | 8ab2069411 | ||
|  | 21fc61d132 | ||
|  | 552df50fe4 | ||
|  | c058b663ee | ||
|  | 6c19370235 | ||
|  | d332bb57ba | ||
|  | 3ef38e7f4e | ||
|  | 1abc3b5534 | ||
|  | ddcd27ddf6 | ||
|  | ff385c8c88 | ||
|  | a641e452ce | ||
|  | 5f4fa25da5 | ||
|  | ea177e972e | ||
|  | 7e3013bfdc | ||
|  | 5115baeb21 | ||
|  | 35a924a05a | ||
|  | 78f067965f | ||
|  | 413b16b51c | ||
|  | 59586c53b2 | ||
|  | 70ed1d7abb | ||
|  | 67de6c614c | ||
|  | faf030ab3a | ||
|  | 6e20d4b5dd | ||
|  | 10e809af75 | ||
|  | f1478f8149 | ||
|  | 9087adf254 | ||
|  | f944c6d8e2 | ||
|  | 444e103047 | ||
|  | 1d6ab64ae5 | ||
|  | 0bc86d7c75 | ||
|  | cfd55147df | ||
|  | 754bb61a52 | ||
|  | 4f103375b5 | ||
|  | 496091677b | ||
|  | 618b67f551 | ||
|  | ce4f46c226 | ||
|  | 44cfbcf7f4 | ||
|  | a317331551 | ||
|  | eeec3e440d | ||
|  | b06aa29ea3 | ||
|  | 9c3f9a524e | ||
|  | 1c832182d6 | ||
|  | b58e1f146c | ||
|  | bc86fb95b5 | ||
|  | 6c43db692e | ||
|  | 6ffce824d1 | ||
|  | f1f8f34ef8 | ||
|  | a0b19ce526 | ||
|  | 4cc9ba824d | ||
|  | 08e66c18e7 | ||
|  | cf8089b07f | ||
|  | f8c61ecde9 | ||
|  | 6d51da9b88 | ||
|  | 0ad95d00dc | ||
|  | 9819a92b48 | ||
|  | 55a7017e92 | ||
|  | 1581568741 | ||
|  | d7982c65dd | ||
|  | 39608a2815 | ||
|  | f656c2caaa | ||
|  | bd3e92f091 | ||
|  | 7ce7c66463 | ||
|  | 61d26fec60 | ||
|  | 1822eea77c | ||
|  | 28c0e4e802 | ||
|  | 88d90fdedd | ||
|  | 2a1ecdbdca | ||
|  | 5772046674 | ||
|  | 1e2c8b2ac4 | ||
|  | 955b202b8a | ||
|  | be98a27439 | ||
|  | 54200fa0cb | ||
|  | 5d82a26c87 | ||
|  | e51070e389 | ||
|  | e0dc4fee20 | ||
|  | 187e9b57de | ||
|  | d6d67e7957 | ||
|  | bde03e8378 | ||
|  | 4c3fcdba4a | ||
|  | 7a5c1277f1 | 
							
								
								
									
										73
									
								
								.github/workflows/deploy-docs.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,6 +1,4 @@ | ||||
| # GitHub Actions workflow for deploying MkDocs documentation to Cloudflare Pages | ||||
| # This workflow builds and deploys your MkDocs site when changes are pushed to main | ||||
| name: Deploy MkDocs Documentation | ||||
| name: Deploy Documentation | ||||
|  | ||||
| on: | ||||
|   # Trigger on push to main branch | ||||
| @@ -11,11 +9,8 @@ on: | ||||
|     # Only run when docs files change | ||||
|     paths: | ||||
|       - 'docs/**' | ||||
|       - 'README.md'  # README is synced to docs/index.md | ||||
|       - 'mkdocs.yml' | ||||
|       - 'requirements-docs.txt' | ||||
|       - '.github/workflows/deploy-docs.yml' | ||||
|       - 'scripts/fix-mkdocs-structure.ts' | ||||
|       - 'apps/edit-docs/**' | ||||
|       - 'packages/share-theme/**' | ||||
|  | ||||
|   # Allow manual triggering from Actions tab | ||||
|   workflow_dispatch: | ||||
| @@ -27,15 +22,12 @@ on: | ||||
|       - master | ||||
|     paths: | ||||
|       - 'docs/**' | ||||
|       - 'README.md'  # README is synced to docs/index.md | ||||
|       - 'mkdocs.yml' | ||||
|       - 'requirements-docs.txt' | ||||
|       - '.github/workflows/deploy-docs.yml' | ||||
|       - 'scripts/fix-mkdocs-structure.ts' | ||||
|       - 'apps/edit-docs/**' | ||||
|       - 'packages/share-theme/**' | ||||
|  | ||||
| jobs: | ||||
|   build-and-deploy: | ||||
|     name: Build and Deploy MkDocs | ||||
|     name: Build and Deploy Documentation | ||||
|     runs-on: ubuntu-latest | ||||
|     timeout-minutes: 10 | ||||
|  | ||||
| @@ -49,72 +41,25 @@ jobs: | ||||
|     steps: | ||||
|       - name: Checkout Repository | ||||
|         uses: actions/checkout@v5 | ||||
|         with: | ||||
|           fetch-depth: 0 # Fetch all history for git info and mkdocs-git-revision-date plugin | ||||
|  | ||||
|       - name: Setup Python | ||||
|         uses: actions/setup-python@v6 | ||||
|         with: | ||||
|           python-version: '3.14' | ||||
|           cache: 'pip' | ||||
|           cache-dependency-path: 'requirements-docs.txt' | ||||
|  | ||||
|       - name: Install MkDocs and Dependencies | ||||
|         run: | | ||||
|           pip install --upgrade pip | ||||
|           pip install -r requirements-docs.txt | ||||
|         env: | ||||
|           PIP_DISABLE_PIP_VERSION_CHECK: 1 | ||||
|  | ||||
|       # Setup pnpm before fixing docs structure | ||||
|       - name: Setup pnpm | ||||
|         uses: pnpm/action-setup@v4 | ||||
|  | ||||
|       # Setup Node.js with pnpm | ||||
|       - name: Setup Node.js | ||||
|         uses: actions/setup-node@v6 | ||||
|         with: | ||||
|           node-version: '24' | ||||
|           cache: 'pnpm' | ||||
|  | ||||
|       # Install Node.js dependencies for the TypeScript script | ||||
|       - name: Install Dependencies | ||||
|         run: | | ||||
|           pnpm install --frozen-lockfile | ||||
|         run: pnpm install --frozen-lockfile | ||||
|  | ||||
|       - name: Fix Documentation Structure | ||||
|         run: | | ||||
|           # Fix duplicate navigation entries by moving overview pages to index.md | ||||
|           pnpm run chore:fix-mkdocs-structure | ||||
|  | ||||
|       - name: Build MkDocs Site | ||||
|         run: | | ||||
|           # Build with strict mode but allow expected warnings | ||||
|           mkdocs build --verbose || { | ||||
|             EXIT_CODE=$? | ||||
|             # Check if the only issue is expected warnings | ||||
|             if mkdocs build 2>&1 | grep -E "WARNING.*(README|not found)" && \ | ||||
|                [ $(mkdocs build 2>&1 | grep -c "ERROR") -eq 0 ]; then | ||||
|               echo "✅ Build succeeded with expected warnings" | ||||
|               mkdocs build --verbose | ||||
|             else | ||||
|               echo "❌ Build failed with unexpected errors" | ||||
|               exit $EXIT_CODE | ||||
|             fi | ||||
|           } | ||||
|  | ||||
|       - name: Fix HTML Links | ||||
|         run: | | ||||
|           # Remove .md extensions from links in generated HTML | ||||
|           pnpm tsx ./scripts/fix-html-links.ts site | ||||
|       - name: Trigger build of documentation | ||||
|         run: pnpm docs:build | ||||
|  | ||||
|       - name: Validate Built Site | ||||
|         run: | | ||||
|           # Basic validation that important files exist | ||||
|           test -f site/index.html || (echo "ERROR: site/index.html not found" && exit 1) | ||||
|           test -f site/sitemap.xml || (echo "ERROR: site/sitemap.xml not found" && exit 1) | ||||
|           test -d site/assets || (echo "ERROR: site/assets directory not found" && exit 1) | ||||
|           echo "✅ Site validation passed" | ||||
|  | ||||
|       - name: Deploy | ||||
|         uses: ./.github/actions/deploy-to-cloudflare-pages | ||||
|   | ||||
							
								
								
									
										4
									
								
								.github/workflows/main-docker.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -116,10 +116,10 @@ jobs: | ||||
|           - dockerfile: Dockerfile | ||||
|             platform: linux/arm64 | ||||
|             image: ubuntu-24.04-arm | ||||
|           - dockerfile: Dockerfile | ||||
|           - dockerfile: Dockerfile.legacy | ||||
|             platform: linux/arm/v7 | ||||
|             image: ubuntu-24.04-arm | ||||
|           - dockerfile: Dockerfile | ||||
|           - dockerfile: Dockerfile.legacy | ||||
|             platform: linux/arm/v8 | ||||
|             image: ubuntu-24.04-arm | ||||
|     runs-on: ${{ matrix.image }} | ||||
|   | ||||
| @@ -1,24 +0,0 @@ | ||||
| import "normalize.css"; | ||||
| import "boxicons/css/boxicons.min.css"; | ||||
| import "@triliumnext/ckeditor5/src/theme/ck-content.css"; | ||||
| import "@triliumnext/share-theme/styles/index.css"; | ||||
| import "@triliumnext/share-theme/scripts/index.js"; | ||||
|  | ||||
| async function ensureJQuery() { | ||||
|     const $ = (await import("jquery")).default; | ||||
|     (window as any).$ = $; | ||||
| } | ||||
|  | ||||
| async function formatCodeBlocks() { | ||||
|     const anyCodeBlock = document.querySelector("#content pre"); | ||||
|     if (!anyCodeBlock) { | ||||
|         return; | ||||
|     } | ||||
|     await ensureJQuery(); | ||||
|     const { formatCodeBlocks } = await import("./services/syntax_highlight.js"); | ||||
|     await formatCodeBlocks($("#content")); | ||||
| } | ||||
|  | ||||
| async function setupTextNote() { | ||||
|     formatCodeBlocks(); | ||||
| } | ||||
| @@ -51,7 +51,7 @@ | ||||
|     "bulk_actions_executed": "批量操作已成功执行。", | ||||
|     "none_yet": "暂无操作 ... 通过点击上方的可用操作添加一个操作。", | ||||
|     "labels": "标签", | ||||
|     "relations": "关联关系", | ||||
|     "relations": "关系", | ||||
|     "notes": "笔记", | ||||
|     "other": "其它" | ||||
|   }, | ||||
| @@ -104,7 +104,8 @@ | ||||
|     "export_status": "导出状态", | ||||
|     "export_in_progress": "导出进行中:{{progressCount}}", | ||||
|     "export_finished_successfully": "导出成功完成。", | ||||
|     "format_pdf": "PDF - 用于打印或共享目的。" | ||||
|     "format_pdf": "PDF - 用于打印或共享目的。", | ||||
|     "share-format": "HTML 网页发布——采用与共享笔记相同的主题,但可发布为静态网站。" | ||||
|   }, | ||||
|   "help": { | ||||
|     "noteNavigation": "笔记导航", | ||||
| @@ -184,7 +185,8 @@ | ||||
|     }, | ||||
|     "import-status": "导入状态", | ||||
|     "in-progress": "导入进行中:{{progress}}", | ||||
|     "successful": "导入成功完成。" | ||||
|     "successful": "导入成功完成。", | ||||
|     "importZipRecommendation": "导入 ZIP 文件时,笔记层级将反映压缩文件内的子目录结构。" | ||||
|   }, | ||||
|   "include_note": { | ||||
|     "dialog_title": "包含笔记", | ||||
| @@ -1557,7 +1559,9 @@ | ||||
|     "window-on-top": "保持此窗口置顶" | ||||
|   }, | ||||
|   "note_detail": { | ||||
|     "could_not_find_typewidget": "找不到类型为 '{{type}}' 的 typeWidget" | ||||
|     "could_not_find_typewidget": "找不到类型为 '{{type}}' 的 typeWidget", | ||||
|     "printing": "正在打印…", | ||||
|     "printing_pdf": "正在导出为PDF…" | ||||
|   }, | ||||
|   "note_title": { | ||||
|     "placeholder": "请输入笔记标题..." | ||||
|   | ||||
| @@ -104,7 +104,8 @@ | ||||
|     "export_status": "Exportstatus", | ||||
|     "export_in_progress": "Export läuft: {{progressCount}}", | ||||
|     "export_finished_successfully": "Der Export wurde erfolgreich abgeschlossen.", | ||||
|     "format_pdf": "PDF - für Ausdrucke oder Teilen." | ||||
|     "format_pdf": "PDF - für Ausdrucke oder Teilen.", | ||||
|     "share-format": "HTML für die Web-Veröffentlichung – verwendet dasselbe Theme wie bei freigegebenen Notizen, kann jedoch als statische Website veröffentlicht werden." | ||||
|   }, | ||||
|   "help": { | ||||
|     "noteNavigation": "Notiz Navigation", | ||||
|   | ||||
| @@ -104,7 +104,8 @@ | ||||
|     "export_status": "Estado de exportación", | ||||
|     "export_in_progress": "Exportación en curso: {{progressCount}}", | ||||
|     "export_finished_successfully": "La exportación finalizó exitosamente.", | ||||
|     "format_pdf": "PDF - para propósitos de impresión o compartición." | ||||
|     "format_pdf": "PDF - para propósitos de impresión o compartición.", | ||||
|     "share-format": "HTML para publicación web: utiliza el mismo tema que se utiliza en las notas compartidas, pero se puede publicar como un sitio web estático." | ||||
|   }, | ||||
|   "help": { | ||||
|     "noteNavigation": "Navegación de notas", | ||||
| @@ -184,7 +185,8 @@ | ||||
|     }, | ||||
|     "import-status": "Estado de importación", | ||||
|     "in-progress": "Importación en progreso: {{progress}}", | ||||
|     "successful": "Importación finalizada exitosamente." | ||||
|     "successful": "Importación finalizada exitosamente.", | ||||
|     "importZipRecommendation": "Al importar un archivo ZIP, la jerarquía de notas reflejará la estructura de subdirectorios dentro del archivo comprimido." | ||||
|   }, | ||||
|   "include_note": { | ||||
|     "dialog_title": "Incluir nota", | ||||
| @@ -1714,7 +1716,9 @@ | ||||
|     "window-on-top": "Mantener esta ventana en la parte superior" | ||||
|   }, | ||||
|   "note_detail": { | ||||
|     "could_not_find_typewidget": "No se pudo encontrar typeWidget para el tipo '{{type}}'" | ||||
|     "could_not_find_typewidget": "No se pudo encontrar typeWidget para el tipo '{{type}}'", | ||||
|     "printing": "Impresión en curso...", | ||||
|     "printing_pdf": "Exportando a PDF en curso.." | ||||
|   }, | ||||
|   "note_title": { | ||||
|     "placeholder": "escriba el título de la nota aquí..." | ||||
|   | ||||
| @@ -254,7 +254,8 @@ | ||||
|     "export_status": "エクスポート状況", | ||||
|     "export_in_progress": "エクスポート処理中: {{progressCount}}", | ||||
|     "export_finished_successfully": "エクスポートが正常に完了しました。", | ||||
|     "format_pdf": "PDF - 印刷または共有目的に。" | ||||
|     "format_pdf": "PDF - 印刷または共有目的に。", | ||||
|     "share-format": "Web 公開用の HTML - 共有ノートで使用されるのと同じテーマを使用しますが、静的 Web サイトとして公開できます。" | ||||
|   }, | ||||
|   "help": { | ||||
|     "title": "チートシート", | ||||
|   | ||||
| @@ -104,7 +104,8 @@ | ||||
|     "export_in_progress": "正在匯出:{{progressCount}}", | ||||
|     "export_finished_successfully": "成功匯出。", | ||||
|     "format_html": "HTML - 推薦,因為它保留了所有格式", | ||||
|     "format_pdf": "PDF - 用於列印或與他人分享。" | ||||
|     "format_pdf": "PDF - 用於列印或與他人分享。", | ||||
|     "share-format": "HTML 網頁發佈——使用與共享筆記相同的佈景主題,但可發佈為靜態網站。" | ||||
|   }, | ||||
|   "help": { | ||||
|     "noteNavigation": "筆記導航", | ||||
|   | ||||
| @@ -74,7 +74,6 @@ export default defineConfig(() => ({ | ||||
|                 mobile: join(__dirname, "src", "mobile.ts"), | ||||
|                 login: join(__dirname, "src", "login.ts"), | ||||
|                 setup: join(__dirname, "src", "setup.ts"), | ||||
|                 share: join(__dirname, "src", "share.ts"), | ||||
|                 set_password: join(__dirname, "src", "set_password.ts"), | ||||
|                 runtime: join(__dirname, "src", "runtime.ts"), | ||||
|                 print: join(__dirname, "src", "print.tsx") | ||||
| @@ -84,7 +83,8 @@ export default defineConfig(() => ({ | ||||
|                 chunkFileNames: "src/[name].js", | ||||
|                 assetFileNames: "src/[name].[ext]", | ||||
|                 manualChunks: { | ||||
|                     "ckeditor5": [ "@triliumnext/ckeditor5" ] | ||||
|                     "ckeditor5": [ "@triliumnext/ckeditor5" ], | ||||
|                     "boxicons": [ "../../node_modules/boxicons/css/boxicons.min.css" ] | ||||
|                 }, | ||||
|             }, | ||||
|             onwarn(warning, rollupWarn) { | ||||
|   | ||||
							
								
								
									
										109
									
								
								apps/edit-docs/src/build-docs.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,109 @@ | ||||
| process.env.TRILIUM_INTEGRATION_TEST = "memory-no-store"; | ||||
| process.env.TRILIUM_RESOURCE_DIR = "../server/src"; | ||||
| process.env.NODE_ENV = "development"; | ||||
|  | ||||
| import cls from "@triliumnext/server/src/services/cls.js"; | ||||
| import { dirname, join, resolve } from "path"; | ||||
| import fs, { copyFile } from "fs/promises"; | ||||
| import fsExtra, { createWriteStream, type WriteStream } from "fs-extra"; | ||||
| import archiver from "archiver"; | ||||
|  | ||||
| const DOCS_ROOT = "../../../docs"; | ||||
| const OUTPUT_DIR = "../../site"; | ||||
|  | ||||
| async function main() { | ||||
|     const i18n = await import("@triliumnext/server/src/services/i18n.js"); | ||||
|     await i18n.initializeTranslations(); | ||||
|  | ||||
|     const sqlInit = (await import("../../server/src/services/sql_init.js")).default; | ||||
|     await sqlInit.createInitialDatabase(true); | ||||
|  | ||||
|     const note = await importData(join(__dirname, DOCS_ROOT, "User Guide")); | ||||
|  | ||||
|     // Export | ||||
|     const zipFilePath = "output.zip"; | ||||
|     try { | ||||
|         const { exportToZip } = (await import("@triliumnext/server/src/services/export/zip.js")).default; | ||||
|         const branch = note.getParentBranches()[0]; | ||||
|         const taskContext = new (await import("@triliumnext/server/src/services/task_context.js")).default( | ||||
|             "no-progress-reporting", | ||||
|             "export", | ||||
|             null | ||||
|         ); | ||||
|         const fileOutputStream = createWriteStream(zipFilePath); | ||||
|         await exportToZip(taskContext, branch, "share", fileOutputStream); | ||||
|         await waitForStreamToFinish(fileOutputStream); | ||||
|         await extractZip(zipFilePath, OUTPUT_DIR); | ||||
|     } finally { | ||||
|         if (await fsExtra.exists(zipFilePath)) { | ||||
|             await fsExtra.rm(zipFilePath); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     // Copy favicon. | ||||
|     await copyFile("../../apps/website/src/assets/favicon.ico", join(OUTPUT_DIR, "favicon.ico")); | ||||
|  | ||||
|     console.log("Documentation built successfully!"); | ||||
| } | ||||
|  | ||||
| export async function importData(path: string) { | ||||
|     const buffer = await createImportZip(path); | ||||
|     const importService = (await import("@triliumnext/server/src/services/import/zip.js")).default; | ||||
|     const TaskContext = (await import("@triliumnext/server/src/services/task_context.js")).default; | ||||
|     const context = new TaskContext("no-progress-reporting", "importNotes", null); | ||||
|     const becca = (await import("@triliumnext/server/src/becca/becca.js")).default; | ||||
|  | ||||
|     const rootNote = becca.getRoot(); | ||||
|     if (!rootNote) { | ||||
|         throw new Error("Missing root note for import."); | ||||
|     } | ||||
|     return await importService.importZip(context, buffer, rootNote, { | ||||
|         preserveIds: true | ||||
|     }); | ||||
| } | ||||
|  | ||||
| async function createImportZip(path: string) { | ||||
|     const inputFile = "input.zip"; | ||||
|     const archive = archiver("zip", { | ||||
|         zlib: { level: 0 } | ||||
|     }); | ||||
|  | ||||
|     console.log("Archive path is ", resolve(path)) | ||||
|     archive.directory(path, "/"); | ||||
|  | ||||
|     const outputStream = fsExtra.createWriteStream(inputFile); | ||||
|     archive.pipe(outputStream); | ||||
|     archive.finalize(); | ||||
|     await waitForStreamToFinish(outputStream); | ||||
|  | ||||
|     try { | ||||
|         return await fsExtra.readFile(inputFile); | ||||
|     } finally { | ||||
|         await fsExtra.rm(inputFile); | ||||
|     } | ||||
| } | ||||
|  | ||||
| function waitForStreamToFinish(stream: WriteStream) { | ||||
|     return new Promise<void>((res, rej) => { | ||||
|         stream.on("finish", () => res()); | ||||
|         stream.on("error", (err) => rej(err)); | ||||
|     }); | ||||
| } | ||||
|  | ||||
| export async function extractZip(zipFilePath: string, outputPath: string, ignoredFiles?: Set<string>) { | ||||
|     const { readZipFile, readContent } = (await import("@triliumnext/server/src/services/import/zip.js")); | ||||
|     await readZipFile(await fs.readFile(zipFilePath), async (zip, entry) => { | ||||
|         // We ignore directories since they can appear out of order anyway. | ||||
|         if (!entry.fileName.endsWith("/") && !ignoredFiles?.has(entry.fileName)) { | ||||
|             const destPath = join(outputPath, entry.fileName); | ||||
|             const fileContent = await readContent(zip, entry); | ||||
|  | ||||
|             await fsExtra.mkdirs(dirname(destPath)); | ||||
|             await fs.writeFile(destPath, fileContent); | ||||
|         } | ||||
|  | ||||
|         zip.readEntry(); | ||||
|     }); | ||||
| } | ||||
|  | ||||
| cls.init(main); | ||||
							
								
								
									
										28
									
								
								apps/server/Dockerfile.legacy
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,28 @@ | ||||
| FROM node:22.21.0-bullseye-slim AS builder | ||||
| RUN corepack enable | ||||
|  | ||||
| # Install native dependencies since we might be building cross-platform. | ||||
| WORKDIR /usr/src/app/build | ||||
| COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/ | ||||
| # We have to use --no-frozen-lockfile due to CKEditor patches | ||||
| RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild | ||||
|  | ||||
| FROM node:22.21.0-bullseye-slim | ||||
| # Install only runtime dependencies | ||||
| RUN apt-get update && \ | ||||
|     apt-get install -y --no-install-recommends \ | ||||
|     gosu && \ | ||||
|     rm -rf \ | ||||
|     /var/lib/apt/lists/* \ | ||||
|     /var/cache/apt/* | ||||
|  | ||||
| WORKDIR /usr/src/app | ||||
| COPY ./dist /usr/src/app | ||||
| RUN rm -rf /usr/src/app/node_modules/better-sqlite3 | ||||
| COPY --from=builder /usr/src/app/node_modules/better-sqlite3 /usr/src/app/node_modules/better-sqlite3 | ||||
| COPY ./start-docker.sh /usr/src/app | ||||
|  | ||||
| # Configure container | ||||
| EXPOSE 8080 | ||||
| CMD [ "sh", "./start-docker.sh" ] | ||||
| HEALTHCHECK --start-period=10s CMD exec gosu node node /usr/src/app/docker_healthcheck.cjs | ||||
| @@ -26,6 +26,7 @@ | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "better-sqlite3": "12.4.1", | ||||
|     "html-to-text": "9.0.5", | ||||
|     "node-html-parser": "7.0.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
| @@ -35,8 +36,8 @@ | ||||
|     "@preact/preset-vite": "2.10.2", | ||||
|     "@triliumnext/commons": "workspace:*", | ||||
|     "@triliumnext/express-partial-content": "workspace:*", | ||||
|     "@triliumnext/turndown-plugin-gfm": "workspace:*", | ||||
|     "@triliumnext/highlightjs": "workspace:*", | ||||
|     "@triliumnext/turndown-plugin-gfm": "workspace:*", | ||||
|     "@types/archiver": "7.0.0", | ||||
|     "@types/better-sqlite3": "7.6.13", | ||||
|     "@types/cls-hooked": "4.3.9", | ||||
|   | ||||
							
								
								
									
										2
									
								
								apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						| Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB | 
| Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB | 
| Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB | 
| Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB | 
| Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB | 
| Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB | 
| Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB | 
| Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB | 
| Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB | 
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image_resized" style="width:63.68%;"> | ||||
|   <img style="aspect-ratio:1363/1364;" src="Introduction_image.png" width="1363" | ||||
|   height="1364"> | ||||
|   <img style="aspect-ratio:1363/1364;" src="AI_image.png" | ||||
|   width="1363" height="1364"> | ||||
|   <figcaption>An example chat with an LLM</figcaption> | ||||
| </figure> | ||||
| <p>The AI / LLM features within Trilium Notes are designed to allow you to | ||||
| @@ -11,13 +11,13 @@ | ||||
| <p>The quickest way to get started is to navigate to the “AI/LLM” settings:</p> | ||||
| <figure | ||||
| class="image image_resized" style="width:74.04%;"> | ||||
|   <img style="aspect-ratio:1916/1906;" src="5_Introduction_image.png" width="1916" | ||||
|   height="1906"> | ||||
|   <img style="aspect-ratio:1916/1906;" src="5_AI_image.png" | ||||
|   width="1916" height="1906"> | ||||
|   </figure> | ||||
|   <p>Enable the feature:</p> | ||||
|   <figure class="image image_resized" style="width:82.82%;"> | ||||
|     <img style="aspect-ratio:1911/997;" src="1_Introduction_image.png" width="1911" | ||||
|     height="997"> | ||||
|     <img style="aspect-ratio:1911/997;" src="1_AI_image.png" | ||||
|     width="1911" height="997"> | ||||
|   </figure> | ||||
|    | ||||
| <h2>Embeddings</h2> | ||||
| @@ -43,30 +43,30 @@ class="image image_resized" style="width:74.04%;"> | ||||
|     We will then hit the “refresh” button to have it fetch our models:</p> | ||||
|   <figure | ||||
|   class="image image_resized" style="width:82.28%;"> | ||||
|     <img style="aspect-ratio:1912/1075;" src="4_Introduction_image.png" width="1912" | ||||
|     height="1075"> | ||||
|     <img style="aspect-ratio:1912/1075;" src="4_AI_image.png" | ||||
|     width="1912" height="1075"> | ||||
|     </figure> | ||||
|     <p>When selecting the dropdown for the “Embedding Model”, embedding models | ||||
|       should be at the top of the list, separated by regular chat models with | ||||
|       a horizontal line, as seen below:</p> | ||||
|     <figure class="image image_resized" | ||||
|     style="width:61.73%;"> | ||||
|       <img style="aspect-ratio:1232/959;" src="8_Introduction_image.png" width="1232" | ||||
|       height="959"> | ||||
|       <img style="aspect-ratio:1232/959;" src="8_AI_image.png" | ||||
|       width="1232" height="959"> | ||||
|     </figure> | ||||
|     <p>After selecting an embedding model, embeddings should automatically begin | ||||
|       to be generated by checking the embedding statistics at the top of the | ||||
|       “AI/LLM” settings panel:</p> | ||||
|     <figure class="image image_resized" style="width:67.06%;"> | ||||
|       <img style="aspect-ratio:1333/499;" src="7_Introduction_image.png" width="1333" | ||||
|       height="499"> | ||||
|       <img style="aspect-ratio:1333/499;" src="7_AI_image.png" | ||||
|       width="1333" height="499"> | ||||
|     </figure> | ||||
|     <p>If you don't see any embeddings being created, you will want to scroll | ||||
|       to the bottom of the settings, and hit “Recreate All Embeddings”:</p> | ||||
|     <figure | ||||
|     class="image image_resized" style="width:65.69%;"> | ||||
|       <img style="aspect-ratio:1337/1490;" src="3_Introduction_image.png" width="1337" | ||||
|       height="1490"> | ||||
|       <img style="aspect-ratio:1337/1490;" src="3_AI_image.png" | ||||
|       width="1337" height="1490"> | ||||
|       </figure> | ||||
|       <p>Creating the embeddings will take some time, and will be regenerated when | ||||
|         a Note is created, updated, or deleted (removed).</p> | ||||
| @@ -139,8 +139,8 @@ class="image image_resized" style="width:74.04%;"> | ||||
|       <p>When Tools are executed within your Chat, you'll see output like the following:</p> | ||||
|       <figure | ||||
|       class="image image_resized" style="width:66.88%;"> | ||||
|         <img style="aspect-ratio:1372/1591;" src="6_Introduction_image.png" width="1372" | ||||
|         height="1591"> | ||||
|         <img style="aspect-ratio:1372/1591;" src="6_AI_image.png" | ||||
|         width="1372" height="1591"> | ||||
|         </figure> | ||||
|         <p>You don't need to tell the LLM to execute a certain tool, it should “smartly” | ||||
|           call tools and automatically execute them as needed.</p> | ||||
| @@ -149,13 +149,13 @@ class="image image_resized" style="width:74.04%;"> | ||||
|           use the “Chat with Notes” button, where you can go ahead and start chatting!:</p> | ||||
|         <figure | ||||
|         class="image image_resized" style="width:60.77%;"> | ||||
|           <img style="aspect-ratio:1378/539;" src="2_Introduction_image.png" width="1378" | ||||
|           height="539"> | ||||
|           <img style="aspect-ratio:1378/539;" src="2_AI_image.png" | ||||
|           width="1378" height="539"> | ||||
|           </figure> | ||||
|           <p>If you don't see the “Chat with Notes” button on your side launchbar, | ||||
|             you might need to move it from the “Available Launchers” section to the | ||||
|             “Visible Launchers” section:</p> | ||||
|           <figure class="image image_resized" style="width:69.81%;"> | ||||
|             <img style="aspect-ratio:1765/1287;" src="9_Introduction_image.png" width="1765" | ||||
|             height="1287"> | ||||
|             <img style="aspect-ratio:1765/1287;" src="9_AI_image.png" | ||||
|             width="1765" height="1287"> | ||||
|           </figure> | ||||
| Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB | 
| @@ -11,12 +11,12 @@ | ||||
| <p>To set your preferred chat model, you'll want to enter the provider's | ||||
|   name here:</p> | ||||
| <figure class="image image_resized" style="width:88.38%;"> | ||||
|   <img style="aspect-ratio:1884/1267;" src="AI Provider Information_im.png" | ||||
|   <img style="aspect-ratio:1884/1267;" src="Providers_image.png" | ||||
|   width="1884" height="1267"> | ||||
| </figure> | ||||
| <p>And to set your preferred embedding provider:</p> | ||||
| <figure class="image image_resized" | ||||
| style="width:93.47%;"> | ||||
|   <img style="aspect-ratio:1907/1002;" src="1_AI Provider Information_im.png" | ||||
|   <img style="aspect-ratio:1907/1002;" src="1_Providers_image.png" | ||||
|   width="1907" height="1002"> | ||||
| </figure> | ||||
| Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB | 
| Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB | 
| Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB | 
| Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB | 
| Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB | 
| @@ -9,8 +9,8 @@ class="image image_resized" style="width:50.49%;"> | ||||
|   width="785" height="498"> | ||||
|   </figure> | ||||
|   <figure class="image image_resized" style="width:40.54%;"> | ||||
|     <img style="aspect-ratio:467/100;" src="Installing Ollama_image.png" width="467" | ||||
|     height="100"> | ||||
|     <img style="aspect-ratio:467/100;" src="Installing Ollama_image.png" | ||||
|     width="467" height="100"> | ||||
|   </figure> | ||||
|   <figure class="image image_resized" style="width:55.73%;"> | ||||
|     <img style="aspect-ratio:1296/1011;" src="1_Installing Ollama_image.png" | ||||
| Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB | 
| Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 198 KiB | 
| Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB | 
| @@ -10,9 +10,9 @@ | ||||
|   and arbitrary tags - whenever you change tag attribute in the task note, | ||||
|   this task is then automatically moved to appropriate location.</p> | ||||
| <p>Task Manager also integrates with <a href="#root/_help_l0tKav7yLHGF">day notes</a> - | ||||
|   notes are <a href="#root/_help_IakOLONlIfGI">cloned</a> into day note to | ||||
|   both todoDate note and doneDate note (with <a href="#root/_help_kBrnXNG3Hplm">prefix</a> of | ||||
|   either "TODO" or "DONE").</p> | ||||
|   notes are <a href="#root/_help_IakOLONlIfGI">cloned</a> into day note to both todoDate | ||||
|   note and doneDate note (with <a href="#root/_help_kBrnXNG3Hplm">prefix</a> of either | ||||
|   "TODO" or "DONE").</p> | ||||
| <h2>Implementation</h2> | ||||
| <p>New tasks are created in the TODO note which has <code>~child:template</code>  | ||||
|   <a | ||||
| @@ -22,9 +22,9 @@ | ||||
| <p>Task template defines several <a href="#root/_help_OFXdgB2nNk1F">promoted attributes</a> - | ||||
|   todoDate, doneDate, tags, location. Importantly it also defines <code>~runOnAttributeChange</code> relation | ||||
|   - <a href="#root/_help_GPERMystNGTB">event</a> handler which is run on attribute | ||||
|   change. This <a href="#root/_help_CdNpE2pqjmI6">script</a> handles when e.g. | ||||
|   we fill out the doneDate attribute - meaning the task is done and should | ||||
|   be moved to "Done" note and removed from TODO, locations and tags.</p> | ||||
|   change. This <a href="#root/_help_CdNpE2pqjmI6">script</a> handles when e.g. we | ||||
|   fill out the doneDate attribute - meaning the task is done and should be | ||||
|   moved to "Done" note and removed from TODO, locations and tags.</p> | ||||
| <h3>New task button</h3> | ||||
| <p>There's also "button" note which contains simple script which adds a button | ||||
|   to create new note (task) in the TODO note.</p><pre><code class="language-text-x-trilium-auto">api.addButtonToToolbar({ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:1071/146;" src="Attributes_image.png" width="1071" | ||||
|   height="146"> | ||||
|   <img style="aspect-ratio:1071/146;" src="Attributes_image.png" | ||||
|   width="1071" height="146"> | ||||
| </figure> | ||||
| <p>In Trilium, attributes are key-value pairs assigned to notes, providing | ||||
|   additional metadata or functionality. There are two primary types of attributes:</p> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <p>Inheritance refers to the process of having a <a href="#root/_help_HI6GBBIduIgv">label</a> or | ||||
|   a <a href="#root/_help_Cq5X6iKQop6R">relation</a> shared across multiple | ||||
|   notes, generally in parent-child relations (or anywhere if using templates).</p> | ||||
|   a <a href="#root/_help_Cq5X6iKQop6R">relation</a> shared across multiple notes, | ||||
|   generally in parent-child relations (or anywhere if using templates).</p> | ||||
| <h2>Standard Inheritance</h2> | ||||
| <p>In Trilium, attributes can be automatically inherited by child notes if | ||||
|   they have the <code>isInheritable</code> flag set to <code>true</code>. This | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <p>A label is an <a href="#root/_help_zEY4DaJG4YT5">attribute</a> of a note | ||||
|   which has a name and optionally a value.</p> | ||||
| <p>A label is an <a href="#root/_help_zEY4DaJG4YT5">attribute</a> of a note which | ||||
|   has a name and optionally a value.</p> | ||||
| <h2>Common use cases</h2> | ||||
| <ul> | ||||
|   <li><strong>Metadata for personal use</strong>: Assign labels with optional | ||||
| @@ -81,8 +81,7 @@ | ||||
|       <td><code>calendarRoot</code> | ||||
|       </td> | ||||
|       <td>Marks the note which should be used as root for <a class="reference-link" | ||||
|         href="#root/_help_l0tKav7yLHGF">Day Notes</a>. Only one should be marked | ||||
|         as such.</td> | ||||
|         href="#root/_help_l0tKav7yLHGF">Day Notes</a>. Only one should be marked as such.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td><code>archived</code> | ||||
| @@ -154,8 +153,8 @@ | ||||
|     <tr> | ||||
|       <td><code>autoReadOnlyDisabled</code> | ||||
|       </td> | ||||
|       <td>Disables automatic <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> for | ||||
|         the given note.</td> | ||||
|       <td>Disables automatic <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> for the | ||||
|         given note.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td><code>appCss</code> | ||||
| @@ -177,8 +176,7 @@ | ||||
|       <td>Set to <code>next</code>, <code>next-light</code>, or <code>next-dark</code> to | ||||
|         use the corresponding TriliumNext theme (auto, light or dark) as the base | ||||
|         for a custom theme, instead of the legacy one. See <a class="reference-link" | ||||
|         href="#root/_help_WFGzWeUK6arS">Customize the Next theme</a> for more | ||||
|         information.</td> | ||||
|         href="#root/_help_WFGzWeUK6arS">Customize the Next theme</a> for more information.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td><code>cssClass</code> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <p>A relation is similar to a <a href="#root/_help_HI6GBBIduIgv">label</a>, | ||||
|   but instead of having a text value it refers to another note.</p> | ||||
| <p>A relation is similar to a <a href="#root/_help_HI6GBBIduIgv">label</a>, but | ||||
|   instead of having a text value it refers to another note.</p> | ||||
| <h2>Common use cases</h2> | ||||
| <ul> | ||||
|   <li><strong>Metadata Relationships for personal use</strong>: For example, | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:1425/654;" src="Bulk Actions_image.png" width="1425" | ||||
|   height="654"> | ||||
|   <img style="aspect-ratio:1425/654;" src="Bulk Actions_image.png" | ||||
|   width="1425" height="654"> | ||||
| </figure> | ||||
| <p>The <em>Bulk Actions</em> dialog makes it easy to apply changes to multiple | ||||
|   notes at once, ranging from simple actions such as adding or removing a | ||||
| @@ -8,8 +8,8 @@ | ||||
| <h2>Interaction</h2> | ||||
| <ul> | ||||
|   <li>The first step is to select the notes in the <a class="reference-link" | ||||
|     href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. It's possible to apply bulk | ||||
|     actions to: | ||||
|     href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>. It's possible to apply bulk actions | ||||
|     to: | ||||
|     <ul> | ||||
|       <li>A single note (and potentially its child notes) simply by clicking on | ||||
|         it (with a left click or a right click).</li> | ||||
| @@ -53,17 +53,17 @@ | ||||
|   </li> | ||||
|   <li><strong>Update label value</strong> | ||||
|     <ul> | ||||
|       <li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> of | ||||
|         the given name, it will change its value to the specified one. Leave <em>New value</em> field | ||||
|       <li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> of the | ||||
|         given name, it will change its value to the specified one. Leave <em>New value</em> field | ||||
|         empty to create a label without a value.</li> | ||||
|       <li>Notes without the label will not be affected.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li><em><strong>Rename label</strong></em> | ||||
|     <ul> | ||||
|       <li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> of | ||||
|         the given name, it will be renamed/replaced with a label of the new name. | ||||
|         The value of the label (if present) will be kept intact.</li> | ||||
|       <li>For each note, if it has a <a href="#root/_help_HI6GBBIduIgv">label</a> of the | ||||
|         given name, it will be renamed/replaced with a label of the new name. The | ||||
|         value of the label (if present) will be kept intact.</li> | ||||
|       <li>Notes without the label will not be affected.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| <p>A Trilium instance represents a server. If <a class="reference-link" | ||||
|   href="#root/_help_cbkrhQjrkKrh">Synchronization</a> is set up, since | ||||
|   multiple servers are involved (the one from the desktop client and the | ||||
|   one the synchronisation is set up with), sometimes it can be useful to | ||||
|   distinguish the instance you are running on.</p> | ||||
|   href="#root/_help_cbkrhQjrkKrh">Synchronization</a> is set up, since multiple | ||||
|   servers are involved (the one from the desktop client and the one the synchronisation | ||||
|   is set up with), sometimes it can be useful to distinguish the instance | ||||
|   you are running on.</p> | ||||
| <h2>Setting the instance name</h2> | ||||
| <p>To set up a name for the instance, modify the <code>config.ini</code>:</p><pre><code class="language-text-x-trilium-auto">[General] | ||||
| instanceName=Hello</code></pre> | ||||
|   | ||||
| @@ -23,5 +23,5 @@ | ||||
| <p>If you do not need to preserve any configurations that might be stored | ||||
|   in the <code>config.ini</code> file, you can just delete all of the <a href="#root/_help_tAassRL4RSQL">data directory's</a> contents | ||||
|   to fully restore the application to its original state. You can also review | ||||
|   the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file to provide | ||||
|   all <code>config.ini</code> values as environment variables instead.</p> | ||||
|   the <a href="#root/_help_Gzjqa934BdH4">configuration</a> file to provide all <code>config.ini</code> values | ||||
|   as environment variables instead.</p> | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image-style-align-right"> | ||||
|   <img style="aspect-ratio:263/445;" src="Hidden Notes_image.png" width="263" | ||||
|   height="445"> | ||||
|   <img style="aspect-ratio:263/445;" src="Hidden Notes_image.png" | ||||
|   width="263" height="445"> | ||||
| </figure> | ||||
| <p>For easy extensibility, a lot of features in Trilium make use of actual | ||||
|   notes to store information as opposed to having them stored in a separate | ||||
| @@ -8,14 +8,13 @@ | ||||
|   href="#root/_help_zEY4DaJG4YT5">Attributes</a>, <a class="reference-link" | ||||
|   href="#root/_help_Cq5X6iKQop6R">Relations</a> or even <a class="reference-link" | ||||
|   href="#root/_help_eIg8jdvaoNNd">Search</a> and <a class="reference-link" | ||||
|   href="#root/_help_QEAPj01N5f7w">Links</a> to be able to operate on | ||||
|   them.</p> | ||||
|   href="#root/_help_QEAPj01N5f7w">Links</a> to be able to operate on them.</p> | ||||
| <p>As the name suggests, these notes are hidden to the user by default to | ||||
|   prevent cluttering the note tree and to prevent them from being accidentally | ||||
|   deleted.</p> | ||||
| <p>The hidden notes are stored in the user's <a class="reference-link" | ||||
|   href="#root/_help_wX4HbRucYSDD">Database</a> just like normal notes, | ||||
|   but they have a unique <a class="reference-link" href="#root/_help_m1lbrzyKDaRB">Note ID</a> which | ||||
|   href="#root/_help_wX4HbRucYSDD">Database</a> just like normal notes, but | ||||
|   they have a unique <a class="reference-link" href="#root/_help_m1lbrzyKDaRB">Note ID</a> which | ||||
|   allows them to be distinguished from the normal ones.</p> | ||||
| <h2>Accessing the hidden note tree</h2> | ||||
| <p>From the <a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a>, | ||||
| @@ -51,8 +50,8 @@ class="ck-table-resized"> | ||||
|       </td> | ||||
|       <td> | ||||
|         <p>When SQL queries or commands are executed in the <a class="reference-link" | ||||
|           href="#root/_help_YKWqdJhzi2VY">SQL Console</a>, they are stored here, | ||||
|           grouped by month. Only the query is stored and not the results.</p> | ||||
|           href="#root/_help_YKWqdJhzi2VY">SQL Console</a>, they are stored here, grouped | ||||
|           by month. Only the query is stored and not the results.</p> | ||||
|         <p>This section can be accessed without going to the hidden tree by simply | ||||
|           going to the <a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a> and | ||||
|           selecting Advanced → Open SQL Console History.</p> | ||||
| @@ -65,9 +64,8 @@ class="ck-table-resized"> | ||||
|       </td> | ||||
|       <td> | ||||
|         <p>Whenever a search is executed from the full <a class="reference-link" | ||||
|           href="#root/_help_eIg8jdvaoNNd">Search</a>, the query will be stored here, | ||||
|           grouped by month. Only the search parameters are stored and not the results | ||||
|           themselves.</p> | ||||
|           href="#root/_help_eIg8jdvaoNNd">Search</a>, the query will be stored here, grouped | ||||
|           by month. Only the search parameters are stored and not the results themselves.</p> | ||||
|         <p>This section can be accessed without going to the hidden tree by simply | ||||
|           going to the <a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a> and | ||||
|           selecting Advanced → Open Search History.</p> | ||||
|   | ||||
							
								
								
									
										12
									
								
								apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics.html
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						| @@ -82,18 +82,18 @@ trilium_notes_total 1234 1701432000 | ||||
| </ul> | ||||
| <h2><strong>Grafana Dashboard</strong></h2> | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:2594/1568;" src="1_Metrics_image.png" width="2594" | ||||
|   height="1568"> | ||||
|   <img style="aspect-ratio:2594/1568;" src="1_Metrics_image.png" | ||||
|   width="2594" height="1568"> | ||||
| </figure> | ||||
| <p>You can also use the Grafana Dashboard that has been created for TriliumNext | ||||
|   - just take the JSON from <a class="reference-link" href="#root/_help_bOP3TB56fL1V">grafana-dashboard.json</a> and | ||||
|   then import the dashboard, following these screenshots:</p> | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:1881/282;" src="2_Metrics_image.png" width="1881" | ||||
|   height="282"> | ||||
|   <img style="aspect-ratio:1881/282;" src="2_Metrics_image.png" | ||||
|   width="1881" height="282"> | ||||
| </figure> | ||||
| <p>Then paste the JSON, and hit load:</p> | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:1055/830;" src="Metrics_image.png" width="1055" | ||||
|   height="830"> | ||||
|   <img style="aspect-ratio:1055/830;" src="Metrics_image.png" | ||||
|   width="1055" height="830"> | ||||
| </figure> | ||||
| @@ -6,7 +6,16 @@ | ||||
|   <li>Note Map, which shows the hierarchical tree structure.</li> | ||||
| </ul> | ||||
| <h2>Link Map</h2> | ||||
| <p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p> | ||||
| <p>The Link map is a visualization of links and <a class="reference-link" | ||||
|   href="#root/_help_Cq5X6iKQop6R">Relations</a> incoming to and outgoing from | ||||
|   a particular note.</p> | ||||
| <p>The map indicates the following types of relations:</p> | ||||
| <ul> | ||||
|   <li><a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a> between | ||||
|     notes.</li> | ||||
|   <li><a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a> | ||||
|   </li> | ||||
| </ul> | ||||
| <p> | ||||
|   <img src="1_Note Map (Link map, Tree m.png"> | ||||
| </p> | ||||
| @@ -21,8 +30,8 @@ | ||||
|   in full screen. See <a href="#root/_help_bdUJEHsAPYQR">Note Map</a> for | ||||
|   more information.</p> | ||||
| <h2>See also</h2> | ||||
| <p><a href="#root/_help_iRwzGnHPzonm">Relation map</a> is a similar concept, | ||||
|   with some differences:</p> | ||||
| <p><a href="#root/_help_iRwzGnHPzonm">Relation map</a> is a similar concept, with | ||||
|   some differences:</p> | ||||
| <ul> | ||||
|   <li>note map is automatically generated while relation map must be created | ||||
|     manually</li> | ||||
|   | ||||
| @@ -5,9 +5,9 @@ | ||||
| <ul> | ||||
|   <li><a class="reference-link" href="#root/_help_iPIMuisry3hd">Text</a> notes are | ||||
|     represented internally as HTML, using the <a class="reference-link" | ||||
|     href="#root/_help_MI26XDLSAlCD">CKEditor</a> representation. Note | ||||
|     that due to the custom plugins, some HTML elements are specific to Trilium | ||||
|     only, for example the admonitions.</li> | ||||
|     href="#root/_help_MI26XDLSAlCD">CKEditor</a> representation. Note that due | ||||
|     to the custom plugins, some HTML elements are specific to Trilium only, | ||||
|     for example the admonitions.</li> | ||||
|   <li><a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a> notes are | ||||
|     plain text and are represented internally as-is.</li> | ||||
|   <li><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a> notes | ||||
| @@ -22,10 +22,10 @@ | ||||
| </ul> | ||||
| <p>Note that some information is also stored as <a class="reference-link" | ||||
|   href="#root/_help_0vhv7lsOLy82">Attachments</a>. For example <a class="reference-link" | ||||
|   href="#root/_help_grjYqerjn243">Canvas</a> notes use the attachments | ||||
|   feature to store the custom libraries, and alongside with <a class="reference-link" | ||||
|   href="#root/_help_gBbsAeiuUxI5">Mind Map</a> and other similar note | ||||
|   types it stores an SVG representation of the content for use in other features | ||||
|   href="#root/_help_grjYqerjn243">Canvas</a> notes use the attachments feature | ||||
|   to store the custom libraries, and alongside with <a class="reference-link" | ||||
|   href="#root/_help_gBbsAeiuUxI5">Mind Map</a> and other similar note types | ||||
|   it stores an SVG representation of the content for use in other features | ||||
|   such as including in other notes, shared notes, etc.</p> | ||||
| <p>Here's part of the HTML representation of this note, as it's stored in | ||||
|   the database (but prettified).</p><pre><code class="language-text-x-trilium-auto"><h2> | ||||
|   | ||||
							
								
								
									
										219
									
								
								apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						| @@ -3,22 +3,25 @@ | ||||
|   from your Trilium notes, making it accessible to others online.</p> | ||||
| <figure | ||||
| class="image"> | ||||
|   <img style="aspect-ratio:1144/660;" src="Sharing_image.png" width="1144" | ||||
|   height="660"> | ||||
|   <img style="aspect-ratio:1144/660;" src="Sharing_image.png" | ||||
|   width="1144" height="660"> | ||||
|   </figure> | ||||
|    | ||||
|   <h2>Features, interaction and limitations</h2> | ||||
|   <ul> | ||||
|     <li>Searching by note title.</li> | ||||
|     <li>Automatic dark/light mode based on the user's browser settings.</li> | ||||
|     <li>Mobile-friendly layout, with sidebar.</li> | ||||
|     <li>Collapsible tree with the same note icons as the application.</li> | ||||
|     <li>Customizable logo.</li> | ||||
|     <li>Toggle button for dark/light mode, which also stores the user preferences.</li> | ||||
|     <li>Quick navigation buttons (previous and next note).</li> | ||||
|     <li>Displaying the date of the last update of the note.</li> | ||||
|     <li data-list-item-id="ef22b391cbc76ef956be01dd41a6b60bf">Searching by note title.</li> | ||||
|     <li data-list-item-id="eeab18d3a35263669809a1b89d7b060b9">Automatic dark/light mode based on the user's browser settings.</li> | ||||
|     <li | ||||
|     data-list-item-id="e9a0db9cceacd026e71ad8bda9948542e">Mobile-friendly layout, with sidebar.</li> | ||||
|       <li data-list-item-id="eb9da2104d017644f71fcee18eb17d34b">Collapsible tree with the same note icons as the application.</li> | ||||
|       <li | ||||
|       data-list-item-id="ea2be5ec72816441e702ff6dba92ed30d">Customizable logo.</li> | ||||
|         <li data-list-item-id="e26648726ce48aa84a8c71cf0fe3e4ee2">Toggle button for dark/light mode, which also stores the user preferences.</li> | ||||
|         <li | ||||
|         data-list-item-id="ef143555e0d67d1d389f6bbc226ebdc55">Quick navigation buttons (previous and next note).</li> | ||||
|           <li data-list-item-id="e32f67105cfb655c235d2454d9ec4874f">Displaying the date of the last update of the note.</li> | ||||
|   </ul> | ||||
|   <h3>By note type</h3> | ||||
|   <figure class="table"> | ||||
|     <table class="ck-table-resized"> | ||||
|       <colgroup> | ||||
|         <col style="width:19.92%;"> | ||||
| @@ -149,7 +152,7 @@ class="image"> | ||||
|           </td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <th><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map View</a> | ||||
|           <th><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a> | ||||
|           </th> | ||||
|           <td>Not supported.</td> | ||||
|           <td> </td> | ||||
| @@ -166,34 +169,35 @@ class="image"> | ||||
|         </tr> | ||||
|       </tbody> | ||||
|     </table> | ||||
|   </figure> | ||||
|   <p>While the sharing feature is powerful, it has some limitations:</p> | ||||
|   <ul> | ||||
|     <li><strong>Code Notes</strong>: No syntax highlighting.</li> | ||||
|     <li><strong>Static Note Tree</strong> | ||||
|     <li data-list-item-id="e35e0cab1eec05f391623e8279959070c"><strong>Code Notes</strong>: No syntax highlighting.</li> | ||||
|     <li class="ck-list-marker-bold" | ||||
|     data-list-item-id="e36b70bd10c3666c0def874b4ec52db31"><strong>Static Note Tree</strong> | ||||
|     </li> | ||||
|     <li><strong>Protected Notes</strong>: Cannot be shared.</li> | ||||
|     <li><strong>Include Notes</strong>: Not supported.</li> | ||||
|     <li data-list-item-id="ef8144aff172d450cf7b4edbf1a430ab9"><strong>Protected Notes</strong>: Cannot be shared.</li> | ||||
|     <li data-list-item-id="ec3761c9dce911b115b840a32eebd18b8"><strong>Include Notes</strong>: Not supported.</li> | ||||
|   </ul> | ||||
|   <p>Some of these limitations may be addressed in future updates.</p> | ||||
|   <h2>Prerequisites</h2> | ||||
|   <p>To use the sharing feature, you must have a <a class="reference-link" | ||||
|     href="#root/_help_WOcw2SLH6tbX">Server Installation</a> of Trilium. | ||||
|     This is necessary because the notes will be hosted from the server.</p> | ||||
|     href="#root/_help_WOcw2SLH6tbX">Server Installation</a> of Trilium. This | ||||
|     is necessary because the notes will be hosted from the server.</p> | ||||
|   <h2>Sharing a note</h2> | ||||
|   <ol> | ||||
|     <li> | ||||
|     <li data-list-item-id="e503f8ad52fe9033ef59212b7b692d69f"> | ||||
|       <p><strong>Enable Sharing</strong>: To share a note, toggle the <code>Shared</code> switch | ||||
|         within the note's interface. Once sharing is enabled, an URL will appear, | ||||
|         which you can click to access the shared note.</p> | ||||
|       <p> | ||||
|         <img src="Sharing_share-single-note.png" alt="Share Note"> | ||||
|         <img src="Sharing_share-single-note.png" | ||||
|         alt="Share Note"> | ||||
|       </p> | ||||
|     </li> | ||||
|     <li> | ||||
|       <p><strong>Access the Shared Note</strong>: The link provided will open the | ||||
|     <li data-list-item-id="e9c5083764d919503412f4f7f1cb0e0e0"><strong>Access the Shared Note</strong>: The link provided will open the | ||||
|       note in your browser. If your server is not configured with a public IP, | ||||
|         the URL will refer to <code>localhost (127.0.0.1)</code>.</p> | ||||
|     </li> | ||||
|       the URL will refer to <code>localhost (127.0.0.1)</code>.</li> | ||||
|   </ol> | ||||
|   <h2>Sharing a note subtree</h2> | ||||
|   <p>When you share a note, you actually share the entire subtree of notes | ||||
| @@ -207,9 +211,19 @@ class="image"> | ||||
|     This allows you to manage and navigate through all the notes you have made | ||||
|     public.</p> | ||||
|   <h2>Security considerations</h2> | ||||
|   <p>Shared notes are published on the open internet and can be accessed by | ||||
|     anyone with the URL. The URL's randomness does not provide security, so | ||||
|     it is crucial not to share sensitive information through this feature.</p> | ||||
|   <ul> | ||||
|     <li data-list-item-id="ea35f4596f6a8c69a83416766b567c3cd">Shared notes are published on the open internet and can be accessed by | ||||
|       anyone with the URL unless the notes are password-protected.</li> | ||||
|     <li data-list-item-id="e34e983d07439b781597d1abaf8b6e297">The URL's randomness does not provide security, so it is crucial not to | ||||
|       share sensitive information through this feature.</li> | ||||
|     <li data-list-item-id="e94fbe4fb4b9f7806074aba4fe7601cb7">Trilium takes precautions to protect your publicly shared instance from | ||||
|       leaking information for non-shared notes, including opening a separate | ||||
|       read-only connection to the <a class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>. | ||||
|       Depending on your threat model, it might make more sense to use  | ||||
|       <a | ||||
|       class="reference-link" href="#root/_help_ycBFjKrrwE9p">Exporting HTML for web publishing</a> and use battle-tested web servers | ||||
|         such as Nginx or Apache to serve static content.</li> | ||||
|   </ul> | ||||
|   <h3>Password protection</h3> | ||||
|   <p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute. | ||||
|     Add this label to the note with the format <code>#shareCredentials="username:password"</code>. | ||||
| @@ -219,12 +233,13 @@ class="image"> | ||||
|   <p>The default design should be a good starting point, but you can customize | ||||
|     it using your own CSS:</p> | ||||
|   <ul> | ||||
|     <li><strong>Custom CSS</strong>: Link a CSS <a class="reference-link" | ||||
|       href="#root/_help_6f9hih2hXXZk">Code</a> note to the shared page by | ||||
|       adding a <code>~shareCss</code> relation to the note. If you want this style | ||||
|       to apply to the entire subtree, make the label inheritable. You can hide | ||||
|       the CSS code note from the tree navigation by adding the <code>#shareHiddenFromTree</code> label.</li> | ||||
|     <li><strong>Omitting Default CSS</strong>: For extensive styling changes, | ||||
|     <li data-list-item-id="e3fdd3f9d73ed0655a94330d0a75790e4"><strong>Custom CSS</strong>: Link a CSS <a class="reference-link" | ||||
|       href="#root/_help_6f9hih2hXXZk">Code</a> note to the shared page by adding | ||||
|       a <code>~shareCss</code> relation to the note. If you want this style to | ||||
|       apply to the entire subtree, make the label inheritable. You can hide the | ||||
|       CSS code note from the tree navigation by adding the <code>#shareHiddenFromTree</code> label.</li> | ||||
|     <li | ||||
|     data-list-item-id="ee0bb81c27f4cd176412d38258d32da39"><strong>Omitting Default CSS</strong>: For extensive styling changes, | ||||
|       use the <code>#shareOmitDefaultCss</code> label to avoid conflicts with Trilium's | ||||
|       <a | ||||
|       href="#root/_help_Wy267RK4M69c">default stylesheet</a>.</li> | ||||
| @@ -242,22 +257,22 @@ class="image"> | ||||
|     itself.</p> | ||||
|   <p>The <code>#shareHtmlLocation</code> label accepts values in the format <code>location:position</code>:</p> | ||||
|   <ul> | ||||
|     <li><strong>Locations</strong>: <code>head</code>, <code>body</code>, <code>content</code> | ||||
|     <li data-list-item-id="ead2588d20ac1fb23e7cb2a6d33d02bcb"><strong>Locations</strong>: <code>head</code>, <code>body</code>, <code>content</code> | ||||
|     </li> | ||||
|     <li><strong>Positions</strong>: <code>start</code>, <code>end</code> | ||||
|     <li data-list-item-id="e368323f330b229cb3428266304ebc2b4"><strong>Positions</strong>: <code>start</code>, <code>end</code> | ||||
|     </li> | ||||
|   </ul> | ||||
|   <p>For example:</p> | ||||
|   <ul> | ||||
|     <li><code>#shareHtmlLocation=head:start</code> - Injects HTML at the beginning | ||||
|     <li data-list-item-id="e2f0cbb70e71902ec26d64b4c10f1b3cf"><code>#shareHtmlLocation=head:start</code> - Injects HTML at the beginning | ||||
|       of the <code><head></code> section</li> | ||||
|     <li><code>#shareHtmlLocation=head:end</code> - Injects HTML at the end of the <code><head></code> section | ||||
|     <li data-list-item-id="e2ac6f7ec36059fc5ea2148bee57d9329"><code>#shareHtmlLocation=head:end</code> - Injects HTML at the end of the <code><head></code> section | ||||
|       (default)</li> | ||||
|     <li><code>#shareHtmlLocation=body:start</code> - Injects HTML at the beginning | ||||
|     <li data-list-item-id="e9fea05a82b09b66521807ae4b08bfd53"><code>#shareHtmlLocation=body:start</code> - Injects HTML at the beginning | ||||
|       of the <code><body></code> section</li> | ||||
|     <li><code>#shareHtmlLocation=content:start</code> - Injects HTML at the beginning | ||||
|     <li data-list-item-id="ed33846c38d6e8a631111fc858ecf4963"><code>#shareHtmlLocation=content:start</code> - Injects HTML at the beginning | ||||
|       of the content area</li> | ||||
|     <li><code>#shareHtmlLocation=content:end</code> - Injects HTML at the end of | ||||
|     <li data-list-item-id="e89347723de7736060ce226d93530a162"><code>#shareHtmlLocation=content:end</code> - Injects HTML at the end of | ||||
|       the content area</li> | ||||
|   </ul> | ||||
|   <p>If no location is specified, the HTML will be injected at <code>content:end</code> by | ||||
| @@ -275,10 +290,19 @@ for (const attr of parentNote.attributes) { | ||||
|     This will change the URL to <code>http://domain.tld/share/highlighting</code>.</p> | ||||
|   <p><strong>Important</strong>:</p> | ||||
|   <ol> | ||||
|     <li>Ensure that aliases are unique.</li> | ||||
|     <li>Using slashes (<code>/</code>) within aliases to create subpaths is not | ||||
|     <li data-list-item-id="edff04cba1df31a2aae23fd2f6a5ee847">Ensure that aliases are unique.</li> | ||||
|     <li data-list-item-id="eea48bfb287b0559450050141243032a9">Using slashes (<code>/</code>) within aliases to create subpaths is not | ||||
|       supported.</li> | ||||
|   </ol> | ||||
|   <aside class="admonition tip"> | ||||
|     <ul> | ||||
|       <li data-list-item-id="e0fcb644d56cb60448a87ddb7831e6043">To easily identify pages that don't have a share alias, run a  | ||||
|         <a | ||||
|         class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a> with <code>#!shareAlias</code>.</li> | ||||
|       <li data-list-item-id="e888d6e9d905db9a030755430007e522b">To be able to enter the share alias faster, consider using <a class="reference-link" | ||||
|         href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> (for example <code>#label:shareAlias(inheritable)="promoted,alias=Slug,single,text"</code>).</li> | ||||
|     </ul> | ||||
|   </aside> | ||||
|   <h3>Setting a custom favicon</h3> | ||||
|   <p>To customize the favicon for your shared pages, create a relation <code>~shareFavicon</code> pointing | ||||
|     to a file note containing the favicon (e.g., in <code>.ico</code> format).</p> | ||||
| @@ -299,7 +323,12 @@ for (const attr of parentNote.attributes) { | ||||
|     When viewed, the list of shared roots will be displayed at the bottom of | ||||
|     the note.</p> | ||||
|   <h2>Attribute reference</h2> | ||||
|   <table> | ||||
|   <figure class="table" style="width:100%;"> | ||||
|     <table class="ck-table-resized"> | ||||
|       <colgroup> | ||||
|         <col style="width:18.38%;"> | ||||
|           <col style="width:81.62%;"> | ||||
|       </colgroup> | ||||
|       <thead> | ||||
|         <tr> | ||||
|           <th>Attribute</th> | ||||
| @@ -308,40 +337,40 @@ for (const attr of parentNote.attributes) { | ||||
|       </thead> | ||||
|       <tbody> | ||||
|         <tr> | ||||
|         <td><code>shareHiddenFromTree</code> | ||||
|           <td><code>#shareHiddenFromTree</code> | ||||
|           </td> | ||||
|           <td>this note is hidden from left navigation tree, but still accessible with | ||||
|             its URL</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareExternalLink</code> | ||||
|           <td><code>#shareExternalLink</code> | ||||
|           </td> | ||||
|           <td>note will act as a link to an external website in the share tree</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareAlias</code> | ||||
|           <td><code>#shareAlias</code> | ||||
|           </td> | ||||
|           <td>define an alias using which the note will be available under <code>https://your_trilium_host/share/[your_alias]</code> | ||||
|           </td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareOmitDefaultCss</code> | ||||
|           <td><code>#shareOmitDefaultCss</code> | ||||
|           </td> | ||||
|           <td>default share page CSS will be omitted. Use when you make extensive styling | ||||
|             changes.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareRoot</code> | ||||
|           <td><code>#shareRoot</code> | ||||
|           </td> | ||||
|           <td>marks note which is served on /share root.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareDescription</code> | ||||
|           <td><code>#shareDescription</code> | ||||
|           </td> | ||||
|           <td>define text to be added to the HTML meta tag for description</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareRaw</code> | ||||
|           <td><code>#shareRaw</code> | ||||
|           </td> | ||||
|           <td>Note will be served in its raw format, without HTML wrapper. See also  | ||||
|             <a | ||||
| @@ -349,7 +378,7 @@ for (const attr of parentNote.attributes) { | ||||
|               without setting an attribute.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareDisallowRobotIndexing</code> | ||||
|           <td><code>#shareDisallowRobotIndexing</code> | ||||
|           </td> | ||||
|           <td> | ||||
|             <p>Indicates to web crawlers that the page should not be indexed of this | ||||
| @@ -361,19 +390,19 @@ for (const attr of parentNote.attributes) { | ||||
|           </td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareCredentials</code> | ||||
|           <td><code>#shareCredentials</code> | ||||
|           </td> | ||||
|           <td>require credentials to access this shared note. Value is expected to be | ||||
|             in format <code>username:password</code>. Don't forget to make this inheritable | ||||
|             to apply to child-notes/images.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareIndex</code> | ||||
|           <td><code>#shareIndex</code> | ||||
|           </td> | ||||
|           <td>Note with this label will list all roots of shared notes.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|         <td><code>shareHtmlLocation</code> | ||||
|           <td><code>#shareHtmlLocation</code> | ||||
|           </td> | ||||
|           <td>defines where custom HTML injected via <code>~shareHtml</code> relation | ||||
|             should be placed. Applied to the HTML snippet note itself. Format: <code>location:position</code> where | ||||
| @@ -382,7 +411,87 @@ for (const attr of parentNote.attributes) { | ||||
|         </tr> | ||||
|       </tbody> | ||||
|     </table> | ||||
|    | ||||
|   </figure> | ||||
|   <h3>Customizing logo</h3> | ||||
|   <p>It's possible to adjust the logo which is displayed on the top-left of | ||||
|     the left pane.</p> | ||||
|   <figure class="table" style="width:100%;"> | ||||
|     <table class="ck-table-resized"> | ||||
|       <colgroup> | ||||
|         <col style="width:19.08%;"> | ||||
|           <col style="width:80.92%;"> | ||||
|       </colgroup> | ||||
|       <thead> | ||||
|         <tr> | ||||
|           <th>Attribute</th> | ||||
|           <th>Description</th> | ||||
|         </tr> | ||||
|       </thead> | ||||
|       <tbody> | ||||
|         <tr> | ||||
|           <td><code>~shareLogo</code> | ||||
|           </td> | ||||
|           <td>Relation set to an image to use as logo. The image must be part of the | ||||
|             share tree (it can be hidden if needed).</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td><code>#shareLogoWidth</code> | ||||
|           </td> | ||||
|           <td>The width (in pixels, without unit) to set for the logo. Default is <code>53</code>.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td><code>#shareLogoHeight</code> | ||||
|           </td> | ||||
|           <td>The height (in pixels, without unit) to set for the logo. Default is <code>40</code>.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td><code>#shareRootLink</code> | ||||
|           </td> | ||||
|           <td>URL to navigate to when the logo is pressed.</td> | ||||
|         </tr> | ||||
|       </tbody> | ||||
|     </table> | ||||
|   </figure> | ||||
|   <h3>Customizing OpenGraph</h3> | ||||
|   <figure class="table" style="width:100%;"> | ||||
|     <table class="ck-table-resized"> | ||||
|       <colgroup> | ||||
|         <col style="width:19.08%;"> | ||||
|           <col style="width:80.92%;"> | ||||
|       </colgroup> | ||||
|       <thead> | ||||
|         <tr> | ||||
|           <th>Attribute</th> | ||||
|           <th>Description</th> | ||||
|         </tr> | ||||
|       </thead> | ||||
|       <tbody> | ||||
|         <tr> | ||||
|           <td><span style="color:#3b3b3b;"><code>#shareOpenGraphColor</code></span> | ||||
|           </td> | ||||
|           <td>This adjusts the <code>theme-color</code> meta-property.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td><code>#shareOpenGraphURL</code> | ||||
|           </td> | ||||
|           <td>This adjusts the <code>og:url</code> and <code>twitter:url</code> meta-properties.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td><code>#shareOpenGraphDomain</code> | ||||
|           </td> | ||||
|           <td>Adjusts the <code>twitter:domain</code> meta-property.</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td><code>#shareOpenGraphImage</code> | ||||
|             <br><code>~shareOpenGraphImage</code> | ||||
|           </td> | ||||
|           <td>Can be either a label, case in which the value is passed on as-is, or | ||||
|             it can be a relation to an image <a class="reference-link" href="#root/pOsGYCXsbNQG/KSZ04uQ2D1St/_help_W8vYD3Q1zjCR">File</a>. | ||||
|             This controls the <code>og:image</code> meta-property.</td> | ||||
|         </tr> | ||||
|       </tbody> | ||||
|     </table> | ||||
|   </figure> | ||||
|   <h2>Credits</h2> | ||||
|   <p>Since v0.95.0, a new theme was introduced (and enabled by default) which | ||||
|     greatly improves the visual aspect of the Share feature, as well as its | ||||
|   | ||||
							
								
								
									
										58
									
								
								apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Exporting HTML for web publish.html
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,58 @@ | ||||
| <p>As described in <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>, | ||||
|   Trilium can act as a public server in which the shared notes are displayed | ||||
|   in read-only mode. While this can work in most cases, it's generally not | ||||
|   meant for high-traffic websites and since it's running on a Node.js server | ||||
|   it can be potentially exploited.</p> | ||||
| <p>Another alternative is to generate static HTML files (just like other | ||||
|   static site generators such as <a href="https://www.mkdocs.org/">MkDocs</a>). | ||||
|   Since the normal HTML ZIP export does not contain any styling or additional | ||||
|   functionality, Trilium provides a way to export the same layout and style | ||||
|   as the <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a> function | ||||
|   into static HTML files.</p> | ||||
| <p>Apart from the enhanced security, these HTML files are also easy to deploy | ||||
|   on “serverless” deployments such as GitHub Pages or CloudFlare Pages and | ||||
|   cache very easily.</p> | ||||
| <aside class="admonition tip"> | ||||
|   <p>Trilium's documentation, available at <a href="https://docs.triliumnotes.org/">docs.triliumnotes.org</a> is | ||||
|     built using this function of exporting to static HTML files which are then | ||||
|     deployed automatically to CloudFlare Pages.</p> | ||||
|   <p>The process is <a href="https://github.com/TriliumNext/Trilium/blob/main/apps/edit-docs/src/build-docs.ts">automated</a> by | ||||
|     importing the Markdown documentation and exporting it via a script to the | ||||
|     static web format.</p> | ||||
| </aside> | ||||
| <h2>Differences from normal sharing</h2> | ||||
| <p>Apart from normal <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>, | ||||
|   exporting to static HTML files comes with a few subtle differences:</p> | ||||
| <ul> | ||||
|   <li>The URL structure is different. Where in normal sharing it's something | ||||
|     along the way of <code>example.com/share/noteid</code>, the notes follow | ||||
|     an hierarchical structure, such as <code>docs.triliumnotes.org/user-guide/concepts/navigation/tree-concepts</code>.</li> | ||||
|   <li>The <code>favicon.ico</code> is not handled automatically, it needs to be | ||||
|     manually added on the server after the export is generated.</li> | ||||
|   <li>The “Last updated” for notes is not available.</li> | ||||
|   <li>The search functionality works slightly different since the normal one | ||||
|     requires an active API to work. In the static export, search still works | ||||
|     but uses a different mechanism so results might be different.</li> | ||||
| </ul> | ||||
| <h2>Differences from normal .zip export</h2> | ||||
| <ul> | ||||
|   <li>The name of the files/URLs will prefer <code>shareAlias</code> to allow | ||||
|     for clean URLs.</li> | ||||
|   <li>The export requires a functional web server as the pages will not render | ||||
|     properly if accessed locally via a web browser due to the use of module | ||||
|     scripts.</li> | ||||
| </ul> | ||||
| <h2>Testing locally</h2> | ||||
| <p>As mentioned previously, the exported static pages require a website to | ||||
|   function. In order to test locally, a web server needs to be used.</p> | ||||
| <p>One example is to use the Node.js-based <a href="https://www.npmjs.com/package/http-server"><code>http-server</code></a> which | ||||
|   can be installed via:</p><pre><code class="language-text-x-trilium-auto">npm i -g http-server</code></pre> | ||||
| <p>Once installed simply:</p> | ||||
| <ol> | ||||
|   <li>Extract the exported .zip file.</li> | ||||
|   <li>Inside the extracted directory, run <code>http-server</code>.</li> | ||||
|   <li>Access the indicated address (e.g. <a href="http://localhost:8080">http://localhost:8080</a>).</li> | ||||
| </ol> | ||||
| <h2>Automation</h2> | ||||
| <p><a class="reference-link" href="#root/_help_pgxEVkzLl1OP">ETAPI (REST API)</a> could | ||||
|   potentially be used to automate an export on a scheduled task.</p> | ||||
							
								
								
									
										23
									
								
								apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Reverse proxy configuration.html
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,23 @@ | ||||
| <p>It might be desirable to only expose the share functionality of Trilium | ||||
|   to the Internet, and keep the application accessible only within a local | ||||
|   network or via VPN.</p> | ||||
| <p>To do so, a reverse proxy is required.</p> | ||||
| <h2>Caddy</h2><pre><code class="language-text-x-trilium-auto">http://domain.com { | ||||
|   reverse_proxy /share http://localhost:8080/share | ||||
| }</code></pre> | ||||
| <p>This is for newer versions where the share functionality is isolated, | ||||
|   for older versions it's required to also include <code>/assets</code>. | ||||
|   <span | ||||
|   class="footnote-reference" data-footnote-reference="" data-footnote-index="1" | ||||
|   data-footnote-id="2b8mg20aol8" role="doc-noteref" id="fnref2b8mg20aol8"><sup><a href="#fn2b8mg20aol8">[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="2b8mg20aol8" role="doc-endnote" id="fn2b8mg20aol8"><span class="footnote-back-link" data-footnote-back-link="" data-footnote-id="2b8mg20aol8"><sup><strong><a href="#fnref2b8mg20aol8">^</a></strong></sup></span> | ||||
|     <div | ||||
|     class="footnote-content" data-footnote-content=""> | ||||
|       <p><a href="https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897">https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897</a> </p> | ||||
|       </div> | ||||
|   </li> | ||||
| </ol> | ||||
| @@ -39,7 +39,7 @@ | ||||
|   </li> | ||||
|   <li><a href="#root/_help_QEAPj01N5f7w">Reference links</a> | ||||
|   </li> | ||||
|   <li><a href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>, we ended up creating | ||||
|     our own plugin but <a href="https://github.com/aarkue/ckeditor5-admonition">aarkue/ckeditor5-admonition</a> was | ||||
|   <li><a href="#root/_help_NwBbFdNZ9h7O">Admonitions</a>, we ended up creating our | ||||
|     own plugin but <a href="https://github.com/aarkue/ckeditor5-admonition">aarkue/ckeditor5-admonition</a> was | ||||
|     a good inspiration (including the toolbar icon).</li> | ||||
| </ul> | ||||
| @@ -1,5 +1,5 @@ | ||||
| <p><a href="https://excalidraw.com/">Excalidraw</a> is the technology behind | ||||
|   the <a href="#root/_help_grjYqerjn243">Canvas</a> notes. The | ||||
|   source code of the library is available on <a href="https://github.com/excalidraw/excalidraw">GitHub</a>.</p> | ||||
|   the <a href="#root/_help_grjYqerjn243">Canvas</a> notes. The source | ||||
|   code of the library is available on <a href="https://github.com/excalidraw/excalidraw">GitHub</a>.</p> | ||||
| <p>We are using an unmodified version of it, so it shares the same <a href="https://github.com/excalidraw/excalidraw/issues">issues</a> as | ||||
|   the original.</p> | ||||
							
								
								
									
										11
									
								
								apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						| @@ -3,10 +3,10 @@ | ||||
|   main effects:</p> | ||||
| <ol> | ||||
|   <li><strong>Attribute Inheritance</strong>: All attributes from the template | ||||
|     note are <a href="#root/_help_bwZpz2ajCEwO">inherited</a> by the instance | ||||
|     notes. Even attributes with <code>#isInheritable=false</code> are inherited | ||||
|     by the instance notes, although only inheritable attributes are further | ||||
|     inherited by the children of the instance notes.</li> | ||||
|     note are <a href="#root/_help_bwZpz2ajCEwO">inherited</a> by the instance notes. | ||||
|     Even attributes with <code>#isInheritable=false</code> are inherited by the | ||||
|     instance notes, although only inheritable attributes are further inherited | ||||
|     by the children of the instance notes.</li> | ||||
|   <li><strong>Content Duplication</strong>: The content of the template note | ||||
|     is copied to the instance note, provided the instance note is empty at | ||||
|     the time of template assignment.</li> | ||||
| @@ -32,7 +32,8 @@ | ||||
|   all attributes from the template are inherited.</p> | ||||
| <p>To create an instance note through the UI:</p> | ||||
| <p> | ||||
|   <img src="Templates_template-create-.png" alt="show child note templates"> | ||||
|   <img src="Templates_template-create-.png" | ||||
|   alt="show child note templates"> | ||||
| </p> | ||||
| <p>For the template to appear in the menu, the template note must have the <code>#template</code> label. | ||||
|   Do not confuse this with the <code>~template</code> relation, which links | ||||
|   | ||||
							
								
								
									
										30
									
								
								apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export.html
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,30 @@ | ||||
| <p>Trilium natively supports the following formats for both import and export.</p> | ||||
| <ul> | ||||
|   <li>HTML: | ||||
|     <ul> | ||||
|       <li>This is the main format used by Trilium, where standard tags are used | ||||
|         to represent basic formatting and layout (e.g. <code><strong></code>, <code><table></code>, <code><pre></code>).</li> | ||||
|       <li>Note that HTML is not a standardized format so some more specific features | ||||
|         such as admonitions or <a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a> might | ||||
|         not be supported by other applications.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li><a class="reference-link" href="#root/_help_Oau6X9rCuegd">Markdown</a> | ||||
|     <ul> | ||||
|       <li>Most of the formatting is preserved, see <a class="reference-link" | ||||
|         href="#root/_help_rJ9grSgoExl9">Supported syntax</a>.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li>OPML (Outliner Interchange Format) | ||||
|     <ul> | ||||
|       <li>Supports both OPML v1.0 for plain text and v2.0 with HTML support.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
| </ul> | ||||
| <p>To import from other applications, see the dedicated pages:</p> | ||||
| <ul> | ||||
|   <li><a class="reference-link" href="#root/_help_syuSEKf2rUGr">Evernote</a> | ||||
|   </li> | ||||
|   <li><a class="reference-link" href="#root/_help_GnhlmrATVqcH">OneNote</a> | ||||
|   </li> | ||||
| </ul> | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:991/403;" src="1_Jump to_image.png" width="991" | ||||
|   height="403"> | ||||
|   <img style="aspect-ratio:991/403;" src="1_Jump to_image.png" | ||||
|   width="991" height="403"> | ||||
| </figure> | ||||
|  | ||||
| <h2>Jump to Note</h2> | ||||
| @@ -34,8 +34,8 @@ | ||||
| <p>Alternatively you can click on the "time" icon on the right.</p> | ||||
| <h2>Command Palette</h2> | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:982/524;" src="Jump to_image.png" width="982" | ||||
|   height="524"> | ||||
|   <img style="aspect-ratio:982/524;" src="Jump to_image.png" | ||||
|   width="982" height="524"> | ||||
| </figure> | ||||
| <p>The command palette is a feature which allows easy execution of various | ||||
|   commands that can be found throughout the application, such as from menus | ||||
|   | ||||
| @@ -5,7 +5,6 @@ | ||||
|   <img src="Note Hoisting_note-hoistin.gif"> | ||||
| </p> | ||||
| <p>In addition to showing only this subtree, this also narrows both full | ||||
|   text search and <a href="#root/_help_MMiBEQljMQh2">“jump to note”</a> to | ||||
|   just notes present in hoisted subtree.</p> | ||||
| <p>See also <a href="#root/_help_9sRHySam5fXb">Workspace</a> which extends | ||||
|   this feature.</p> | ||||
|   text search and <a href="#root/_help_MMiBEQljMQh2">“jump to note”</a> to just notes | ||||
|   present in hoisted subtree.</p> | ||||
| <p>See also <a href="#root/_help_9sRHySam5fXb">Workspace</a> which extends this feature.</p> | ||||
| @@ -1,16 +1,16 @@ | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:659/256;" src="Quick search_image.png" width="659" | ||||
|   height="256"> | ||||
|   <img style="aspect-ratio:659/256;" src="Quick search_image.png" | ||||
|   width="659" height="256"> | ||||
| </figure> | ||||
| <p>The <em>Quick search</em> function does a full-text search (that is, it | ||||
|   searches through the content of notes and not just the title of a note) | ||||
|   and displays the result in an easy-to-access manner.</p> | ||||
| <p>The alternative to the quick search is the <a class="reference-link" | ||||
|   href="#root/_help_eIg8jdvaoNNd">Search</a> function, which opens in | ||||
|   a dedicated tab and has support for advanced queries.</p> | ||||
|   href="#root/_help_eIg8jdvaoNNd">Search</a> function, which opens in a dedicated | ||||
|   tab and has support for advanced queries.</p> | ||||
| <p>For even faster navigation, it's possible to use <a class="reference-link" | ||||
|   href="#root/_help_F1r9QtzQLZqm">Jump to...</a> which will only search | ||||
|   through the note titles instead of the content.</p> | ||||
|   href="#root/_help_F1r9QtzQLZqm">Jump to...</a> which will only search through | ||||
|   the note titles instead of the content.</p> | ||||
| <h2>Layout</h2> | ||||
| <p>Based on the <a class="reference-link" href="#root/_help_x0JgW8UqGXvq">Vertical and horizontal layout</a>, | ||||
|   the quick search is placed:</p> | ||||
| @@ -18,8 +18,8 @@ | ||||
|   <li>On the vertical layout, it is displayed right above the <a class="reference-link" | ||||
|     href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> | ||||
|   <li>On the horizontal layout, it is displayed in the <a class="reference-link" | ||||
|     href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, where it can be positioned | ||||
|     just like any other icon.</li> | ||||
|     href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>, where it can be positioned just | ||||
|     like any other icon.</li> | ||||
| </ul> | ||||
| <h2>Search Features</h2> | ||||
| <p>Quick search includes the following features:</p> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image_resized" style="width:100%;"> | ||||
|   <img style="aspect-ratio:898/93;" src="Search in note_image.png" width="898" | ||||
|   height="93"> | ||||
|   <img style="aspect-ratio:898/93;" src="Search in note_image.png" | ||||
|   width="898" height="93"> | ||||
| </figure> | ||||
| <p>Local search allows you to search within the currently displayed note. </p> | ||||
| <h2>Alternatives</h2> | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:987/725;" src="Search_image.png" width="987" | ||||
|   height="725"> | ||||
|   <img style="aspect-ratio:987/725;" src="Search_image.png" | ||||
|   width="987" height="725"> | ||||
| </figure> | ||||
| <p>Note search enables you to find notes by searching for text in the title, | ||||
|   content, or <a href="#root/_help_zEY4DaJG4YT5">attributes</a> of the notes. | ||||
|   You also have the option to save your searches, which will create a special | ||||
|   content, or <a href="#root/_help_zEY4DaJG4YT5">attributes</a> of the notes. You | ||||
|   also have the option to save your searches, which will create a special | ||||
|   search note which is visible on your navigation tree and contains the search | ||||
|   results as sub-items.</p> | ||||
| <h2>Accessing the search</h2> | ||||
| @@ -107,8 +107,8 @@ | ||||
|         action multiple times (i.e. in order to be able to apply multiple labels | ||||
|         to notes).</li> | ||||
|       <li>The actions given are the same as the ones in <a class="reference-link" | ||||
|         href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>, which is an alternative | ||||
|         for operating directly with notes within the <a class="reference-link" | ||||
|         href="#root/_help_ivYnonVFBxbQ">Bulk Actions</a>, which is an alternative for | ||||
|         operating directly with notes within the <a class="reference-link" | ||||
|         href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> | ||||
|       <li>After defining the actions, first press <em>Search</em> to check the matched | ||||
|         notes and then press <em>Search & Execute actions</em> to trigger the | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" width="1626" | ||||
|   height="540"> | ||||
|   <img style="aspect-ratio:1626/540;" src="Similar Notes_image.png" | ||||
|   width="1626" height="540"> | ||||
| </figure> | ||||
| <p>The Similar Notes feature tries to identify notes that relate to the current | ||||
|   note by looking at the content of the notes, their relationships, as well | ||||
|   | ||||
| @@ -6,8 +6,8 @@ | ||||
| <p>So far workspace consists of these features:</p> | ||||
| <ul> | ||||
|   <li> | ||||
|     <p><a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a> - you can "zoom" into | ||||
|       a workspace subtree to focus only on the relevant notes</p> | ||||
|     <p><a href="#root/_help_OR8WJ7Iz9K4U">note hoisting</a> - you can "zoom" into a | ||||
|       workspace subtree to focus only on the relevant notes</p> | ||||
|   </li> | ||||
|   <li> | ||||
|     <p>easy entering of workspace: </p> | ||||
|   | ||||
| @@ -2,10 +2,9 @@ | ||||
|   and content.</p> | ||||
| <h3>Note types</h3> | ||||
| <p>The main note type is a rich-text note type called <a class="reference-link" | ||||
|   href="#root/_help_iPIMuisry3hd">Text</a>. For diagrams and drawing there | ||||
|   is <a class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a> and  | ||||
|   href="#root/_help_iPIMuisry3hd">Text</a>. For diagrams and drawing there is  | ||||
|   <a | ||||
|   class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>.</p> | ||||
|   class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a> and <a class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams</a>.</p> | ||||
| <p>There are also more complex note types such as <a class="reference-link" | ||||
|   href="#root/_help_m523cpzocqaD">Saved Search</a>, <a class="reference-link" | ||||
|   href="#root/_help_HcABDtFCkbFN">Render Note</a> that usually go hand-in-hand | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <p>A <a href="#root/_help_BFs8mudNFgCS">note</a> in Trilium can <em>own</em> one | ||||
|   or more attachments, which can be either images or files. These attachments | ||||
| <p>A <a href="#root/_help_BFs8mudNFgCS">note</a> in Trilium can <em>own</em> one or | ||||
|   more attachments, which can be either images or files. These attachments | ||||
|   can be displayed or linked within the note that owns them.</p> | ||||
| <p>This can be especially useful to include dependencies for your <a href="#root/_help_CdNpE2pqjmI6">scripts</a>. | ||||
|   The <a class="reference-link" href="#root/_help_R7abl2fc6Mxi">Weight Tracker</a> shows | ||||
| @@ -21,8 +21,8 @@ | ||||
|   <li>For a single note, press the context menu from the <a class="reference-link" | ||||
|     href="#root/_help_8YBEPzcpUgxw">Note buttons</a> and select <em>Convert into attachment</em>.</li> | ||||
|   <li>For multiple notes, select the given notes in the <a class="reference-link" | ||||
|     href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>, right click → Advanced → | ||||
|     Convert to attachment.</li> | ||||
|     href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>, right click → Advanced → Convert | ||||
|     to attachment.</li> | ||||
| </ul> | ||||
| <h2>Attachment previews</h2> | ||||
| <p>Attachments share the same content preview for images, videos, PDFs, etc. | ||||
|   | ||||
| @@ -5,8 +5,10 @@ | ||||
|   the css class names is not necessary. While editing a note, click on the | ||||
|   icon next to the title to bring up a chooser gallery:</p> | ||||
| <p> | ||||
|   <img src="Note Icons_note-icon-chang.png" alt="change note icon"> | ||||
|   <img src="Note Icons_note-icon-chang.png" | ||||
|   alt="change note icon"> | ||||
| </p> | ||||
| <p> | ||||
|   <img src="Note Icons_note-icon-galle.png" alt="note icon gallery"> | ||||
|   <img src="Note Icons_note-icon-galle.png" | ||||
|   alt="note icon gallery"> | ||||
| </p> | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:990/590;" src="Note List_image.png" width="990" | ||||
|   height="590"> | ||||
|   <img style="aspect-ratio:990/590;" src="Note List_image.png" | ||||
|   width="990" height="590"> | ||||
| </figure> | ||||
| <p>When a note has one or more child notes, they will be listed at the end | ||||
|   of the note for easy navigation.</p> | ||||
| @@ -19,7 +19,6 @@ | ||||
|   the notes will be displayed in a grid, however there are also some other | ||||
|   view types available.</p> | ||||
| <p>Generally the view type can only be changed in a <a class="reference-link" | ||||
|   href="#root/_help_GTwFsgaA0lCt">Collections</a> note from the  | ||||
|   <a | ||||
|   class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>, but it can also be changed manually on any type of note using | ||||
|     the <code>#viewType</code> attribute.</p> | ||||
|   href="#root/_help_GTwFsgaA0lCt">Collections</a> note from the <a class="reference-link" | ||||
|   href="#root/_help_BlN9DFI679QC">Ribbon</a>, but it can also be changed manually | ||||
|   on any type of note using the <code>#viewType</code> attribute.</p> | ||||
| @@ -4,6 +4,7 @@ | ||||
|   <figcaption>Screenshot of the note contextual menu indicating the “Export as PDF” | ||||
|     option.</figcaption> | ||||
| </figure> | ||||
|  | ||||
| <h2>Printing</h2> | ||||
| <p>This feature allows printing of notes. It works on both the desktop client, | ||||
|   but also on the web.</p> | ||||
| @@ -26,7 +27,8 @@ class="admonition note"> | ||||
|     <a | ||||
|     href="#root/_help_wy8So3yZZlH9">report the issue</a>. In this case, it's best to offer a sample note (click | ||||
|       on the | ||||
|       <img src="1_Printing & Exporting as PD.png" width="29" height="31">button, select Export note → This note and all of its descendants → HTML | ||||
|       <img src="1_Printing & Exporting as PD.png" | ||||
|       width="29" height="31">button, select Export note → This note and all of its descendants → HTML | ||||
|       in ZIP archive). Make sure not to accidentally leak any personal information.</p> | ||||
|   <p>Consider adjusting font sizes and using <a href="#root/_help_CohkqWQC1iBv">page breaks</a> to | ||||
|     work around the layout.</p> | ||||
| @@ -56,12 +58,11 @@ class="admonition note"> | ||||
|   <h3>Customizing exporting as PDF</h3> | ||||
|   <p>When exporting to PDF, there are no customizable settings such as page | ||||
|     orientation, size. However, there are a few <a class="reference-link" | ||||
|     href="#root/_help_zEY4DaJG4YT5">Attributes</a> to adjust some of the | ||||
|     settings:</p> | ||||
|     href="#root/_help_zEY4DaJG4YT5">Attributes</a> to adjust some of the settings:</p> | ||||
|   <ul> | ||||
|     <li data-list-item-id="e91eb69cdf42469e4f21852a6b27616b3">To print in landscape mode instead of portrait (useful for big diagrams | ||||
|     <li>To print in landscape mode instead of portrait (useful for big diagrams | ||||
|       or slides), add <code>#printLandscape</code>.</li> | ||||
|     <li data-list-item-id="e111f43a2b5200816649515c5718b6c31">By default, the resulting PDF will be in Letter format. It is possible | ||||
|     <li>By default, the resulting PDF will be in Letter format. It is possible | ||||
|       to adjust it to another page size via the <code>#printPageSize</code> attribute, | ||||
|       with one of the following values: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>.</li> | ||||
|   </ul> | ||||
| @@ -75,9 +76,9 @@ class="admonition note"> | ||||
|     href="#root/_help_4TIF1oA4VQRO">Options</a> and assigning a key combination | ||||
|     for:</p> | ||||
|   <ul> | ||||
|     <li class="ck-list-marker-italic" data-list-item-id="e4065a346baa2fcc2f0bfe436f4026375"><em>Print Active Note</em> | ||||
|     <li><em>Print Active Note</em> | ||||
|     </li> | ||||
|     <li class="ck-list-marker-italic" data-list-item-id="e358a65968ddc456ba39276f3d03e67ab"><em>Export Active Note as PDF</em> | ||||
|     <li><em>Export Active Note as PDF</em> | ||||
|     </li> | ||||
|   </ul> | ||||
|   <h2>Constraints & limitations</h2> | ||||
| @@ -85,24 +86,24 @@ class="admonition note"> | ||||
|     supported when printing, in which case the <em>Print</em> and <em>Export as PDF</em> options | ||||
|     will be disabled.</p> | ||||
|   <ul> | ||||
|     <li data-list-item-id="e10824952bca3d35d824df6ff828a674f">For <a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a> notes: | ||||
|     <li>For <a class="reference-link" href="#root/_help_6f9hih2hXXZk">Code</a> notes: | ||||
|       <ul> | ||||
|         <li data-list-item-id="ea6c43aec2902c6e071541491e8bd60ac">Line numbers are not printed.</li> | ||||
|         <li data-list-item-id="efddf7e53853db4e34d16d154b8ed4928">Syntax highlighting is enabled, however a default theme (Visual Studio) | ||||
|         <li>Line numbers are not printed.</li> | ||||
|         <li>Syntax highlighting is enabled, however a default theme (Visual Studio) | ||||
|           is enforced.</li> | ||||
|       </ul> | ||||
|     </li> | ||||
|     <li data-list-item-id="e015b49c0f3289d6899c5a8b234d5be8b">For <a class="reference-link" href="#root/_help_GTwFsgaA0lCt">Collections</a>: | ||||
|     <li>For <a class="reference-link" href="#root/_help_GTwFsgaA0lCt">Collections</a>: | ||||
|       <ul> | ||||
|         <li data-list-item-id="ee53ebf2cbc850302a779b29475441b0b">Only <a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation View</a> is | ||||
|         <li>Only <a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation View</a> is | ||||
|           currently supported.</li> | ||||
|         <li data-list-item-id="ebb55f62a0f525b810fd11fadc01e86ac">We plan to add support for all the collection types at some point.</li> | ||||
|         <li>We plan to add support for all the collection types at some point.</li> | ||||
|       </ul> | ||||
|     </li> | ||||
|     <li data-list-item-id="e25476c9600ab387eda79fa5eec0b5394">Using <a class="reference-link" href="#root/_help_AlhDUqhENtH7">Custom app-wide CSS</a> for | ||||
|     <li>Using <a class="reference-link" href="#root/_help_AlhDUqhENtH7">Custom app-wide CSS</a> for | ||||
|       printing is not longer supported, due to a more stable but isolated mechanism. | ||||
|       <ul> | ||||
|         <li data-list-item-id="eeb0dc52913013746ad4c3709296fab6b">We plan to introduce a new mechanism specifically for a print CSS.</li> | ||||
|         <li>We plan to introduce a new mechanism specifically for a print CSS.</li> | ||||
|       </ul> | ||||
|     </li> | ||||
|   </ul> | ||||
|   | ||||
| @@ -6,8 +6,8 @@ | ||||
|   <li><strong>Encryption:</strong> Protected notes are encrypted using a key | ||||
|     derived from your password. This ensures that without the correct password, | ||||
|     protected notes remain indecipherable. Even if someone gains access to | ||||
|     your Trilium <a href="#root/_help_wX4HbRucYSDD">database</a>, they won't | ||||
|     be able to read your encrypted notes.</li> | ||||
|     your Trilium <a href="#root/_help_wX4HbRucYSDD">database</a>, they won't be able | ||||
|     to read your encrypted notes.</li> | ||||
|   <li><strong>Time-limited access:</strong> To access protected notes, you must | ||||
|     first enter your password, which decrypts the note for reading and writing. | ||||
|     However, after a specified period of inactivity (10 minutes by default), | ||||
| @@ -30,7 +30,8 @@ | ||||
| <p>By default, notes are unprotected. To protect a note, simply click on | ||||
|   the shield icon next to the note's title, as shown here:</p> | ||||
| <p> | ||||
|   <img src="Protected Notes_protecting.gif" alt="example animation of unlocking protected notes"> | ||||
|   <img src="Protected Notes_protecting.gif" | ||||
|   alt="example animation of unlocking protected notes"> | ||||
| </p> | ||||
| <h2>What is Encrypted?</h2> | ||||
| <p>Trilium encrypts the data within protected notes but not their metadata. | ||||
|   | ||||
| @@ -11,10 +11,9 @@ | ||||
|   of the next section.</p> | ||||
| <p>In addition, it's possible to change the number of characters at which | ||||
|   the automatic read-only mode will trigger in <a class="reference-link" | ||||
|   href="#root/_help_4TIF1oA4VQRO">Options</a> by going to the options | ||||
|   for <a class="reference-link" href="#root/_hidden/_options/_help__optionsTextNotes">Text Notes</a> and  | ||||
|   href="#root/_help_4TIF1oA4VQRO">Options</a> by going to the options for  | ||||
|   <a | ||||
|   class="reference-link" href="#root/_hidden/_options/_help__optionsCodeNotes">Code Notes</a>.</p> | ||||
|   class="reference-link" href="#root/_hidden/_options/_help__optionsTextNotes">Text Notes</a> and <a class="reference-link" href="#root/_hidden/_options/_help__optionsCodeNotes">Code Notes</a>.</p> | ||||
| <h2>Changing a note's read-only behavior</h2> | ||||
| <p>Via the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>, | ||||
|   by going to the <em>Basic Properties</em> tab and looking for the <em>Editable</em> selection. | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <h2>Manual sorting</h2> | ||||
| <p>You can sort notes by right-clicking the parent note in the <a class="reference-link" | ||||
|   href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> and selecting Advanced | ||||
|   -> Sort notes by ... This will sort existing notes, but will not automatically | ||||
|   href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> and selecting Advanced -> | ||||
|   Sort notes by ... This will sort existing notes, but will not automatically | ||||
|   sort future notes added to this parent note.</p> | ||||
| <p>The sorting dialog allows:</p> | ||||
| <ul> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:893/144;" src="Floating buttons_image.png" width="893" | ||||
|   height="144"> | ||||
|   <img style="aspect-ratio:893/144;" src="Floating buttons_image.png" | ||||
|   width="893" height="144"> | ||||
| </figure> | ||||
| <p>Depending on the current note, a panel will appear near the top-right | ||||
|   of the note, right underneath the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>. | ||||
| @@ -13,8 +13,8 @@ | ||||
|     class="reference-link" href="#root/_help_grjYqerjn243">Canvas</a>, there are buttons to download the SVG representation of the | ||||
|       note, or to copy a reference to the note for pasting it a <a class="reference-link" | ||||
|       href="#root/_help_iPIMuisry3hd">Text</a> note.</li> | ||||
|   <li>For <a href="#root/_help_CoFPLs3dRlXc">read-only notes</a>, there is a | ||||
|     button to temporarily edit the note for quick modifications.</li> | ||||
|   <li>For <a href="#root/_help_CoFPLs3dRlXc">read-only notes</a>, there is a button | ||||
|     to temporarily edit the note for quick modifications.</li> | ||||
| </ul> | ||||
| <h2>Interaction</h2> | ||||
| <p>The floating button area can be collapsed by pressing the two right arrows | ||||
|   | ||||
| @@ -36,8 +36,8 @@ | ||||
| <p>Similarly, to remove it from the launch bar, simply look for it in <em>Visible Launchers</em> then | ||||
|   right click it and select <em>Move to available launchers</em> or use drag-and-drop.</p> | ||||
| <p>Drag-and-drop the items in the tree in order to change their | ||||
|   order. See <a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> for | ||||
|   more interaction options, including using keyboard shortcuts.</p> | ||||
|   order. See <a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> for more | ||||
|   interaction options, including using keyboard shortcuts.</p> | ||||
| <h2>Customizing the launcher</h2> | ||||
| <ul> | ||||
|   <li>The icon of a launcher can be changed just like a normal note. See  | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| <figure class="image image-style-align-right"> | ||||
|   <img style="aspect-ratio:505/261;" src="Note Tooltip_image.png" width="505" | ||||
|   height="261"> | ||||
|   <img style="aspect-ratio:505/261;" src="Note Tooltip_image.png" | ||||
|   width="505" height="261"> | ||||
| </figure> | ||||
| <p>The note tooltip is a convenience feature which displays a popup when | ||||
|   hovering over an <a href="#root/_help_hrZ1D00cLbal">internal link</a> to | ||||
|   another note.</p> | ||||
|   hovering over an <a href="#root/_help_hrZ1D00cLbal">internal link</a> to another | ||||
|   note.</p> | ||||
| <p>The following information is displayed:</p> | ||||
| <ul> | ||||
|   <li>The note path, at the top of the popup.</li> | ||||
| @@ -16,8 +16,8 @@ | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li>A snippet of the content will be displayed as well.</li> | ||||
|   <li>A button to <a href="#root/_help_ZjLYv08Rp3qC">quickly edit</a> the note | ||||
|     in a popup.</li> | ||||
|   <li>A button to <a href="#root/_help_ZjLYv08Rp3qC">quickly edit</a> the note in a | ||||
|     popup.</li> | ||||
| </ul> | ||||
| <p>The tooltip can be found in multiple places, including:</p> | ||||
| <ul> | ||||
| @@ -29,8 +29,8 @@ | ||||
|         when hovering over a marker.</li> | ||||
|       <li><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar View</a>, | ||||
|         when hovering over an event.</li> | ||||
|       <li><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table View</a>, | ||||
|         when hovering over a note title, or over a <a href="#root/_help_Cq5X6iKQop6R">relation</a>.</li> | ||||
|       <li><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table View</a>, when | ||||
|         hovering over a note title, or over a <a href="#root/_help_Cq5X6iKQop6R">relation</a>.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
| </ul> | ||||
| @@ -5,13 +5,15 @@ | ||||
| </p> | ||||
| <h2>Drag and Drop</h2> | ||||
| <p> | ||||
|   <img src="Note Tree_drag-and-drop.gif" alt="Drag and drop example"> | ||||
|   <img src="Note Tree_drag-and-drop.gif" | ||||
|   alt="Drag and drop example"> | ||||
| </p> | ||||
| <p>You can easily rearrange the note tree by dragging and dropping notes, | ||||
|   as demonstrated in the example above.</p> | ||||
| <h2>Keyboard Manipulation</h2> | ||||
| <p> | ||||
|   <img src="Note Tree_move-note-with-k.gif" alt="Example of using keyboard keys to move a note">Trilium offers efficient keyboard-based manipulation using the following | ||||
|   <img src="Note Tree_move-note-with-k.gif" | ||||
|   alt="Example of using keyboard keys to move a note">Trilium offers efficient keyboard-based manipulation using the following | ||||
|   <a | ||||
|   href="#root/_help_A9Oc6YKKc65v">shortcuts</a>:</p> | ||||
| <ul> | ||||
|   | ||||
| @@ -10,8 +10,7 @@ | ||||
| <ul> | ||||
|   <li>On a single note, by right clicking it in the note tree.</li> | ||||
|   <li>On multiple notes, by selecting them first. See <a class="reference-link" | ||||
|     href="#root/_help_yTjUdsOi4CIE">Multiple selection</a> on how to do | ||||
|     so. | ||||
|     href="#root/_help_yTjUdsOi4CIE">Multiple selection</a> on how to do so. | ||||
|     <ul> | ||||
|       <li>When right clicking, do note that usually the note being right clicked | ||||
|         is also included in the affected notes, regardless of whether it was selected | ||||
| @@ -81,9 +80,9 @@ | ||||
|       <li>Use one of the two paste functions (or the keyboard shortcuts) to copy | ||||
|         them to the desired location.</li> | ||||
|       <li>Note that the copy function here works according to the <a class="reference-link" | ||||
|         href="#root/_help_IakOLONlIfGI">Cloning Notes</a> functionality (i.e. | ||||
|         the note itself will be present in two locations at once, and editing it | ||||
|         in one place will edit it everywhere).</li> | ||||
|         href="#root/_help_IakOLONlIfGI">Cloning Notes</a> functionality (i.e. the | ||||
|         note itself will be present in two locations at once, and editing it in | ||||
|         one place will edit it everywhere).</li> | ||||
|       <li>To simply create a duplicate note that can be modified independently, | ||||
|         look for <em>Duplicate subtree</em>.</li> | ||||
|     </ul> | ||||
| @@ -145,8 +144,8 @@ | ||||
|   </li> | ||||
|   <li><strong>Import into note</strong> | ||||
|     <ul> | ||||
|       <li>Opens the <a href="#root/_help_mHbBMPDPkVV5">import</a> dialog and places | ||||
|         the imported notes as child notes of the selected one.</li> | ||||
|       <li>Opens the <a href="#root/_help_mHbBMPDPkVV5">import</a> dialog and places the | ||||
|         imported notes as child notes of the selected one.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li><strong>Export</strong> | ||||
| @@ -191,8 +190,8 @@ | ||||
|       <li>Converts the selected notes to <a class="reference-link" href="#root/_help_0vhv7lsOLy82">Attachments</a> of | ||||
|         their parent notes.</li> | ||||
|       <li>This functional is most useful when dealing with image <a class="reference-link" | ||||
|         href="#root/_help_W8vYD3Q1zjCR">File</a> notes that were imported | ||||
|         from an external source or an older version of Trilium.</li> | ||||
|         href="#root/_help_W8vYD3Q1zjCR">File</a> notes that were imported from an | ||||
|         external source or an older version of Trilium.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li><strong>Expand subtree</strong> | ||||
|   | ||||
| @@ -1,14 +1,13 @@ | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:1189/709;" src="Options_image.png" width="1189" | ||||
|   height="709"> | ||||
|   <img style="aspect-ratio:1189/709;" src="Options_image.png" | ||||
|   width="1189" height="709"> | ||||
| </figure> | ||||
| <p>The Options section allows the configuration of the TriliumNext client | ||||
|   and server.</p> | ||||
| <h2>Entering options</h2> | ||||
| <p>The Options can be accessed via:</p> | ||||
| <ul> | ||||
|   <li>The <a href="#root/_help_x3i7MxGccDuM">Global menu</a>, by selecting | ||||
|     the <em>Options</em> item.</li> | ||||
|   <li>The <a href="#root/_help_x3i7MxGccDuM">Global menu</a>, by selecting the <em>Options</em> item.</li> | ||||
|   <li>The | ||||
|     <img src="1_Options_image.png">button in the <a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a> which | ||||
|     can optionally be hidden if not desirable.</li> | ||||
|   | ||||
| @@ -1,18 +1,18 @@ | ||||
| <figure class="image image-style-align-right image_resized" style="width:53.13%;"> | ||||
|   <img style="aspect-ratio:895/694;" src="Quick edit_image.png" width="895" | ||||
|   height="694"> | ||||
|   <img style="aspect-ratio:895/694;" src="Quick edit_image.png" | ||||
|   width="895" height="694"> | ||||
| </figure> | ||||
| <p><em>Quick edit</em> provides an alternative to the standard tab-based navigation | ||||
|   and editing.</p> | ||||
| <p>Instead of clicking on a note which switches the <a class="reference-link" | ||||
|   href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> to the newly selected | ||||
|   note, or navigating between two different <a class="reference-link" | ||||
|   href="#root/_help_3seOhtN8uLIY">Tabs</a>, the <em>Quick edit</em> feature | ||||
|   opens as a popup window that can be easily dismissed.</p> | ||||
|   href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> to the newly selected note, | ||||
|   or navigating between two different <a class="reference-link" href="#root/_help_3seOhtN8uLIY">Tabs</a>, | ||||
|   the <em>Quick edit</em> feature opens as a popup window that can be easily | ||||
|   dismissed.</p> | ||||
| <p>This feature is also well integrated with <a class="reference-link" | ||||
|   href="#root/_help_GTwFsgaA0lCt">Collections</a> such as the calendar | ||||
|   view, which makes it easy to edit entries without having to go back and | ||||
|   forth between the child note and the calendar.</p> | ||||
|   href="#root/_help_GTwFsgaA0lCt">Collections</a> such as the calendar view, | ||||
|   which makes it easy to edit entries without having to go back and forth | ||||
|   between the child note and the calendar.</p> | ||||
| <h2>Feature highlights</h2> | ||||
| <ul> | ||||
|   <li>All note types are supported, including <a class="reference-link" | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image-style-align-center image_resized" style="width:50%;"> | ||||
|   <img style="aspect-ratio:988/572;" src="1_Recent Changes_image.png" width="988" | ||||
|   height="572"> | ||||
|   <img style="aspect-ratio:988/572;" src="1_Recent Changes_image.png" | ||||
|   width="988" height="572"> | ||||
| </figure> | ||||
|  | ||||
| <h2>Accessing the recent changes</h2> | ||||
| @@ -9,10 +9,9 @@ | ||||
|     <img src="Recent Changes_image.png" | ||||
|     width="25" height="21">button in the <a class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar</a>. | ||||
|     <ul> | ||||
|       <li>If there is a <a href="#root/_help_OR8WJ7Iz9K4U">hoisted note</a> or a | ||||
|         <a | ||||
|         href="#root/_help_9sRHySam5fXb">workspace</a>, the list of recent changes will be limited to the descendents | ||||
|           of the hoisted note, or the workspace.</li> | ||||
|       <li>If there is a <a href="#root/_help_OR8WJ7Iz9K4U">hoisted note</a> or a <a href="#root/_help_9sRHySam5fXb">workspace</a>, | ||||
|         the list of recent changes will be limited to the descendents of the hoisted | ||||
|         note, or the workspace.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li>To limit the list of recent changes to a note and its descendants, look | ||||
|   | ||||
| @@ -24,28 +24,27 @@ | ||||
|   </li> | ||||
|   <li><em><strong>Protect the note</strong></em> toggles whether the current | ||||
|     note is encrypted and accessible only by entering the protected session. | ||||
|     See <a href="#root/_help_bwg0e8ewQMak">Protected Notes</a> for | ||||
|     more information.</li> | ||||
|     See <a href="#root/_help_bwg0e8ewQMak">Protected Notes</a> for more | ||||
|     information.</li> | ||||
|   <li><em><strong>Editable</strong></em> changes whether the current note: | ||||
|     <ul> | ||||
|       <li>Enters <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> automatically | ||||
|         if the note is too big (default behaviour).</li> | ||||
|       <li>Enters <a href="#root/_help_CoFPLs3dRlXc">read-only mode</a> automatically if | ||||
|         the note is too big (default behaviour).</li> | ||||
|       <li>Is always in read-only mode (however it can still be edited temporarily).</li> | ||||
|       <li>Is always editable, regardless of its size.</li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li><em><strong>Bookmark</strong></em> toggles the display of the current note | ||||
|     into the <a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a> for | ||||
|     easy access. See <a href="#root/_help_u3YFHC9tQlpm">Bookmarks</a> for | ||||
|     more information.</li> | ||||
|     into the <a href="#root/_help_xYmIYSP6wE3F">Launch Bar</a> for easy | ||||
|     access. See <a href="#root/_help_u3YFHC9tQlpm">Bookmarks</a> for more | ||||
|     information.</li> | ||||
|   <li><em><strong>Shared</strong></em> toggles whether the current note is publicly | ||||
|     accessible if you have a <a href="#root/_help_WOcw2SLH6tbX">server instance</a> set | ||||
|     up. See <a href="#root/_help_R9pX4DGra2Vt">Sharing</a> for more | ||||
|     information.</li> | ||||
|     up. See <a href="#root/_help_R9pX4DGra2Vt">Sharing</a> for more information.</li> | ||||
|   <li><em><strong>Template</strong></em> toggles whether the current note is | ||||
|     considered a template and can be used to easily create notes with the same | ||||
|     content. See <a href="#root/_help_KC1HB96bqqHX">Template</a> for | ||||
|     more information.</li> | ||||
|     content. See <a href="#root/_help_KC1HB96bqqHX">Template</a> for more | ||||
|     information.</li> | ||||
|   <li><em><strong>Language</strong></em> changes the main language of the current | ||||
|     note, mostly useful for spell checking or right-to-left support. See  | ||||
|     <a | ||||
| @@ -65,23 +64,21 @@ | ||||
| <h3>Note Paths</h3> | ||||
| <p>This section displays all the places where the current note has been cloned | ||||
|   to. Here the current note can also be cloned to a new location (similar | ||||
|   to the <a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>) See  | ||||
|   <a | ||||
|   href="#root/_help_IakOLONlIfGI">Cloning Notes</a> for more information.</p> | ||||
|   to the <a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>) See <a href="#root/_help_IakOLONlIfGI">Cloning Notes</a> for | ||||
|   more information.</p> | ||||
| <h3>Note Map</h3> | ||||
| <p>The note map displays all the relations of the current note to other notes, | ||||
|   as well as the subtree structure. See <a href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> for | ||||
|   more information.</p> | ||||
| <h3>Similar Notes</h3> | ||||
| <p>This section lists all the notes that are similar to the current one. | ||||
|   See <a href="#root/_help_xWtq5NUHOwql">Similar Notes</a> for | ||||
|   more information.</p> | ||||
|   See <a href="#root/_help_xWtq5NUHOwql">Similar Notes</a> for more information.</p> | ||||
| <h3>Note Info</h3> | ||||
| <p>This section displays information about the current note:</p> | ||||
| <ul> | ||||
|   <li>The <a href="#root/_help_m1lbrzyKDaRB">internal ID</a> of the note.</li> | ||||
|   <li>The <a href="#root/_help_KSZ04uQ2D1St">type of the note</a>, as well as | ||||
|     its MIME type (used mostly for exporting notes).</li> | ||||
|   <li>The <a href="#root/_help_KSZ04uQ2D1St">type of the note</a>, as well as its MIME | ||||
|     type (used mostly for exporting notes).</li> | ||||
|   <li>The created and modification dates.</li> | ||||
|   <li>The estimated size of the note in the <a href="#root/_help_wX4HbRucYSDD">Database</a>, | ||||
|     as well as its children count and size.</li> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image"> | ||||
|   <img style="aspect-ratio:1036/372;" src="Right Sidebar_image.png" width="1036" | ||||
|   height="372"> | ||||
|   <img style="aspect-ratio:1036/372;" src="Right Sidebar_image.png" | ||||
|   width="1036" height="372"> | ||||
| </figure> | ||||
| <p>The right sidebar displays specific content for the current note. Currently | ||||
|   it includes:</p> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <figure class="image image-style-align-center"> | ||||
|   <img style="aspect-ratio:1119/43;" src="2_Tabs_image.png" width="1119" | ||||
|   height="43"> | ||||
|   <img style="aspect-ratio:1119/43;" src="2_Tabs_image.png" | ||||
|   width="1119" height="43"> | ||||
| </figure> | ||||
| <p>In Trilium, tabs allow easy switching between notes.</p> | ||||
| <h2>Layout</h2> | ||||
| @@ -9,8 +9,8 @@ | ||||
|   <li>For the vertical layout, the tabs will be placed at the top but to the | ||||
|     right of the <a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> | ||||
|   <li>For the horizontal layout, the tabs will be placed at the top in full-width, | ||||
|     above the <a href="#root/_help_oPVyFC7WL2Lp">note tree</a>, allowing | ||||
|     for more tabs to be comfortably displayed.</li> | ||||
|     above the <a href="#root/_help_oPVyFC7WL2Lp">note tree</a>, allowing for | ||||
|     more tabs to be comfortably displayed.</li> | ||||
| </ul> | ||||
| <h2>Interaction</h2> | ||||
| <ul> | ||||
| @@ -19,8 +19,8 @@ | ||||
|   <li>To close a tab, press the corresponding | ||||
|     <img src="Tabs_image.png">button.</li> | ||||
|   <li>For multitasking, tabs can be used alongside <a class="reference-link" | ||||
|     href="#root/_help_luNhaphA37EO">Split View</a>. Each tab can have one or | ||||
|     more notes, displayed horizontally.</li> | ||||
|     href="#root/_help_luNhaphA37EO">Split View</a>. Each tab can have one or more | ||||
|     notes, displayed horizontally.</li> | ||||
|   <li>Tabs can be reordered by drag-and-dropping it into a new position.</li> | ||||
|   <li>An existing tab can be displayed in a new window by dragging the tab upwards | ||||
|     or downwards. It is not possible to combine tabs back into another window.</li> | ||||
|   | ||||
| @@ -0,0 +1,8 @@ | ||||
| <p>Zoom applies to the entire UI, including text.</p> | ||||
| <p>On the desktop application, use the <a class="reference-link" href="#root/_help_x3i7MxGccDuM">Global menu</a> to | ||||
|   zoom in/out.</p> | ||||
| <p>On both web browser and the desktop, the keyboard shortcuts <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>+</kbd> and <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>-</kbd> can | ||||
|   be used.</p> | ||||
| <h2>Adjusting the text size instead</h2> | ||||
| <p>As an alternative to the zoom, the text size can be individually adjusted | ||||
|   by going to <a class="reference-link" href="#root/_help_4TIF1oA4VQRO">Options</a> → <em>Appearance</em>.</p> | ||||
| @@ -1,5 +1,76 @@ | ||||
| <p>Collections are a unique type of notes that don't have a content, but | ||||
|   instead display its child notes in various presentation methods.</p> | ||||
| <h2>Main collections</h2> | ||||
| <table> | ||||
|   <thead> | ||||
|     <tr> | ||||
|       <th></th> | ||||
|       <th></th> | ||||
|     </tr> | ||||
|   </thead> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <td> | ||||
|         <figure class="image"> | ||||
|           <img style="aspect-ratio:1651/810;" src="Collections_collection_ca.webp" | ||||
|           width="1651" height="810"> | ||||
|         </figure> | ||||
|       </td> | ||||
|       <td><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar</a>  | ||||
|         <br>which displays a week, month or year calendar with the notes being shown | ||||
|         as events. New events can be added easily by dragging across the calendar.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> | ||||
|         <figure class="image"> | ||||
|           <img style="aspect-ratio:1643/647;" src="Collections_collection_ta.webp" | ||||
|           width="1643" height="647"> | ||||
|         </figure> | ||||
|       </td> | ||||
|       <td><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table</a>  | ||||
|         <br>displays each note as a row in a table, with <a class="reference-link" | ||||
|         href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> being shown as well. | ||||
|         This makes it easy to visualize attributes of notes, as well as making | ||||
|         them easily editable.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> | ||||
|         <figure class="image"> | ||||
|           <img style="aspect-ratio:1174/850;" src="Collections_collection_bo.webp" | ||||
|           width="1174" height="850"> | ||||
|         </figure> | ||||
|       </td> | ||||
|       <td><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Kanban Board</a>  | ||||
|         <br>displays notes in columns, grouped by the value of a label. Items and | ||||
|         columns can easily be created or dragged around to change their status.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> | ||||
|         <figure class="image"> | ||||
|           <img style="aspect-ratio:844/639;" src="Collections_collection_ge.webp" | ||||
|           width="844" height="639"> | ||||
|         </figure> | ||||
|       </td> | ||||
|       <td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>  | ||||
|         <br>which displays a geographical map in which the notes are represented as | ||||
|         markers/pins on the map. New events can be easily added by pointing on | ||||
|         the map.</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> | ||||
|         <figure class="image"> | ||||
|           <img style="aspect-ratio:1120/763;" src="Collections_collection_pr.webp" | ||||
|           width="1120" height="763"> | ||||
|         </figure> | ||||
|       </td> | ||||
|       <td><a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation</a>  | ||||
|         <br>which shows each note as a slide and can be presented full-screen with | ||||
|         smooth transitions or exported to PDF for sharing.</td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| 
 | ||||
| <h2>Classic collections</h2> | ||||
| <p>Classic collections are read-only mode and compiles the contents of all | ||||
|   child notes into one continuous view. This makes it ideal for reading extensive | ||||
|   information broken into smaller, manageable segments.</p> | ||||
| @@ -13,32 +84,22 @@ | ||||
|     but it displays the notes one under the other with the content being expandable/collapsible, | ||||
|     but also works recursively.</li> | ||||
| </ul> | ||||
| <p>More specialized collections were introduced, such as the:</p> | ||||
| <ul> | ||||
|   <li><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar View</a> which | ||||
|     displays a week, month or year calendar with the notes being shown as events. | ||||
|     New events can be added easily by dragging across the calendar.</li> | ||||
|   <li><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map View</a> which | ||||
|     displays a geographical map in which the notes are represented as markers/pins | ||||
|     on the map. New events can be easily added by pointing on the map.</li> | ||||
|   <li><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table View</a> displays | ||||
|     each note as a row in a table, with <a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> being | ||||
|     shown as well. This makes it easy to visualize attributes of notes, as | ||||
|     well as making them easily editable.</li> | ||||
|   <li><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Board View</a> (Kanban) | ||||
|     displays notes in columns, grouped by the value of a label.</li> | ||||
| </ul> | ||||
| <p>For a quick presentation of all the supported view types, see the child | ||||
|   notes of this help page, including screenshots.</p> | ||||
| <h2>Configuration</h2> | ||||
| <p>To adjust the view type, see the dedicated <em>Collections</em> tab in the  | ||||
|   <a | ||||
|   class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p> | ||||
| <h2>Use cases</h2> | ||||
| <h3>Creating a new collection</h3> | ||||
| <h2>Creating a new collection</h2> | ||||
| <p>To create a new collections, right click in the <a class="reference-link" | ||||
|   href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> and look for the <em>Collections</em> entry | ||||
|   and select the desired type.</p> | ||||
| <h2>Configuration</h2> | ||||
| <p>To change the configuration of a collection or even switch to a different | ||||
|   collection (e.g. from Kanban Board to a Calendar), see the dedicated <em>Collections</em> tab | ||||
|   in the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p> | ||||
| <h2>Archived notes</h2> | ||||
| <p>By default, <a href="#root/_help_MKmLg5x6xkor">archived notes</a> will not be | ||||
|   shown in collections. This behaviour can be changed by going to <em>Collection Properties</em> in | ||||
|   the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a> and | ||||
|   checking <em>Show archived notes</em>.</p> | ||||
| <p>Archived notes will be generally indicated by being greyed out as opposed | ||||
|   to the normal ones.</p> | ||||
| <h2>Advanced use cases</h2> | ||||
| <h3>Adding a description to a collection</h3> | ||||
| <p>To add a text before the collection, for example to describe it:</p> | ||||
| <ol> | ||||
| @@ -54,8 +115,8 @@ | ||||
|   to display notes all across the tree, with advanced querying functionality.</p> | ||||
| <p>To do so, simply start a <a class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a> and | ||||
|   go to the <em>Collection Properties</em> tab in the <a class="reference-link" | ||||
|   href="#root/_help_BlN9DFI679QC">Ribbon</a> and select a desired type | ||||
|   of collection. To keep the search-based collection, use a <a class="reference-link" | ||||
|   href="#root/_help_BlN9DFI679QC">Ribbon</a> and select a desired type of | ||||
|   collection. To keep the search-based collection, use a <a class="reference-link" | ||||
|   href="#root/_help_m523cpzocqaD">Saved Search</a>.</p> | ||||
| <aside class="admonition important"> | ||||
|   <p>While in search, none of the collections will not display the child notes | ||||
| @@ -75,21 +136,14 @@ | ||||
|   <li>Consult the help page of the corresponding view type in order to understand | ||||
|     how to configure them.</li> | ||||
| </ol> | ||||
| <h2>Archived notes</h2> | ||||
| <p>By default, archived notes will not be shown in collections. This behaviour | ||||
|   can be changed by going to <em>Collection Properties</em> in the  | ||||
|   <a | ||||
|   class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a> and checking <em>Show archived notes</em>.</p> | ||||
| <p>Archived notes will be generally indicated by being greyed out as opposed | ||||
|   to the normal ones.</p> | ||||
| <h2>Under the hood</h2> | ||||
| <p>Collections by themselves are simply notes with no content that rely on | ||||
|   the <a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a> mechanism | ||||
|   (the one that lists the children notes at the bottom of a note) to display | ||||
|   information.</p> | ||||
| <p>By default, new collections use predefined <a class="reference-link" | ||||
|   href="#root/_help_KC1HB96bqqHX">Templates</a> that are stored safely | ||||
|   in the <a class="reference-link" href="#root/_help_2mUhVmZK8RF3">Hidden Notes</a> to | ||||
|   href="#root/_help_KC1HB96bqqHX">Templates</a> that are stored safely in | ||||
|   the <a class="reference-link" href="#root/_help_2mUhVmZK8RF3">Hidden Notes</a> to | ||||
|   define some basic configuration such as the type of view, but also some  | ||||
|   <a | ||||
|   class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> to make editing easier.</p> | ||||
| Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB | 
| Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B | 
| Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB | 
| Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB | 
| Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB | 
| Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB | 
| Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB | 
| Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB | 
| Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB | 
| Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 179 B | 
| Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB | 
| Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 909 B | 
| Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB | 
| Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB | 
| Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB | 
| Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB | 
| Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |