From 7651c58c4772ef143be482cdec8d2a8b90524d59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 01:33:17 +0000 Subject: [PATCH 01/12] chore(deps): update dependency axios to v1.13.2 --- apps/server/package.json | 2 +- pnpm-lock.yaml | 36 +++++++++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index 2c9b0aefb..dae7a3019 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -67,7 +67,7 @@ "@types/xml2js": "0.4.14", "archiver": "7.0.1", "async-mutex": "0.5.0", - "axios": "1.13.1", + "axios": "1.13.2", "bindings": "1.5.0", "bootstrap": "5.3.8", "chardet": "2.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d039fcef4..7aaf72237 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -604,8 +604,8 @@ importers: specifier: 0.5.0 version: 0.5.0 axios: - specifier: 1.13.1 - version: 1.13.1(debug@4.4.3) + specifier: 1.13.2 + version: 1.13.2(debug@4.4.3) bindings: specifier: 1.5.0 version: 1.5.0 @@ -6295,8 +6295,8 @@ packages: resolution: {integrity: sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==} engines: {node: '>=6.0.0'} - axios@1.13.1: - resolution: {integrity: sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==} + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -15611,6 +15611,8 @@ snapshots: '@ckeditor/ckeditor5-core': 47.1.0 '@ckeditor/ckeditor5-upload': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-ai@47.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15820,6 +15822,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 '@ckeditor/ckeditor5-watchdog': 47.1.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-dev-build-tools@43.1.0(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.3)': dependencies: @@ -15984,8 +15988,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.1.0': dependencies: @@ -15995,6 +15997,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.1.0': dependencies: @@ -16004,6 +16008,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-inline@47.1.0': dependencies: @@ -16121,6 +16127,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-font@47.1.0': dependencies: @@ -16184,6 +16192,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 '@ckeditor/ckeditor5-widget': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-html-embed@47.1.0': dependencies: @@ -16474,6 +16484,8 @@ snapshots: '@ckeditor/ckeditor5-paste-from-office': 47.1.0 '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-paste-from-office@47.1.0': dependencies: @@ -16481,6 +16493,8 @@ snapshots: '@ckeditor/ckeditor5-core': 47.1.0 '@ckeditor/ckeditor5-engine': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-real-time-collaboration@47.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -16522,6 +16536,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.1.0 '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-revision-history@47.1.0': dependencies: @@ -16599,6 +16615,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.1.0 '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-special-characters@47.1.0': dependencies: @@ -16608,6 +16626,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.1.0 '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-style@47.1.0': dependencies: @@ -16710,6 +16730,8 @@ snapshots: '@ckeditor/ckeditor5-icons': 47.1.0 '@ckeditor/ckeditor5-ui': 47.1.0 '@ckeditor/ckeditor5-utils': 47.1.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-upload@47.1.0': dependencies: @@ -21822,7 +21844,7 @@ snapshots: await-to-js@3.0.0: {} - axios@1.13.1(debug@4.4.3): + axios@1.13.2(debug@4.4.3): dependencies: follow-redirects: 1.15.9(debug@4.4.3) form-data: 4.0.4 From d5bfa466a29b32a357a478b2e6c2d700b5df4686 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 01:34:00 +0000 Subject: [PATCH 02/12] chore(deps): update dependency sax to v1.4.3 --- apps/server/package.json | 2 +- pnpm-lock.yaml | 26 ++++++++++---------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index 2c9b0aefb..0b0536cb3 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -115,7 +115,7 @@ "safe-compare": "1.1.4", "sanitize-filename": "1.6.3", "sanitize-html": "2.17.0", - "sax": "1.4.2", + "sax": "1.4.3", "serve-favicon": "2.5.1", "stream-throttle": "0.1.3", "strip-bom": "5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d039fcef4..d858645c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -748,8 +748,8 @@ importers: specifier: 2.17.0 version: 2.17.0 sax: - specifier: 1.4.2 - version: 1.4.2 + specifier: 1.4.3 + version: 1.4.3 serve-favicon: specifier: 2.5.1 version: 2.5.1 @@ -12945,8 +12945,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sax@1.4.2: - resolution: {integrity: sha512-FySGAa0RGcFiN6zfrO9JvK1r7TB59xuzCcTHOBXBNoKgDejlOQCR2KL/FGk3/iDlsqyYg1ELZpOmlg09B01Czw==} + sax@1.4.3: + resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} saxes@5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} @@ -15757,8 +15757,6 @@ snapshots: '@ckeditor/ckeditor5-core': 47.1.0 '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@47.1.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -15984,8 +15982,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.1.0': dependencies: @@ -16013,8 +16009,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-multi-root@47.1.0': dependencies: @@ -17797,7 +17791,7 @@ snapshots: '@file-type/xml@0.4.3': dependencies: - sax: 1.4.2 + sax: 1.4.3 strtok3: 10.2.2 '@floating-ui/core@1.6.9': @@ -27548,7 +27542,7 @@ snapshots: needle@3.3.1: dependencies: iconv-lite: 0.6.3 - sax: 1.4.2 + sax: 1.4.3 optional: true negotiator@0.6.3: {} @@ -29987,7 +29981,7 @@ snapshots: '@parcel/watcher': 2.5.1 optional: true - sax@1.4.2: {} + sax@1.4.3: {} saxes@5.0.1: dependencies: @@ -30983,7 +30977,7 @@ snapshots: css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 - sax: 1.4.2 + sax: 1.4.3 swagger-jsdoc@6.2.8(openapi-types@12.1.3): dependencies: @@ -32328,12 +32322,12 @@ snapshots: xml2js@0.5.0: dependencies: - sax: 1.4.2 + sax: 1.4.3 xmlbuilder: 11.0.1 xml2js@0.6.2: dependencies: - sax: 1.4.2 + sax: 1.4.3 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} From a8bb301296bfdb717080af52402a91ef073b7051 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 01:34:43 +0000 Subject: [PATCH 03/12] chore(deps): update dependency @redocly/cli to v2.11.0 --- apps/build-docs/package.json | 2 +- pnpm-lock.yaml | 42 +++++++++++++++++------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/apps/build-docs/package.json b/apps/build-docs/package.json index f22baec81..00196de82 100644 --- a/apps/build-docs/package.json +++ b/apps/build-docs/package.json @@ -11,7 +11,7 @@ "license": "AGPL-3.0-only", "packageManager": "pnpm@10.20.0", "devDependencies": { - "@redocly/cli": "2.10.0", + "@redocly/cli": "2.11.0", "archiver": "7.0.1", "fs-extra": "11.3.2", "react": "19.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d039fcef4..c477f4df6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -131,8 +131,8 @@ importers: apps/build-docs: devDependencies: '@redocly/cli': - specifier: 2.10.0 - version: 2.10.0(@opentelemetry/api@1.9.0)(ajv@8.17.1)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5) + specifier: 2.11.0 + version: 2.11.0(@opentelemetry/api@1.9.0)(ajv@8.17.1)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5) archiver: specifier: 7.0.1 version: 7.0.1 @@ -4223,27 +4223,27 @@ packages: '@redocly/ajv@8.11.3': resolution: {integrity: sha512-4P3iZse91TkBiY+Dx5DUgxQ9GXkVJf++cmI0MOyLDxV9b5MUBI4II6ES8zA5JCbO72nKAJxWrw4PUPW+YP3ZDQ==} - '@redocly/cli@2.10.0': - resolution: {integrity: sha512-wKuF/30MSmcc4SJwWTuVnIeFKyW60DVOgxTzvvA+wC1HRBZ24X3UTRyt6MtDEFGcNl6hv5/J9l2lodStwwqelQ==} + '@redocly/cli@2.11.0': + resolution: {integrity: sha512-Wr8me9M5tQ4pZT7Z0Llxojlo8L0GBBt45zceQ8iKyBmJUHWDbKYYdKubZBCH0XktQLEA8HitYBGN1unsxwx20g==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} hasBin: true '@redocly/config@0.22.2': resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==} - '@redocly/config@0.36.2': - resolution: {integrity: sha512-gwIjFOzyq9bdJCdtEHDMf2hEJ9hHXUHkY1U3IPWyZmRoFcibzlpXOLrT0xVgnn10IEttMwD+SZtZBE593yDXsw==} + '@redocly/config@0.37.0': + resolution: {integrity: sha512-cYN+rTTCQIp5mVt1xumJsNqpZcaPVUf1x0ryD0QKXpVKsxKc+lHaMF2P1CqMgdQNY9B7i84z/kvxD0EhxzlxbQ==} '@redocly/openapi-core@1.34.5': resolution: {integrity: sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} - '@redocly/openapi-core@2.10.0': - resolution: {integrity: sha512-OmWvnpA11J6Tp3+h8I3nrfpTcXROLllr/9yIUB7ofi7s1yOOKOqlZ4HTs+zaeNmk9vclwmbgc2HVdSsBKUXp6g==} + '@redocly/openapi-core@2.11.0': + resolution: {integrity: sha512-CF4QpCoxxHIB7Dib1XnhdL0WuW4dO4zvNfaEWpN7TASlitOX2mhrc6sD3dYG9knW1iG16e3Oauv2O+tVJx1E9Q==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} - '@redocly/respect-core@2.10.0': - resolution: {integrity: sha512-4XFOR3kbuhlPBeW2G/G3yPs7YJKV0d/k2BgDwKIQH8Edld4fHvknEAR9TFUaWsiA7JGWrP3CQ58P5VoDNW5O0Q==} + '@redocly/respect-core@2.11.0': + resolution: {integrity: sha512-lAvDILvq82IIei2gVyapGyfuWEamJgCiGO++yQriVk4Wr0hE3lF7ZWusUM3aGZrxEWCVGeeLwbMBpv1BQOnmEg==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} '@replit/codemirror-indentation-markers@6.5.3': @@ -15984,8 +15984,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.1.0 ckeditor5: 47.1.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.1.0': dependencies: @@ -19324,14 +19322,14 @@ snapshots: require-from-string: 2.0.2 uri-js-replace: 1.0.1 - '@redocly/cli@2.10.0(@opentelemetry/api@1.9.0)(ajv@8.17.1)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)': + '@redocly/cli@2.11.0(@opentelemetry/api@1.9.0)(ajv@8.17.1)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)': dependencies: '@opentelemetry/exporter-trace-otlp-http': 0.202.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 - '@redocly/openapi-core': 2.10.0(ajv@8.17.1) - '@redocly/respect-core': 2.10.0(ajv@8.17.1) + '@redocly/openapi-core': 2.11.0(ajv@8.17.1) + '@redocly/respect-core': 2.11.0(ajv@8.17.1) abort-controller: 3.0.0 chokidar: 3.6.0 colorette: 1.4.0 @@ -19364,7 +19362,7 @@ snapshots: '@redocly/config@0.22.2': {} - '@redocly/config@0.36.2': + '@redocly/config@0.37.0': dependencies: json-schema-to-ts: 2.7.2 @@ -19382,10 +19380,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@redocly/openapi-core@2.10.0(ajv@8.17.1)': + '@redocly/openapi-core@2.11.0(ajv@8.17.1)': dependencies: '@redocly/ajv': 8.11.3 - '@redocly/config': 0.36.2 + '@redocly/config': 0.37.0 ajv-formats: 2.1.1(ajv@8.17.1) colorette: 1.4.0 js-levenshtein: 1.1.6 @@ -19396,12 +19394,12 @@ snapshots: transitivePeerDependencies: - ajv - '@redocly/respect-core@2.10.0(ajv@8.17.1)': + '@redocly/respect-core@2.11.0(ajv@8.17.1)': dependencies: '@faker-js/faker': 7.6.0 '@noble/hashes': 1.8.0 '@redocly/ajv': 8.11.2 - '@redocly/openapi-core': 2.10.0(ajv@8.17.1) + '@redocly/openapi-core': 2.11.0(ajv@8.17.1) better-ajv-errors: 1.2.0(ajv@8.17.1) colorette: 2.0.20 json-pointer: 0.6.2 @@ -27573,7 +27571,7 @@ snapshots: node-api-version@0.2.1: dependencies: - semver: 7.7.2 + semver: 7.7.3 node-domexception@1.0.0: {} @@ -27611,7 +27609,7 @@ snapshots: make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 tar: 7.4.3 tinyglobby: 0.2.15 which: 5.0.0 From ab298cbb3b10d3b66469f71e7797df22de1260fc Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 5 Nov 2025 08:09:15 +0200 Subject: [PATCH 04/12] docs(user): how to set data dir on Windows (closes #4853) --- .../Installation & Setup/Data directory.html | 171 ++++++++++-------- docs/Developer Guide/!!!meta.json | 30 +-- .../Developer Guide/Architecture/Security.md | 4 +- .../Concepts/Synchronisation.md | 2 +- .../Developer Guide/Documentation.md | 2 +- docs/User Guide/!!!meta.json | 62 +++---- .../Installation & Setup/Data directory.md | 24 +-- 7 files changed, 154 insertions(+), 141 deletions(-) diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html index b5a486848..ad81d00c1 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html @@ -1,12 +1,12 @@

Data directory contains:

Location of the data directory

Easy way how to find out which data directory Trilium uses is to look @@ -18,30 +18,42 @@

Data directory is normally named trilium-data and it is stored in:

If you want to back up your Trilium data, just backup this single directory - it contains everything you need.

Changing the location of data directory

If you want to use some other location for the data directory than the - default one, you may change it via TRILIUM_DATA_DIR environment variable - to some other location:

+ default one, you may change it via TRILIUM_DATA_DIR environment + variable to some other location:

+

Windows

+
    +
  1. Press the Windows key on your keyboard.
  2. +
  3. Search and select “Edit the system variables”.
  4. +
  5. Press the “Environment Variables…” button in the bottom-right of the newly + opened screen.
  6. +
  7. On the top section ("User variables for [user]"), press the “New…” button.
  8. +
  9. In the Variable name field insert TRILIUM_DATA_DIR.
  10. +
  11. Press the Browse Directory… button and select the new directory + where to store the database.
  12. +
  13. Close all the windows by pressing the OK button for each of them.
  14. +

Linux

export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data

Mac OS X

You need to create a .plist file under ~/Library/LaunchAgents to load it properly each login.

To load it manually, you need to use launchctl setenv TRILIUM_DATA_DIR <yourpath>

-

Here is a pre-defined template, where you just need to add your path to:


-
-
-
-    
-        Label
+

Here is a pre-defined template, where you just need to add your path to:

        Label
         set.trilium.env
         RunAtLoad
         
@@ -50,76 +62,75 @@
             launchctl
             setenv
             TRILIUM_DATA_DIR
-            /Users/YourUserName/Library/Application Support/trilium-data
-        
-    
-
+ /Users/YourUserName/Library/Application Support/trilium-data

Create a script to run with specific data directory

An alternative to globally setting environment variable is to run only the Trilium Notes with this environment variable. This then allows for different setup styles like two database instances or "portable" installation.

-

To do this in unix based systems simply run trilium like this:

TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data trilium
+

To do this in Unix-based systems simply run trilium like this:

TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data trilium

You can then save the above command as a shell script on your path for convenience.

Fine-grained directory/path location

Apart from the data directory, some of the subdirectories of it can be moved elsewhere by changing an environment variable:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Environment variableDefault valueDescription
TRILIUM_DOCUMENT_PATH - ${TRILIUM_DATA_DIR}/document.db - Path to the Database (storing - all notes and metadata).
TRILIUM_BACKUP_DIR - ${TRILIUM_DATA_DIR}/backup - Directory where automated Backup databases - are stored.
TRILIUM_LOG_DIR - ${TRILIUM_DATA_DIR}/log - Directory where daily Backend (server) logs are - stored.
TRILIUM_TMP_DIR - ${TRILIUM_DATA_DIR}/tmp - Directory where temporary files are stored (for example when opening in - an external app).
TRILIUM_ANONYMIZED_DB_DIR - ${TRILIUM_DATA_DIR}/anonymized-db - Directory where a Anonymized Database is - stored.
TRILIUM_CONFIG_INI_PATH - ${TRILIUM_DATA_DIR}/config.ini - Path to Configuration (config.ini or environment variables) file.
\ No newline at end of file +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Environment variableDefault valueDescription
TRILIUM_DOCUMENT_PATH + ${TRILIUM_DATA_DIR}/document.db + Path to the Database (storing + all notes and metadata).
TRILIUM_BACKUP_DIR + ${TRILIUM_DATA_DIR}/backup + Directory where automated Backup databases + are stored.
TRILIUM_LOG_DIR + ${TRILIUM_DATA_DIR}/log + Directory where daily Backend (server) logs are + stored.
TRILIUM_TMP_DIR + ${TRILIUM_DATA_DIR}/tmp + Directory where temporary files are stored (for example when opening in + an external app).
TRILIUM_ANONYMIZED_DB_DIR + ${TRILIUM_DATA_DIR}/anonymized-db + Directory where a Anonymized Database is + stored.
TRILIUM_CONFIG_INI_PATH + ${TRILIUM_DATA_DIR}/config.ini + Path to Configuration (config.ini or environment variables) file.
+
\ No newline at end of file diff --git a/docs/Developer Guide/!!!meta.json b/docs/Developer Guide/!!!meta.json index 397bdcab4..63e4d0cc4 100644 --- a/docs/Developer Guide/!!!meta.json +++ b/docs/Developer Guide/!!!meta.json @@ -15,6 +15,20 @@ "type": "text", "mime": "text/html", "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "T2W7WCZrYZBU", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "cxfTSHIUQtt2", + "isInheritable": false, + "position": 20 + }, { "type": "label", "name": "label:shareAlias", @@ -35,20 +49,6 @@ "value": "developer-guide", "isInheritable": false, "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "T2W7WCZrYZBU", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cxfTSHIUQtt2", - "isInheritable": false, - "position": 50 } ], "format": "markdown", @@ -817,7 +817,7 @@ "name": "internalLink", "value": "Jg7clqogFOyD", "isInheritable": false, - "position": 20 + "position": 10 }, { "type": "label", diff --git a/docs/Developer Guide/Developer Guide/Architecture/Security.md b/docs/Developer Guide/Developer Guide/Architecture/Security.md index 61fdc7377..f1ef4da77 100644 --- a/docs/Developer Guide/Developer Guide/Architecture/Security.md +++ b/docs/Developer Guide/Developer Guide/Architecture/Security.md @@ -383,7 +383,7 @@ for (const blob of orphanedBlobs) { **Process:** -```sh +``` # Check for vulnerabilities npm audit @@ -424,7 +424,7 @@ npm audit fix --force **pnpm Patches:** -```sh +``` # Create patch pnpm patch @ckeditor/ckeditor5 diff --git a/docs/Developer Guide/Developer Guide/Concepts/Synchronisation.md b/docs/Developer Guide/Developer Guide/Concepts/Synchronisation.md index f97bd3c4e..45a520cb6 100644 --- a/docs/Developer Guide/Developer Guide/Concepts/Synchronisation.md +++ b/docs/Developer Guide/Developer Guide/Concepts/Synchronisation.md @@ -9,7 +9,7 @@ Trilium implements a **bidirectional synchronization system** that allows users ## Sync Architecture -```mermaid +``` graph TB Desktop1[Desktop 1
Client] Desktop2[Desktop 2
Client] diff --git a/docs/Developer Guide/Developer Guide/Documentation.md b/docs/Developer Guide/Developer Guide/Documentation.md index 4da87601a..c11d3164c 100644 --- a/docs/Developer Guide/Developer Guide/Documentation.md +++ b/docs/Developer Guide/Developer Guide/Documentation.md @@ -1,5 +1,5 @@ # Documentation -There are multiple types of documentation for Trilium: +There are multiple types of documentation for Trilium: * The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing F1. * The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers. diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 86ddd9589..c0be59116 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -25,56 +25,35 @@ { "type": "relation", "name": "internalLink", - "value": "BFs8mudNFgCS", + "value": "gh7bpGYxajRS", "isInheritable": false, "position": 20 }, + { + "type": "relation", + "name": "internalLink", + "value": "BFs8mudNFgCS", + "isInheritable": false, + "position": 30 + }, { "type": "relation", "name": "internalLink", "value": "GTwFsgaA0lCt", "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "user-guide", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "label:shareAlias", - "value": "promoted,alias=Slug,single,text", - "isInheritable": true, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-help-circle", - "isInheritable": false, - "position": 30 + "position": 40 }, { "type": "relation", "name": "internalLink", "value": "poXkQfguuA0U", "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, "position": 50 }, { "type": "relation", "name": "internalLink", - "value": "gh7bpGYxajRS", + "value": "WOcw2SLH6tbX", "isInheritable": false, "position": 60 }, @@ -98,6 +77,27 @@ "value": "9qPsTWBorUhQ", "isInheritable": false, "position": 90 + }, + { + "type": "label", + "name": "shareAlias", + "value": "user-guide", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "label:shareAlias", + "value": "promoted,alias=Slug,single,text", + "isInheritable": true, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-help-circle", + "isInheritable": false, + "position": 30 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Installation & Setup/Data directory.md b/docs/User Guide/User Guide/Installation & Setup/Data directory.md index c2f3650c5..3d66bafe9 100644 --- a/docs/User Guide/User Guide/Installation & Setup/Data directory.md +++ b/docs/User Guide/User Guide/Installation & Setup/Data directory.md @@ -26,7 +26,17 @@ If you want to back up your Trilium data, just backup this single directory - it ### Changing the location of data directory -If you want to use some other location for the data directory than the default one, you may change it via TRILIUM\_DATA\_DIR environment variable to some other location: +If you want to use some other location for the data directory than the default one, you may change it via `TRILIUM_DATA_DIR` environment variable to some other location: + +### Windows + +1. Press the Windows key on your keyboard. +2. Search and select “Edit the system variables”. +3. Press the “Environment Variables…” button in the bottom-right of the newly opened screen. +4. On the top section ("User variables for \[user\]"), press the “New…” button. +5. In the _Variable name_ field insert `TRILIUM_DATA_DIR`. +6. Press the _Browse Directory…_ button and select the new directory where to store the database. +7. Close all the windows by pressing the _OK_ button for each of them. #### Linux @@ -43,11 +53,6 @@ To load it manually, you need to use `launchctl setenv TRILIUM_DATA_DIR Date: Wed, 5 Nov 2025 08:19:25 +0200 Subject: [PATCH 05/12] docs(demo): link to old documentation (closes #5211) --- apps/edit-docs/demo/!!!meta.json | 5 +++-- apps/edit-docs/demo/navigation.html | 2 +- .../root/Miscellaneous/Day Note Template.html | 1 + apps/edit-docs/demo/root/Trilium Demo.html | 16 ++++--------- .../Formatting examples/Code blocks.html | 4 ++++ .../demo/root/Trilium Demo/Note Types.html | 21 ++++++++++++++++++ .../Scripting examples/Task manager.html | 5 ++--- .../Tech/Linux/Bash scripting/While loop.html | 14 ++++++++++++ apps/server/src/assets/db/demo.zip | Bin 915850 -> 916285 bytes 9 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 apps/edit-docs/demo/root/Trilium Demo/Note Types.html diff --git a/apps/edit-docs/demo/!!!meta.json b/apps/edit-docs/demo/!!!meta.json index ce5046fb1..92266fa4b 100644 --- a/apps/edit-docs/demo/!!!meta.json +++ b/apps/edit-docs/demo/!!!meta.json @@ -1,6 +1,6 @@ { "formatVersion": 2, - "appVersion": "0.99.2", + "appVersion": "0.99.3", "files": [ { "isClone": false, @@ -2700,6 +2700,7 @@ } ], "format": "html", + "dataFileName": "Note Types.html", "attachments": [], "dirFileName": "Note Types", "children": [ @@ -3878,7 +3879,7 @@ "title": "Scripting examples", "notePosition": 350, "prefix": null, - "isExpanded": false, + "isExpanded": true, "type": "text", "mime": "text/html", "attributes": [ diff --git a/apps/edit-docs/demo/navigation.html b/apps/edit-docs/demo/navigation.html index 1d4d5d57b..4d1371ac2 100644 --- a/apps/edit-docs/demo/navigation.html +++ b/apps/edit-docs/demo/navigation.html @@ -270,7 +270,7 @@ -
  • Note Types +
  • Note Types
    • Canvas
    • diff --git a/apps/edit-docs/demo/root/Miscellaneous/Day Note Template.html b/apps/edit-docs/demo/root/Miscellaneous/Day Note Template.html index 8f2333bf0..a33b14490 100644 --- a/apps/edit-docs/demo/root/Miscellaneous/Day Note Template.html +++ b/apps/edit-docs/demo/root/Miscellaneous/Day Note Template.html @@ -14,6 +14,7 @@

      ☑️ Tasks

      +
      • […]
      diff --git a/apps/edit-docs/demo/root/Trilium Demo.html b/apps/edit-docs/demo/root/Trilium Demo.html index 206054b92..b5b6672d6 100644 --- a/apps/edit-docs/demo/root/Trilium Demo.html +++ b/apps/edit-docs/demo/root/Trilium Demo.html @@ -14,11 +14,10 @@
      - +

      Welcome to Trilium Notes! -

      This is a "demo" document packaged with Trilium to showcase some of its features and also give you some ideas on how you might structure your notes. @@ -26,22 +25,17 @@ you wish.

      If you need any help, visit triliumnotes.org or our GitHub repository -

      Cleanup

      -

      Once you're finished with experimenting and want to cleanup these pages, you can simply delete them all.

      Formatting

      -

      Trilium supports classic formatting like italic, bold, bold and italic. You can add links pointing to external pages or  Formatting examples.

      Lists

      -

      Ordered: -

      1. First Item
      2. @@ -56,7 +50,6 @@

      Unordered: -

      • Item
      • @@ -67,7 +60,6 @@

      Block quotes

      -

      Whereof one cannot speak, thereof one must be silent”

      – Ludwig Wittgenstein

      @@ -75,9 +67,9 @@

      See also other examples like tables, checkbox lists, highlighting, + href="Trilium%20Demo/Formatting%20examples/Checkbox%20lists.html">checkbox lists, highlighting, code blocksand code blocksand math examples.

      + href="Trilium%20Demo/Formatting%20examples/Math.html">math examples.

      diff --git a/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Code blocks.html b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Code blocks.html index 6827fa8af..214ef212e 100644 --- a/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Code blocks.html +++ b/apps/edit-docs/demo/root/Trilium Demo/Formatting examples/Code blocks.html @@ -21,8 +21,12 @@ language, should that fail it is possible to manually adjust it. The color scheme for the syntax highlighting is adjustable in settings. 

      function helloWorld() {
       
      +
      +
       	alert("Hello world");
       
      +
      +
       }

      For larger pieces of code it is better to use a code note, which uses a fully-fledged code editor (CodeMirror). For an example of a code note, diff --git a/apps/edit-docs/demo/root/Trilium Demo/Note Types.html b/apps/edit-docs/demo/root/Trilium Demo/Note Types.html new file mode 100644 index 000000000..614d566bc --- /dev/null +++ b/apps/edit-docs/demo/root/Trilium Demo/Note Types.html @@ -0,0 +1,21 @@ + + + + + + + + Note Types + + + +

      +

      Note Types

      + +
      +

      T

      +
      +
      + + + \ No newline at end of file diff --git a/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager.html b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager.html index 1b4822074..266520b60 100644 --- a/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager.html +++ b/apps/edit-docs/demo/root/Trilium Demo/Scripting examples/Task manager.html @@ -13,9 +13,8 @@

      Task manager

      -

      This is a simple TODO/Task manager. You can see some description and explanation - here: https://github.com/zadam/trilium/wiki/Task-manager -

      +

      This is a simple TODO/Task manager. See the Trilium documentation for + information on how it works.

      Please note that this is meant as scripting example only and feature/bug support is very limited.

      diff --git a/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html index 752bedbd2..39ca1e373 100644 --- a/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html +++ b/apps/edit-docs/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html @@ -16,18 +16,32 @@

      Documentation: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html

      #!/bin/bash
       
      +
      +
       # This script opens 4 terminal windows.
       
      +
      +
       i="0"
       
      +
      +
       while [ $i -lt 4 ]
       
      +
      +
       do
       
      +
      +
           xterm &
       
      +
      +
           i=$[$i+1]
       
      +
      +
       done
      diff --git a/apps/server/src/assets/db/demo.zip b/apps/server/src/assets/db/demo.zip index ebf3f8a7c00ea48ce5d031a2b5e3c48b9c5105cb..b685648200496d9bd6e99fb8c9c91bbbdf112c72 100644 GIT binary patch delta 26619 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 delta 26099 zcmZsC1zeQN_dX5F?jj)FjdX~FbV_$OlF}j}AS@^-()}VGA}s>KqDX^)N{J#3(t=1y zNdDhlyne60`@eoJzV9>VJm<{JIdf)S#^!yo=v^_mt_C&^83qCPXI#lB3H}JPqb99@ z93eJC&@r_bKAm&dT$N^l);sk1V--cAIs8`uUBB$V`VqeN@MAL7f?&? zv^h@Ivo(9YKa+P<9sZzUO@D|>irfC|G3*B?LCV{64!KV~i|hA(ogAqIdKz1#DPj$^ zrue~1b}xT^f>Sh}S~edZI6v_8e0GG`-MkBNg*^92_A74Hwf7%ZcB-`TX%3z@$xGaj zp=Dq3b4dt$=3PRwMVdD7_J|;=eS^qgZpO0`{9t~9 zSF7+lUa^=%F#sWT5vN*kPrhowFWd-moQThVQc4QB<;9*-E; zA@+nL+FqqJJyL4jw%<@POnA+AA9tM9GrCQ9;gXYG*3RHSW*pEL*ib6^!};+Djl=Cq z^Ul*1vyG!x7T-rYH9y{5rmDl^I-n%qE?n)f+hq=+`8km6v6eJ(_q$>3&_{+Z;%s-# zq!lQ73U7EE3O`iYB7Fnzk`OIY&RguRR2)J0_rKV?&%OUr`?c?C3iISACS9pAlco}N zXaC)FaX3m(p0bVL>>b`)_p7A|#n}C(%7M$N-IWr9ieFjs++;@Ibs~Ll4P?_!8qx;) z&bLi=I5r{tbHwZAK~+(4F~GPqouU4T0Y%*e%nQ1d9_;VON$&bhKTATap-l7?vEt^( zB%LiiURBan2Co(82=0eld661sSziC_q;2-WbwnySD7)86{N5_1fm2D~)Y!9$sB29X zdwzE_o8EJ3dn9((lxkUBCF7U!Psr}m0J3(~tf$s?y^ST^qLwu7WD4*7a_AMkMj-R@ z?Hib^;%i=hT-|xeaU~lnd>7<{9_y zZe1a-w&C>F{>W(B`NY}JOe4aRjZ3>(x(f+S_deLnpRepj%7(a{ zQAhe1Pd43KKjp8H5%Iemz|Od=Ae8Uc_UoYgp!M*L1#D!A>M4(umYbGCStb@OBah6l znKeJlA$HzjpLSU4gSS=B4qVlP5uZZXFdZ2)#l82LpNjn~x=ABlr4yz$p;kkzPdYpo z5(vvC6v^ks6}T<>%y6ya@o;~Ddj?`EzE4{m=Z$mke1_+!9uMaU~N(%I3qizP0%LU1rua9A*Khn8H-@JH?2pcMnJ+ zzq6!p%;#*}<#lVQ>`c2w{6%CciMO7Xv6NkGHkGrlY}&Z4xT_trR@_*;@ddN@EByR* zhC*Y*evEIli7$kBd!5*l1RSBiumm3C$|uK*=MFmiL{?^8X0Pd5!I8=H6lC%(HA#N34a}wT8vNSp%QTt16$`A-F*ml~ z9vgmqfb%Bf>n@88H$^mVOJYAo^o^<8^1X{svvtYt1hz0ix^I>zwMnFhFK~z(5>t%D zv9^6PD7rh#>*Ab=OZo_-cOEeoi=}0JzH&}IReZcJdwvjA(OJfkMZ5V*Ex{(Se-YY! zQ?J*lnHbZim+^K__e~B!Ao`bn?%>i>mOKqff(+L8BKcoA#@N~(Z!A}Zj|>?4KTYZQ zS(Yv3*48TiER=b5VlJvl*aMe}c9TvWjuSN=d&MC}pBd<Uy7JR>nMSedJ_m|J^Xh^v zI03oar%;oJ+kCH(#otEe7U2WeiziK&XBqe;iVr@&OpBIK(b2hgO~DWs7n3;Mnq~yU zuDWA+>}7t92qkW4zd^(UL^8u5hMmQ$p#mY72AyKF?|Y_qT{6yT&z+0bYOZrQE9MWq zt0KK~hjYCfC>Yz6jC;~cD{NoZ!8-poD1iQ#`={r@I|FuK1s;AI{?^>!7jKwbDko`2 z9xziVQiO22l7t(;xa6na*y1h3(&a}o?BAIqvd*d)l>-y>HyUwb4?`4uNYa+$SHUVI z)G;x4k@44F&lGZ4+8rA;F>ii3@A19>k43i2$@o?F6WHi&3V!RQW2e@`iJ)e#{Vx$8SI(8{YiiSk!pVkx!4G-k z>)k7e9LcFNVLz8PH&hVLtOx!*mkoHJZDfO*71>$RT@(h2p{W!G!Gasi>`&8=+bPxj zJmC8db8YtdO?}OJ+%FWjBko(<%*;$or_?p=nx9k!-hG@q+q0U&$4E`${ARgXMTWNi z3w$!Q;Bw=XcZvz4CRT%bN-?7o7Q7?{&QyzV``XP&H!zZbZ;O>JA(nn=xk@7a#&qRf z&5epLJt>|wcV~&MJZiL@dTxB&*hcMnt(#oE?6Bch zaWv+9Xpgzz5F_k}v!getl-o@shJ>7{6sz6&th?rEw=1LLky|+>!3t%{r)P7wIykY- z5nt(9C?aY)JUx0CrOLeqT3>)x!}LFT||oSsZq z^TW@sZ>&eIWj&wt-5^>ESmjc{JK7Svo$HAZ?MTtgbh=@5zIvaT8&9bSgC1W&n7CLA zN2F26Dk^YKqef8E-jF-f9G47Q=O(h$k&UQ49lxS@levtAn=~h*el5w%GVEIsizSTT zpwftdy3%|v+F|4g(dTCCujA=B-G#XpUsIq>$6fZ&9?RFs1tWe=t^r$2)UWyMkl~ds zY(_Eq4OjeP^c%0FLAmLdB@}$Owl@VSTNbE>bjABKT=;z(bH7dd&uJ-BV?L@2+ZaHo z(mgHph?uV}^^Dl5E%i#pvVY2J{utXeHYD7IO(6d@8UE#94&|f=)ey%uLIOwAx(DH9 zapCM%?`rg}RBGD&e3*3og&A>xT5T6RkzJB#bX~sBr+*GtiYJl%RI}EHmg&94)~%=U z5VLUEJxZn7LU@pmp|?w9MAk@kRnKo#+pD zB4Eb5Q<3rRD&s31GcuRHUW)hP5*gY)ZsmuD2!@$_MwS;Z_3S6q4BguLDt#l$x=TSI z!Fft`>9|%}19L{mc|koF~2pm!~Vo%H-s?d=avB8+ttWN)^K>-W6e< z?)1~1wLDSeky_&Xoea?hfsouEYWuN1DK!OY>nk~~@~Sn?5sB?<)Nx_YZ%C-j&j=B6 zv&DOG{fv3h)XI-6g%@X4_?-W&K};M9d6K{-->eV}$GldKm$;uTR&|Tv7I)UP3*)U# zmW>p0Sq`)C8{;9hH}fjTVimW^CvDsinKvc*mG5cm?{mHm?f$-eQZytqxW;Q2DkEqR zHyo9paqqAyM);VxbMxfQfh8ST>T{w9#g7$ABMI&&%2|kEJlmHLDi0i$tZ;cn;$ysy zXIs$L+u6HTYFF14o>yWA_SV~kZ@2cvKBJCFT4u>=r@AFvOC3jYb%Dx{D43D(9ij@h zas2WShlrel(2kCnp(?bm!~T4fcU3OP7*o}90jpL#{cWT{!o1a+u+Miqq~;Oco%bsh z0`Go*6B`aU7=IN;GH{qhq5fsVY5V7^GTBj$$MO2f;m$IxeL8qDMPk}6L_&!<1=NzMi8(nlH9gex8jq_ok#U#^+%gYjk~vL~01 zgC_`nGP64iAY?a4h5V+q8N;cJvc@pS4uI54kpJeBE+y^I{&Wc5EOP8L zv|!ZQ+Q>Uix`Kd9<`#*tsm=rxvFa1HKBzK95dV6}->`pzvHrM7v_Jewqe|%aOOuVA z7~PD1W6|S=bPeKBHp?%qY+6QKa{)J?-_Ff6?D6{mmKgijt*iS#({ne;5S}e{_T0;v zyE!K`q`8bH33l2iRFo}KxCc)Sa=%T8jNS=d3jVP$iSw~fwc6M+1LGDP2XVL9oYnTy zpq8`qO_b zTL?=x@o6KrhWsS{%@`ksKFUKrVwwC+;i~I`%1xTz{0laH9Fo@NEf}7cYi*s4JbYd3 za?WKx(Re%Uf;WUYCGBDh#! zZA(>lsK$eZB#n-Lo!^X*emJ|$e16H>$I|^?mp-H zq3CF_n>(Dfi*>ZrO1OF)9e0i!*Vo!4$DpA2m|*xkUg3zwI$8%JMz0_2#0AC^H>)1JggcHTUZc+yj~^AAIS6>)KO*jDs>Vz;Vc$VX zXGis5I3_}KS=an?MSG5sOohoFS*N%H9#5>v#75PUZdosV%P-$%E<;;0@}PL0blAH> zNNT>5(ZmKUoM*jSCjX%$Vx;H_0riJY>1MaEsHFAjY{#pJGfIuz$=d#;ZwgDj77Iy5 z)FJd7GU0>Chi?;DRZa2EL-JVE&xiPE;`~fB?x~zV5PbONjM9(L+b$a`!$LBUH}I@J z2|3UJyQz79Dd?3=-}?J8RdVCo%|@pCV~y9eWfEfEO`Sd+RywG7ijLXR_A!kI_hB9) zCu6+lt5s2`nVRJmqZyq++~w69Q;JWH+plTopFg;9-PGQ~IDCQp?oWd!)or~_CuY%o z?^(mD*{$8BbJ&lbGA|$o?rokryvP+f41G4;99@fjq^Ia??~ZA)tDL&YGhGNjI7tu2 z^d_`CsL#6Duh47znOA@JoG3xXPWQR#4G#B!@~e6n=^wOisskSpvv8yB`{l@jV^5ak zI1MsUl|j#EX+lDgf@4c;Y1nNhX({!WFl-cDD7fM*&F+gPae7iCP9{UDB-V|(gQ63H zBVfzWX|;e?-@SYIIs7~ot$In=UHVP;mW}yqW;mk}Ut~Y-JPYrg*_oM{+a4Vs2{dsR$%<^cJ)dmY zJ8zn7m=?&NSP@>sjHqZ2onmrWSr{~lyi=fI0`sZ~=pH5;!`)Ax*e`0DExWZTU|yPr znRRQiWD`GIA@F<0&X}Ljr_f>fv~LkVw-JdxgtNuwMZ+U{*B%8U5`t&dA7N*o$ul_9 zWLGF?KavJ^agx@tvVx7SnJqckdRz6z(U*EZ?`w{|7Faqc6N-qy&c?Kn_%8Rzh!a;g zpVQDZ_J?sPLwLI0cF4-{V9V+D1{`-LWKQPw>*Vrg4f}g0O3SQC`O>iO4yK$Bt{;tK z^RBcoAGg0G*B0%0_`cayo$>Y8NYX+UrM73C*GMV>K67T)y;=O&@}I@3b`*&fFsiQ1 zsJG|D4eVD23Z@|l0ui%plcdSZyE3ywczieRwM^zuvE;?2T9ob?0qbKkUp+=5jH3-) zJX~<_;)ZhC#Ul+qlbQb73iRY0%5~ZD!!8VZ`LR%z^CeEx`Aze3ss()ro_S-GiE%%P zuj2m3O&);4QeuYx`1#!&sFS$hR`bziy}RPg(h}GvzmC*-5R|5gvGYs#()XgdFI%1z zTk;W}X5Fq=eQ_PJY-2gqi6Oe?QbUfXl5zWr-;>m9pPB?tmdqBOvF0^tMX zN-Ou;#*JCmOSmihbWE-;ls`OUl709ikd*by=c`_~u6lejv_x5x>%r zf!ZQONIQ~`@grI&?-hmYNNYXP17Z;|L3CQ%WbaJY?sL91UD$tDQnh^dleY4=(nl;nL}ie1m#M1InwfA%hd4L1?mQ| zp@@P-=8yW;m4VkfOgU=ZJuW}{X%5NF8Xakz(21?rO#5`j46e>IFtLBRIjUYtbz6!n z*|{-xL&}zp5fS-|-EgL+RUyeQ_T|-H$)Mt$?mK3sosZ~bbLf(-+22W-tracFnC}!h z%9TpD#y>0y{khvNeWke zjH3^401bF_93!JgnV3HXKC_)-+f=O!2X|N!&{`42z&-VrAhi0>6gf(6yx30i5q|bI zlHMCLCsE~yN!$lRl^Cjz|L_IXqAh6?Ax@C@Ke2VA@?JV?A6C9cxe zIUh&zBdz&EOBy-(X^oG}o3)K*%|hVui(3)`byvlLsSuW$p<*E)BoLaI*fGB5l>-_Yinxm~O+LwH8T`Wp(vhAA9)=yl(PcI_97} zOLH3^F6M`-h<+NR^~}?fNwuO(aYY<6x)^4CF?!%Z^s+)^Hx)_12-Ph!kEMA?MldP## zv9k;Xwd`v91ZK`FcD}OI!NH3wW2^#kwz#eo(wpZBKCFE&|3> zD8^LMzi>2&3g#K{jNhvc44Mhi$bSErH(mlqW>y37jQDP-SkAyhBblmn`n^i?N)AaJ z?eTYq)7sn?$&3EUext$Bi8TR|i1xC6tJ((x59l`IMQPPG)NoJ-#P6rw4Y&d zx{PSD4s6xP(mGir(_u_CyCn6#xhwX0`bzM4(Cj+TUo9+`7KQ?#Ko~6lu|3(xx%d{32njWf6Q8PPy9CAdy>r ze9Sl$39XIr5xAjutiy2PEY2!N|`KC=C)~+%X3PgCzMD3Vj z{yd96S(R6b$)8SCkL3=4a1z%_{D>)pRrb7 z5hHM&aISD<9}Pnz4a^vMwx&dH%*1~RkF?qT81wV%hAh<+CM!qE`*VpO96F94D%y~_ zUXnSxGf*v2LImISad^_Oeo5|Oi)Yy5(Sta3n|V$V#qg2h^ZJDW-;5-B=d*-Mp{Fv3 zE9cm{8u$d`C$a{^LKqka2ZGoI5to$)_}EDg)V2xOB46V@@L@C!NOh4Ygoe@b9<<*i@qde3 z?;k4=rR?2hC{sKL7b=}vz0;wFqeAyYlJ%*}dZ6<=*?pZYp3&>j;H>IvbTNA=h^v%{ z!L7h-8`vX+SM+r+d&S9rWoAqTm_fyAbI-eoTCYhs1-&yfgGm+skKtW~UsPOYl` zF&jHOOE@%4m;J7(kW4c9-BHXQ5|}q4dt0&Uh%q`8BB*sy)Qks)|bxgs5C;V%=}8&=Bdo!Srcj36fx7N%qVVQFs@@%2SzNXvww ze5hxiLh=LA%T6|P()sG*GZfJBb#Isb;5UBqXIb7}6Id|O3Br>8;RR`7-QK&&t;wo} zlMc)}&u(j-$qzqolBJH&zhd`G-0BU&V~9Z3zo7j2ZT!M)M$wJ-djWh3irg>j>KKm7 zO!dTe2w?2jf3{yE=At}E39i!8$}V}8H`{36;PK}B_}OP*lI}Y( zkN$$aP0@Af`;i_x+O1_}<+u>@pjq**%P@ic+_g^%Mar{OC9SgOg1y_L1$s*R8wi@W z=SAG^yFTU24m*OSsqLh2?&v#%QssL?z!fG19q-vXEcC@lJp{k;#;WLqc;VeT z(>8UkODrkbV3gcz7ZmBWzGou+QfgRI%L=!2$$9r6`HVu%kPSCRh|eXKYa>~iCJi_4OGNTrX%5fHo1qCSB+tFJ^%NS|<==i3 zSAVCK{X*OfcrQLfp6YH&y_kE;LDK89cs~AG6J;QSAIau>spL|)8)R{KN$GuNZns$7&G;5Hv zC1=xmg1u?(PfUJ~bik;zQn5grlU^qE#@qfrJS*mXlkk@FA{n@=c5cC)ujEVS@87f4 zrn0)R^PkX5_R@3Vb!SO))DGGPb|+a=9_ggFs3cN_eg?Oa(pm%M$itz0eO&fUWj4(O9cYW~xO zFTCH+A(jqy2d%5Js5O*9)q{-%Tr?Tr80ad1o5iLH{A}*BE!)7d(RjBteiEKY|f;};ag{KYbcU)M$wl1buCw)J)z7EAoBgv9@qJbl3_YAK*yTTBifh;v z@lJO=@XqgPZ022RVn2Mi+I(_}Qe11^V{xxtK$2kBhA(?7!roe2x>o9K{uKk$gQ zjf_`@n=^~}wBb1uVQTW%AuLmhG2<*?U$Nq29p+SD8B($D-S2FxnH9u~J&ll-c6w4W z*Cs{d+sk}sw@L>4?JXyj1JN=}3tYrurMzk_^XJhKxeC?uN$GV3VV(h!R9RNmqR*x>JO$qF>yuJEtY#BkYMWzs>MLKng zebPL68W!I5BgUpqcGlgyyAzoHk@sw1oJcF@>Um@HJDX&=UIA@e2iI@Mbk>g7ld07x zZt0s>3+Q}h&6Y;WH2JZTD2PRRb2Z65=M0GB>`BM@u^W6Cr<^Qhn0VD5=cvu@L+AMP z3oj#1^Ov1Q)n1*}%gS|DX1uL~LASqeTIW(YRkdon-f9dEBt3Ftsc!-}6NYh<*R*0f z$sgiI;JUg>x#PE%(dVVp*Jf&kSn)PJ%MI9QMP=VQkazwD3j@Ok%)tNMyFulP*JB7e zU+TuEWzZ>7M>F@}BK`8eUPEV)Wd(#4(6xfV(N}g*n;#4e)SgFnT?m-TfM0_CbB_m= zytebNE;0(tJ9INVC3hZ1B=EP@U+VvAtZP}6yh!VlCC7`jK3USJt6q(}c#&OKMf*`< z43Pl@VR+EGk@e6EBj|M2ErMT3$=iUSg?L@yptD7APGB}0PF4r`0lAP2m%PBG{&nvN zmLN!kVha_fqFxNLl}VWT8izw5FprvO$2yoL!iiJO^D}3m%$k@LW@4shPYlp z1J0;Xu!7J5pNiq6z%OISC8U8a#Ok7T+ZG}VR2x8G$TK~N*9GQn06}*T*=GRpMMFqA zBZ$kz6F4Kt3$crdu!3*`)uxb(g?EbtTxvmEoWN!&oU(-8>|!R6Oy-cM7ZWS5#0s>P z!Nva_KuA6-NIQD*MS||MT(DnE9?EUG2M}7orUH(OB(aACU$iDTKpfHiJaB-}qnVME z&X5&aG=}-$x3d69Cxa}HfP|p6Qo>|efvtE5DbnU4#N&c!@DW4~rIbP=1GYVfGb4?o zAQTsEV4kR>+JMk+P;?_5^7t`C`l4~DknlGa6a!(qzzSj^2H4=uHsnDpWCRT%`{N-x z7f+0dkRnV}(L;78LFCa-Kn)W}JX8zE{a2cyjuhKsEP!nagc?PL>I7Pd2w9Z^L0l-x zy}7_}fy6pE0br8`AwbttR1Z;nC>Rf!kp_8*g*K^^0RgKgNDW+i4!Hs(zJyc$nE@0E zPWeBIFTp~2{t|u(QLHEJMkhqPf&1&yj(CEZ8UxEK9}7$j-klMVk=z`3FbsSsH5aJu zu?0@w!xp{~SozjB_!x@`P{r8YX=ZYNKGgX(`qcs9irFbPuG5Q4uOxqFj0r9I;=k?Z z$65ZW?G_*E;xmp|XS^i4*IXe#y^yQlq5t^+JMhy2xnFlYa=m(TZ^bFL__X?VQBKH# zy8fk67;e?K+8$*c-&+XpV8d8vV`rlWFU2>4N}uN2^`#IK0|OiT-zz;T(qeNUHhAc1534~< zI~WuIQv>*8s2)rw&ZiK{i*S-JhRCADzzF^)4t~qx1Az^2GUSJ1$fJt@GA@P4{D~xF zYbk^f6CLv(${=wUY+&)Yj*>v<+gu|Y4oEe^36Uce5Q&Ru1Y^(>`yaOy(GQtI;K~8Y zQXtQ3Achx~Y}Uc-05M8r;!DWY3k+O-{*h~dj9u6R=>&nW*KjzJ@)hJ8Cge}K0>Cs8 zM`tkDeNgQIArx8m1~P>%8_1})kSKR_?vu&00!(k<41ZF>8B7VAtAvf%-~*CIgiscO z?F2qqN)uvZqMiUvZ*Wnadjn?z@}vpD#a@O`juhJ!6#1b`NQ{Yo!qg|UB}WmUH<~Ep zbU=|aVI>+G^Cpx9(p%wF$TAl~7(TY+Ut(TuUuRp9pE&~rV_rwMq}u89__w&CmaeaWe_H!@D$Wi{tt|gY`@%e$*0zw) z10{t78H)(eV}=?>puU1|9sLGYl;7%U-EfA6D#C_~Vt%m_Aqm+5Oe7(?<^tei&x#yE z5QdaFKh{N{Eex9zZbKe^cuBz{!ym9faTM(4PKMMB^}|$Sh$E9=cQL zKnJ~t0nlDJ4N_>Cu<0^7QqcDEKfu`l(IY}vGz5+@KQPw^=K_w72rmj9mj^iipp*#G z`k0Ul2Q9`!35GBV10e6*RMlvll z`l3F82PJv5tKbx&8!rPP18`zw89kH{ErBjP8w}8k!h@c8&=3*wIwKU^2%riDSh0lB zxlJ?2ii9vji7sHUjItu7S)kMxuV{b3R|3Fu2+aI=RwyUB0nM*F42L3@*r3T5O8~l* zUOkqPORP&~89ti3|@>| z+^u6C!b>QcJibep$@e+$g(b6XS5ob8!jyVtz~VJ=oqg*_UID?oyu}7-;P+(ZfP3}c zJ*_{dYh*ut7Eu4P%qS#SCM&_;hD%KNXc3~lX*0W5=K!58p~j2VjY8yWhPUZc3v+(u z!cu|$Op;QuT$r7}h!<`SZx5=_W=j*Rx#f&|H2x`qX-}- zL5b$eFhcYe4z+>-bKEdyAZ!xct`SedF9Eb%Fb<>!8H@&9J^|22v=%#Zh#Y2mQBuJb zW$1$Qj0%Px1e8a}FlrblI(Je|mO%fgVR8VR9tK6bK}!#tL#v>dXRu8G&}D@Aq1yhD z7C_Q4!Jud%BzRru&Hubk=Yin@0<56ZsHp%)SrLsO=D=k?ffe=>4TI+i(R4Bx5fH`- z!vQwIwm)SP+^wRGfIVeLwLk!;uVBRidwLxc^5@@uAY(XSeHTWpxnZh6-W3=bdI!;P z1y=kAw?sqWLip~Yiv11@CZL}e_5eC;tM<5r{RusN?5j5b& znicRif;0SU2ahV%;3&xhZ5wdnf5kTn2W_KqDnRo({5?AE!1|1)`1e1LL4_fB0BX;hYpaHh7+Pg6f7F!7Y=|?E(+*Mg7s>19~|%(MsUdACXoel@G>&AB`qU3fF9Nr zBlwSt5F0arf4CUnQnw2$EI{ZFFh)tu;Rh%s@TduHj<(>ufQ7|{anvx$1G<}VTA<4U z{t3+t4m{cmC<>~kVF%05(wo zAOkK^+6f+ip##p51)2t&6#fecJr`lO;PPlY;0(wEb9-PlVs(X6p(W6B0YbEZjPykx zk>J3ApC(YpK5$pie!+w8uH`SVyK-Lt?k)(SyNd@r_kw4kjewqCY~}vvEGR{bq__=# zj3z_P06P5M{en{?w|(Ff=mHN6_`&&6)g0VrQvfDMa5kuizPxs)An}_U^Opcce>f*X z$paTTO~3hJp!cI5buJ`l=C$rU-7U!kbk+rwyJ_;blA> z(PWds8ro*=&FwF}Jljoj-w@prxt>qTs<-tSj|LX4d>tp2D2b{O?@P2J^`P*~;ML0u zjkO<1!hLrqtoCX@!;M95E^;xMYF#gWi@?_H3OVOSwXLdN>cIFR%ZSS5EY0!)5`2dt+ z&UYyXypC73@o^Zr_97hDs&0x~E!9cojXi1qcCV(<2FmO-O2G5|WFQm5lN;}4Gboab zk6`W}Tuio@C4$5jFP4~+_8kxIKvA`7r(T5Q23V`Ef}hC#_n``P-p&qy8zHct@|qQP zWhuSu%hDpo56P4(8g`NE$t65Fs3r(h?ybT9)ZGe^Ad=IYziX(f+e)wG`YAM+nDQ6z z8&0f~S)!+zM@-TfesWTnMTcrVN&2n#+}WcJ2NRn{s91LT8EH0}=PbL=`BT}KdPG!u zD64d&NSXH}`Hk?E^n_F}t#lEozwkE~I_zWk!%Sr?E?p=7;H)=P+q6QwMa1n$EfxBB zj%U!^G+9#P>Zqgm;;cT+h@(c;)0e5u*VYxh@w;9+283`Jz5fy4=rV5AZFT)xVPzYK z#(cLRj(l$vv=GzyT~p3-d1H z9Z5@I=ducNj5G484!WFnkQ5Wf-Q6J+?j@3O$izddqcg_Wl$CE0(z7t-HE#9o?wpFu zB9-AYel=I)>BlC}d&}W>5VDK2H)ELY^kx};HkSLLGBrCswmUx7xgw#IQ{BMY>_gcz zJG3$o!e8t|8C6zKD_>o@qaRB}u|&!;IA+P?D*V1W-EB{#^|tt=Rg*~<&Oy*qt(Gl( zf`?4{8%s2aQmK5YAJ_KG{gKnPO=@-Nr=p?4QF71oDo0+YpQgW5vqXf%6$~gj)23F^ zCOi^%p<6406e}`(UEJ%%y^e9YeX~uEI;xtbx(32>IZlH(tt*4JzQ*%tqEKN#s{JWp zsr&e}5N&~Q2Go$^Q#&l4iE3C^t5}9O$#AZ4p$9858ZTv!15vekv#nRkkiBcf5^yJ2 zcdf1{i%Zs;SftCgqCv1ro~fwS84LV!HId?VN(pjF(cGZX{K%m&N-ig5gU1_7Mn)ef zMD$pXo6c8^!Nf8-X%175ftY>Fq3ABP$Sb%9joIyCF7caJnw8`qS9w<75ewgz$16*( zr!^VK|6G|leJ!{N792b~&X{J0c)9uA2CzF1njJsae|RczJaC5iBK#dO9kB29?ggT5 z^ZRVN-MRnlcq>om*>rB*rk}=(1fETyW8oHSui21hYigTnB(9Cu2#vo6b6DJUI?Ftp z9-SlNn`~i`mo&q(H_Roj=jw@Yc!z{)P2d!$!72l4v&|A66e2T4nKX67U1!sX81`pA z(@0IJ_FZp1+p*h6=$C%@!I7gW4mHBC8}_{a;`+xz=03W)m{n?ju}~kVr>XdhDRvKG z?6G{H>ZOJ~2qBbHZVxB&>WdbJxQqt|Wexqf zzi1LE9cDHb`);%o`rnP^$eM^-{Sgz@EBfIUaOQ}evpfOs(VMq5Ab))S*#bfHYGdg1o%8hwod}Jn!@R)t?XQ?; zdJ&6mY-RFlSyJP~5pEIfAC&IR+>nXe;)~|u&L*_9io1nTSN!?0&47(e+_MN$xE8Ug zK$Z5rWjTWn9-@f2em;e`w^+-wfW_@XSK=k*Mur>HJ2U%wVok{AX87KB^Fu+qcuh5} zkB)8_i9fO3L`*@P})t!5~#;qz{YHqM{2-SaB@n$xoH7ntb`hW%2X|-#c*Ayj5&1$)EC! zs|@C^U1i@={!m!a_FPfynj3X2#nF)l%5i4boK>GThGHPL+vbFn6QABa_MdwtSIoJz z_AH)#*z;bwishVzp*VxVT&b!YrhOVyQebwFs?|eJwltZSyhVKxP@^y%EQOm3SqBXwn2&_kq*LY(l>tv2jYKmIQzVk3v*6?X$D^H|PpML9HL7ZmWxE8K|W)EgO zi)Hd<%9~QFdi}H|zd-+&(x}l|^1+7^{pA!Bld>w4D=^HZby99=wwHc^)fw84-xQ|Y zQ?QrzQRejP3+eQ6{q^wkGkf}>`?q8Q7u4&=A?aV#UrZp}yB_I2G1@cP^7A$e;&l!H zZ`?8D^NW^zT4Xaw+J$E87i^lB4;r_QVhPYLevz~oTTVRh+p5~f6f;EnU}6E8U>3BbtWoJjnt&h6E8$S@Se4J~svbVo}6y&tGI#0}a z4Tti7Wk-DOP7}$zHs)P3XDb;%nE5v4J^afGQ$`c~3nz2x9XVt5y3}y+H+Qeib+&nI zbxl1bf(sC9KTkSt{ql>gwc!83L+e1`bb5BJ3Ol4K$nx91=T@lx69&n=G_MN3H%9JS z3$Gh<-3wc= z+B&PWjE5w@45_lqTYq5T%7@&2IRLx5_*h-Y{|w zTQR_ocBqp6>Lq-i^QDXS-c0tk2^0Oyi@_qtT6M)UQN69nq$#1T>tRsGS|3x z7qFxPuZ)eW#F$99x{E6kIJ&uRYxz9XXLM7nokqH-Q1jb-x(dH_)QiBTBAJIo&#>Dl z?{Z!|+#7leU_wBnRCI7JB<1#Z_=pKb2YXl6(?}q^*G^Dl{z7(k$Xbz_d-WXWZHxF_^wmMt-W>f#~IseKVe2aIkigR^Xqbp?%{AoqzAygHp1+SMd386R}Qg!yXP32ZFWbZ{!8WK zfM zJUlgcmEZqxm9UN-Nq*~A!LO0hG)WFbhrQo=*B*puqEo-GY@SZ}WqY*lxTPs?u;cid zuPp0(jg3&Q?=6!*N;duVN7SbE?jL5bsqf6sXg+~Kbz zL(bPe*F>^3pQG>H#36dKKEW_B@>2fK(FXZ40xoiKR9%mRXF!R-XpZ_(B7CmjdTxM47zS68TFS6tx6Jx&9Kh1Bg@M7r&L# zNCl1U$)Sw_GpTSAAO-xvgwp?`0zPp6c|rAYLh+A01KQ;cYKcPYYbZ~l6{%y)j1w?|M zc`5KQFvR}Qp@!6d6fFr}s-j0r{`($^=wFhy6DY})h6&s9HVw850o4E; zhVEz!3Ot+zFkyJKz&`MM#t1V&H1sP9rTfkEr`JFY5^QWhH!=f>8NZ40P%67EL&`_GJA|I-iDj2tcer2_+6p1|Q~%7G^!rT*gI%_%L5 ztbkhPZ(4l(dqOK@HINfaf9nA+GT|I(+VM<~R$=w;=9K5FG=N6dzq*J? z4-99)1%HRa#rIeA+)*^&umMd@g0U(6mq{0tf+pGqQ#NQrcmria3JA=GL(zl4s~L!~ z391Z%>RNxPK1Pd5qORaD{b#(i|A?Z-Yxf6=RTuEe`R#0I4rt3}6NTyl-*e!kXb&)R zLG&pfP>>7PLtWD$MJJZEzBE%k4JL*d2m{6e-CUldiW0t&j-=z&I=U0;e+>|2u(yuupZ-}^}riH z7v4RqUpL;$#K1Vr`oD&)0D*$v-qn9xb5LplbEozH3JpQ=(0n+BzrCX_1g!w?P^b>@ zun>OnJIZVnTI7e1Mj=JNQN|(=y_QFSMq@z~Jq-y2$7NgKIQ63zqrb-Mi#qW21)Ld} zD}t+`2b}jQIN*Ak7bsI1<|Xv)A|T@F|7T75I|E?ae=8Be|EU-R7~p)Q7lXtO|CZ4z zhKr%y9IO8!9&!23n)C2&@BlST>H#9(xx;B5rq`%mV0HG2f; zfZlffCvzSHUrYX-If|wiG`i*x8X&6lce0yJ1b$xz{i^{vbpQB?3f|0r%Y&DvSke7D zdU9^h2ij5uOQPmq@@Hm$`1ydavfqi6PzLs(*z!-)72bapZ}e1H^fPaH%7SZ+54dof z{6z@`n9IRW(cmZp(d8h|pzQ?@dIALPASA$Q`R{&g#HW0*1N*QH`u4xvM)f1{=D(Ew zxw-Y)~{CCZFe-4_edW0h31YSJ^Q-{{F>(1YoJn!cl&sADb^f@2`$fX<8GTGlV% zw3rBB?gd;DIGlsS7*Tsawg@sZ1<+$F&|{~+2J16Q(hnVk)ykgwJ78lMCcE(f@1YI-sJu((vF~7~nYy z3Q`B6f>>x`!2%?9u%Tu*2o|iXStKGM>Z)tmY&5!RMEyOMC`Wb`%dsI~0ee>>)>wiK zOAsumF`8)h`|o?anakwtE*_4|-|pYuZSRA>zJ*i#!ma*J_`CiaD$c>H)b2YGHdEui z1NGq&rn=MOoto@gmi5X|sh4-+#S&lES1@(3M$O6q$SHQ0rto+#B39_oF2z@Rka?fk zzUckrg>aGpj+IN*lNH(vKYrZ>+pSjch^?r5j^^Fq9GG>c^Epbejah3XmSrB|_!C(n zMws>94YOm{u-PCwwZ`a1f7`9OypUO^){|YX(v&e;_08<8o=E)AME}4Kj@R;BrL~Yr zPA;6weV2xS+Uqhr@=(YGFo?@njJ`S-LxgTr(+KpI6P4s@qgOC1)xv5>?ep-!bE9k_ z|9F2C)*C}~lFV<&wwPMJ$>?s$zu0@V+pMym>@eEXQ>0-9Vg+F1938Nr@8mZ^%?Tkp_NZ3phGF_rKCy%%yT zQN(VNyvHVWP+$z*DB>8_IF=7=eRI-kRHrkZI(ZM(gPtE%y3)pDikn!y@@Eumm=BB1 zU|F8MhwN4@n~rN|#TLgAN?fi^HPWlRs!rpU=$CwJ%a1T~6VtIg^LQ4jO295Ui|)Dj zX2#_UUf2_UiG7|F&zOU%DA0_4B2}F}kDN2Vw!siu-}+L3E1dlUi~7>86G|gdg`yL1 zZ~;!9Oa;WzUqsk0Cp{__WANTnjxghAiaV*D1J;~`ZjU!~=#>fSY4}-fLQFXe z)?^oz)uN%Jv!-mhNe~x9U%9bF0~LMQ@|>pJ@f?&3tXZkRU5Z%#$*f=8RV|<~n}|H< zF5?G({R1!PM?7^=7YZ!Wt`Q=NV5N?i6$`LUFEIe`itI4UK!Pq7DFR4EW%y*bRV9X* z9sMk8ve;UEY!;S6|CEyYsdPTzb;@hg)d7#-(*|^}kM0}y*w?BW0rlx5m4ww&7Wnv- zLp%>^c#yR(Rx9*X{RSM=#YSz_=bQe2jya?(9L5;M@pRt?W*lS4kV&qSrJWr|`jH9&I)YN9?YE{*T|Nl_`zzyi~ zh==cDGm!N)!YEyX3zaG~QiZR5D$#f^$?lR8MOz*_+Bdgc1Msl@!&i2=1?4sHwx48V zP#F&!NlxW@ll(v4Zhx$*G4RvI<=fsb(r{5^Fky3NiI`nBmFsFAly^l-|CuXD^v(*M zHg$KH#ZM#D?|$0rRaokbR18`O@Lb zdRFp**OjKCh$0jRXS#DsX~THcno?%@G|)G*_&J{j8X>bWQXPj`)CA1cQykKQZXg5i zTy%>e;!F{fpWmnptc-*edCfT3P#3L9#+$e*`tMDf;l^>;HtjO^nTz;h$&7VE&T*xx zLEGG&s$LiTe!p3+Wclfc@)QHHTK!fwQ|G+iT_43Fpv{<|#!G40Zly;vyqy|RREhR@ z_bowgGQ3s0fa=zfvdwWHwrjhEpPDR~wz$K6Jj939lElpDx1-IvXh;Mj-Z*LS0=iv- zZO&9br>c8)Jyhaa+fAb+lv+T2J#aH1njr8t7{wL_Fu-nt5&9DTdN$?)MKH#>DUqTvYqZCtS@R-e@jqSP1ltcJy1-du`(aPs~+L9Z8vg! zsCA^rL-4m(kh zcLy?chGd5uGxg26jBv!*9go=}$PXdkSOkED`}?h^b5sNznCN@f#f2^0LBH zW-YU3)tiWiGqO@kD(^IEY#pkq`i{bJT!70@KhyZvo`J6nllcOAU5jS^tO<#h3mz^D zHKLY98f5#s=PY}_ zZC0kCXnYGMuh$c;<>h>cJ|8(ov-c9G1J2@Fo~#dPRG`)yRqN}@v8n=C?w02MhFd-! z?*h4;U^Q3!ft&l{IGyTAQDurEJPxaA`0@=}AscNrxT+@%+^(I+Tgm%W0OpTQs%!aO z5Hh`n)xu9@DHF|ot=%SwI?qm4`J&DORnK)6Lw7q9F@H9OEXKFIrMz2B>355NXM$|m zm2N-PEVoZF#;2eR50Sw4V(-*0Mj{&Ugu z#ShWQH0u9WX(&C&e9LEzRu9xQ*!WVR(Jp`=cWdB>NsV|+d*kqSEiecP@QKKi@Ks2C7zr9sF8&CbaVwjXR Date: Wed, 5 Nov 2025 08:19:37 +0200 Subject: [PATCH 06/12] chore(edit-docs): set different port to edit-demo --- apps/edit-docs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/edit-docs/package.json b/apps/edit-docs/package.json index cc664e81d..958a54f3d 100644 --- a/apps/edit-docs/package.json +++ b/apps/edit-docs/package.json @@ -17,6 +17,6 @@ }, "scripts": { "edit-docs": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data TRILIUM_INTEGRATION_TEST=memory-no-store DOCS_ROOT=../../../docs USER_GUIDE_ROOT=\"../../server/src/assets/doc_notes/en/User Guide\" tsx ../../scripts/electron-start.mts src/edit-docs.ts", - "edit-demo": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data TRILIUM_INTEGRATION_TEST=memory-no-store DOCS_ROOT=../../../docs USER_GUIDE_ROOT=\"../../server/src/assets/doc_notes/en/User Guide\" tsx ../../scripts/electron-start.mts src/edit-demo.ts" + "edit-demo": "cross-env TRILIUM_PORT=37744 TRILIUM_DATA_DIR=data TRILIUM_INTEGRATION_TEST=memory-no-store DOCS_ROOT=../../../docs USER_GUIDE_ROOT=\"../../server/src/assets/doc_notes/en/User Guide\" tsx ../../scripts/electron-start.mts src/edit-demo.ts" } } \ No newline at end of file From 88b9709f154d0efb5e2e5f1e220335fcdf4199e4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 5 Nov 2025 08:26:34 +0200 Subject: [PATCH 07/12] docs(user): launch bar clarifications in the LLM doc --- .../en/User Guide/User Guide/AI.html | 72 +++++++++---------- docs/User Guide/!!!meta.json | 7 ++ docs/User Guide/User Guide/AI.md | 4 +- 3 files changed, 45 insertions(+), 38 deletions(-) diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html index 0fc11a28d..11ad7e821 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html @@ -19,8 +19,7 @@ class="image image_resized" style="width:74.04%;"> - -

      Embeddings

      +

      Embeddings

      Embeddings are important as it allows us to have an compact AI “summary” (it's not human readable text) of each of your Notes, that we can then perform mathematical functions on (such as cosine similarity) @@ -80,59 +79,59 @@ class="image image_resized" style="width:74.04%;">

      These are the tools that currently exist, and will certainly be updated to be more effectively (and even more to be added!):

        -
      • search_notes +
      • search_notes
          -
        • Semantic search
        • +
        • Semantic search
      • -
      • keyword_search +
      • keyword_search
          -
        • Keyword-based search
        • +
        • Keyword-based search
      • -
      • attribute_search +
      • attribute_search
          -
        • Attribute-specific search
        • +
        • Attribute-specific search
      • -
      • search_suggestion +
      • search_suggestion
          -
        • Search syntax helper
        • +
        • Search syntax helper
      • -
      • read_note +
      • read_note
          -
        • Read note content (helps the LLM read Notes)
        • +
        • Read note content (helps the LLM read Notes)
      • -
      • create_note +
      • create_note
          -
        • Create a Note
        • +
        • Create a Note
      • -
      • update_note +
      • update_note
          -
        • Update a Note
        • +
        • Update a Note
      • -
      • manage_attributes +
      • manage_attributes
          -
        • Manage attributes on a Note
        • +
        • Manage attributes on a Note
      • -
      • manage_relationships +
      • manage_relationships
          -
        • Manage the various relationships between Notes
        • +
        • Manage the various relationships between Notes
      • -
      • extract_content +
      • extract_content
          -
        • Used to smartly extract content from a Note
        • +
        • Used to smartly extract content from a Note
      • -
      • calendar_integration +
      • calendar_integration
          -
        • Used to find date notes, create date notes, get the daily note, etc.
        • +
        • Used to find date notes, create date notes, get the daily note, etc.
      @@ -145,17 +144,18 @@ class="image image_resized" style="width:74.04%;">

      You don't need to tell the LLM to execute a certain tool, it should “smartly” call tools and automatically execute them as needed.

      Overview

      -

      Now that you know about embeddings and tools, you can just go ahead and - use the “Chat with Notes” button, where you can go ahead and start chatting!:

      -
      +

      To start, simply press the Chat with Notes button in the  + Launch Bar.

      +
      -
      -

      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:

      -
      - -
      \ No newline at end of file +
      +

      If you don't see the button in the Launch Bar, + you might need to move it from the Available Launchers section to + the Visible Launchers section:

      +
      + +
      \ No newline at end of file diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index c0be59116..98c811ece 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -14187,6 +14187,13 @@ "value": "bx bx-bot", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 40 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/AI.md b/docs/User Guide/User Guide/AI.md index 57302d77d..f5818d915 100644 --- a/docs/User Guide/User Guide/AI.md +++ b/docs/User Guide/User Guide/AI.md @@ -80,10 +80,10 @@ You don't need to tell the LLM to execute a certain tool, it should “smartly ## Overview -Now that you know about embeddings and tools, you can just go ahead and use the “Chat with Notes” button, where you can go ahead and start chatting!: +To start, simply press the _Chat with Notes_ button in the Launch Bar.
      -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: +If you don't see the button in the Launch Bar, you might need to move it from the _Available Launchers_ section to the _Visible Launchers_ section:
      \ No newline at end of file From d271fe7fddf4fb4d2123fbaff6d32e5e542f6ef7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 5 Nov 2025 09:26:14 +0200 Subject: [PATCH 08/12] docs(demo): clean up expansion state --- apps/edit-docs/demo/!!!meta.json | 2 +- apps/server/src/assets/db/demo.zip | Bin 916285 -> 916280 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/edit-docs/demo/!!!meta.json b/apps/edit-docs/demo/!!!meta.json index 92266fa4b..44b61171d 100644 --- a/apps/edit-docs/demo/!!!meta.json +++ b/apps/edit-docs/demo/!!!meta.json @@ -3879,7 +3879,7 @@ "title": "Scripting examples", "notePosition": 350, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ diff --git a/apps/server/src/assets/db/demo.zip b/apps/server/src/assets/db/demo.zip index b685648200496d9bd6e99fb8c9c91bbbdf112c72..c4cbc6058fef77cc0e75f15d9246f36cdfeefebf 100644 GIT binary patch delta 16315 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 delta 15531 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ϒo3hR&^2t%6BAQVwI4u>By{; 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 From 16785a5c0bfdee71b4f5537cb44d188357bdb6ec Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Wed, 5 Nov 2025 15:40:12 +0800 Subject: [PATCH 09/12] fix(quick_search): enable Numpad Enter to trigger quick search --- apps/client/src/services/shortcuts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/client/src/services/shortcuts.ts b/apps/client/src/services/shortcuts.ts index 94dd8893c..7d6a1e956 100644 --- a/apps/client/src/services/shortcuts.ts +++ b/apps/client/src/services/shortcuts.ts @@ -46,6 +46,7 @@ for (let i = 1; i <= 19; i++) { const KEYCODES_WITH_NO_MODIFIER = new Set([ "Delete", "Enter", + "NumpadEnter", ...functionKeyCodes ]); From 26ea43d604b53e9911c920c64c2b91ee6d358f9d Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Wed, 5 Nov 2025 16:01:26 +0800 Subject: [PATCH 10/12] chore(test): add vitest for NumpadEnter --- apps/client/src/services/shortcuts.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/client/src/services/shortcuts.spec.ts b/apps/client/src/services/shortcuts.spec.ts index 87f8ae489..b9576025f 100644 --- a/apps/client/src/services/shortcuts.spec.ts +++ b/apps/client/src/services/shortcuts.spec.ts @@ -159,7 +159,7 @@ describe("shortcuts", () => { expect(matchesShortcut(event, "Shift+F1")).toBeTruthy(); // Special keys - for (const keyCode of [ "Delete", "Enter" ]) { + for (const keyCode of [ "Delete", "Enter", "NumpadEnter" ]) { event = createKeyboardEvent({ key: keyCode, code: keyCode }); expect(matchesShortcut(event, keyCode), `Key ${keyCode}`).toBeTruthy(); } From 977284fe5749ac3f74ab80a457c558b1e2a0c449 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 5 Nov 2025 10:20:35 +0200 Subject: [PATCH 11/12] docs(user): document read-only database (closes #4341) --- .../doc_notes/en/User Guide/!!!meta.json | 2 +- .../Advanced Usage/Read-only database.html | 42 ++++++++++ docs/User Guide/!!!meta.json | 76 +++++++++++++++++++ .../Advanced Usage/Read-only database.md | 32 ++++++++ 4 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Read-only database.html create mode 100644 docs/User Guide/User Guide/Advanced Usage/Read-only database.md diff --git a/apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json b/apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json index c9517ba7b..570196694 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json +++ b/apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json @@ -1 +1 @@ -[{"id":"_help_BOCnjTMBCoxW","title":"Feature Highlights","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Feature Highlights"},{"name":"iconClass","value":"bx bx-star","type":"label"}]},{"id":"_help_Otzi9La2YAUX","title":"Installation & Setup","type":"book","attributes":[{"name":"iconClass","value":"bx bx-cog","type":"label"}],"children":[{"id":"_help_poXkQfguuA0U","title":"Desktop Installation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation"},{"name":"iconClass","value":"bx bx-desktop","type":"label"}],"children":[{"id":"_help_nRqcgfTb97uV","title":"Using the desktop application as a server","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation/Using the desktop application "},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_Rp0q8bSP6Ayl","title":"System Requirements","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation/System Requirements"},{"name":"iconClass","value":"bx bx-chip","type":"label"}]},{"id":"_help_Un4wj2Mak2Ky","title":"Nix flake","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation/Nix flake"},{"name":"iconClass","value":"bx bxl-tux","type":"label"}]}]},{"id":"_help_WOcw2SLH6tbX","title":"Server Installation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation"},{"name":"iconClass","value":"bx bx-server","type":"label"}],"children":[{"id":"_help_Dgg7bR3b6K9j","title":"1. Installing the server","type":"book","attributes":[{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_3tW6mORuTHnB","title":"Packaged version for Linux","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux"},{"name":"iconClass","value":"bx bxl-tux","type":"label"}]},{"id":"_help_rWX5eY045zbE","title":"Using Docker","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker"},{"name":"iconClass","value":"bx bxl-docker","type":"label"}]},{"id":"_help_moVgBcoxE3EK","title":"On NixOS","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/On NixOS"},{"name":"iconClass","value":"bx bxl-tux","type":"label"}]},{"id":"_help_J1Bb6lVlwU5T","title":"Manually","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually"},{"name":"iconClass","value":"bx bx-code-alt","type":"label"}]},{"id":"_help_DCmT6e7clMoP","title":"Using Kubernetes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Kubernetes"},{"name":"iconClass","value":"bx bxl-kubernetes","type":"label"}]},{"id":"_help_klCWNks3ReaQ","title":"Multiple server instances","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Multiple server instances"},{"name":"iconClass","value":"bx bxs-user-account","type":"label"}]}]},{"id":"_help_vcjrb3VVYPZI","title":"2. Reverse proxy","type":"book","attributes":[{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_ud6MShXL4WpO","title":"Nginx","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_fDLvzOx29Pfg","title":"Apache using Docker","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache using Docker"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_LLzSMXACKhUs","title":"Trusted proxy","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Trusted proxy"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_l2VkvOwUNfZj","title":"HTTPS (TLS)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/HTTPS (TLS)"},{"name":"iconClass","value":"bx bx-lock-alt","type":"label"}]},{"id":"_help_0hzsNCP31IAB","title":"Authentication","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Authentication"},{"name":"iconClass","value":"bx bx-user","type":"label"}]},{"id":"_help_7DAiwaf8Z7Rz","title":"Multi-Factor Authentication","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication"},{"name":"iconClass","value":"bx bx-stopwatch","type":"label"}]},{"id":"_help_Un4wj2Mak2Ky","title":"Nix flake","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Nix flake.clone"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_yeEaYqosGLSh","title":"Third-party cloud hosting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Third-party cloud hosting"},{"name":"iconClass","value":"bx bx-cloud","type":"label"}]},{"id":"_help_iGTnKjubbXkA","title":"System Requirements","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/System Requirements"},{"name":"iconClass","value":"bx bx-chip","type":"label"}]}]},{"id":"_help_cbkrhQjrkKrh","title":"Synchronization","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Synchronization"},{"name":"iconClass","value":"bx bx-sync","type":"label"}]},{"id":"_help_RDslemsQ6gCp","title":"Mobile Frontend","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Mobile Frontend"},{"name":"iconClass","value":"bx bx-mobile-alt","type":"label"}]},{"id":"_help_MtPxeAWVAzMg","title":"Web Clipper","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Web Clipper"},{"name":"iconClass","value":"bx bx-paperclip","type":"label"}]},{"id":"_help_n1lujUxCwipy","title":"Upgrading TriliumNext","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Upgrading TriliumNext"},{"name":"iconClass","value":"bx bx-up-arrow-alt","type":"label"}]},{"id":"_help_ODY7qQn5m2FT","title":"Backup","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Backup"},{"name":"iconClass","value":"bx bx-hdd","type":"label"}]},{"id":"_help_tAassRL4RSQL","title":"Data directory","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Data directory"},{"name":"iconClass","value":"bx bx-folder-open","type":"label"}]}]},{"id":"_help_gh7bpGYxajRS","title":"Basic Concepts and Features","type":"book","attributes":[{"name":"iconClass","value":"bx bx-help-circle","type":"label"}],"children":[{"id":"_help_Vc8PjrjAGuOp","title":"UI Elements","type":"book","attributes":[{"name":"iconClass","value":"bx bx-window-alt","type":"label"}],"children":[{"id":"_help_x0JgW8UqGXvq","title":"Vertical and horizontal layout","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout"},{"name":"iconClass","value":"bx bxs-layout","type":"label"}]},{"id":"_help_x3i7MxGccDuM","title":"Global menu","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu"},{"name":"iconClass","value":"bx bx-menu","type":"label"}]},{"id":"_help_oPVyFC7WL2Lp","title":"Note Tree","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree"},{"name":"iconClass","value":"bx bxs-tree-alt","type":"label"}],"children":[{"id":"_help_YtSN43OrfzaA","title":"Note tree contextual menu","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu"},{"name":"iconClass","value":"bx bx-menu","type":"label"}]},{"id":"_help_yTjUdsOi4CIE","title":"Multiple selection","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection"},{"name":"iconClass","value":"bx bx-list-plus","type":"label"}]},{"id":"_help_DvdZhoQZY9Yd","title":"Keyboard shortcuts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts"},{"name":"iconClass","value":"bx bxs-keyboard","type":"label"}]}]},{"id":"_help_BlN9DFI679QC","title":"Ribbon","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon"},{"name":"iconClass","value":"bx bx-dots-horizontal","type":"label"}]},{"id":"_help_3seOhtN8uLIY","title":"Tabs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs"},{"name":"iconClass","value":"bx bx-dock-top","type":"label"}]},{"id":"_help_xYmIYSP6wE3F","title":"Launch Bar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar"},{"name":"iconClass","value":"bx bx-sidebar","type":"label"}]},{"id":"_help_8YBEPzcpUgxw","title":"Note buttons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons"},{"name":"iconClass","value":"bx bx-dots-vertical-rounded","type":"label"}]},{"id":"_help_4TIF1oA4VQRO","title":"Options","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Options"},{"name":"iconClass","value":"bx bx-cog","type":"label"}]},{"id":"_help_luNhaphA37EO","title":"Split View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View"},{"name":"iconClass","value":"bx bx-dock-right","type":"label"}]},{"id":"_help_XpOYSgsLkTJy","title":"Floating buttons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons"},{"name":"iconClass","value":"bx bx-rectangle","type":"label"}]},{"id":"_help_RnaPdbciOfeq","title":"Right Sidebar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar"},{"name":"iconClass","value":"bx bxs-dock-right","type":"label"}]},{"id":"_help_r5JGHN99bVKn","title":"Recent Changes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes"},{"name":"iconClass","value":"bx bx-history","type":"label"}]},{"id":"_help_ny318J39E5Z0","title":"Zoom","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Zoom"},{"name":"iconClass","value":"bx bx-zoom-in","type":"label"}]},{"id":"_help_ZjLYv08Rp3qC","title":"Quick edit","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_lgKX7r3aL30x","title":"Note Tooltip","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip"},{"name":"iconClass","value":"bx bx-message-detail","type":"label"}]}]},{"id":"_help_BFs8mudNFgCS","title":"Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes"},{"name":"iconClass","value":"bx bx-notepad","type":"label"}],"children":[{"id":"_help_p9kXRFAkwN4o","title":"Note Icons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note Icons"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]},{"id":"_help_0vhv7lsOLy82","title":"Attachments","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Attachments"},{"name":"iconClass","value":"bx bx-paperclip","type":"label"}]},{"id":"_help_IakOLONlIfGI","title":"Cloning Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes"},{"name":"iconClass","value":"bx bx-duplicate","type":"label"}],"children":[{"id":"_help_TBwsyfadTA18","title":"Branch prefix","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix"},{"name":"iconClass","value":"bx bx-rename","type":"label"}]}]},{"id":"_help_bwg0e8ewQMak","title":"Protected Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes"},{"name":"iconClass","value":"bx bx-lock-alt","type":"label"}]},{"id":"_help_MKmLg5x6xkor","title":"Archived Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes"},{"name":"iconClass","value":"bx bx-box","type":"label"}]},{"id":"_help_vZWERwf8U3nx","title":"Note Revisions","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions"},{"name":"iconClass","value":"bx bx-history","type":"label"}]},{"id":"_help_aGlEvb9hyDhS","title":"Sorting Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes"},{"name":"iconClass","value":"bx bx-sort-up","type":"label"}]},{"id":"_help_NRnIZmSMc5sj","title":"Printing & Exporting as PDF","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Printing & Exporting as PDF"},{"name":"iconClass","value":"bx bx-printer","type":"label"}]},{"id":"_help_CoFPLs3dRlXc","title":"Read-Only Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes"},{"name":"iconClass","value":"bx bx-edit-alt","type":"label"}]},{"id":"_help_0ESUbbAxVnoK","title":"Note List","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note List"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]}]},{"id":"_help_wArbEsdSae6g","title":"Navigation","type":"book","attributes":[{"name":"iconClass","value":"bx bx-navigation","type":"label"}],"children":[{"id":"_help_kBrnXNG3Hplm","title":"Tree Concepts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts"},{"name":"iconClass","value":"bx bx-pyramid","type":"label"}]},{"id":"_help_MMiBEQljMQh2","title":"Note Navigation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation"},{"name":"iconClass","value":"bx bxs-navigation","type":"label"}]},{"id":"_help_Ms1nauBra7gq","title":"Quick search","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search"},{"name":"iconClass","value":"bx bx-search-alt-2","type":"label"}]},{"id":"_help_F1r9QtzQLZqm","title":"Jump to...","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to"},{"name":"iconClass","value":"bx bx-send","type":"label"}]},{"id":"_help_eIg8jdvaoNNd","title":"Search","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Search"},{"name":"iconClass","value":"bx bx-search-alt-2","type":"label"}]},{"id":"_help_u3YFHC9tQlpm","title":"Bookmarks","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Bookmarks"},{"name":"iconClass","value":"bx bx-bookmarks","type":"label"}]},{"id":"_help_OR8WJ7Iz9K4U","title":"Note Hoisting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting"},{"name":"iconClass","value":"bx bxs-chevrons-up","type":"label"}]},{"id":"_help_ZjLYv08Rp3qC","title":"Quick edit","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_9sRHySam5fXb","title":"Workspaces","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces"},{"name":"iconClass","value":"bx bx-door-open","type":"label"}]},{"id":"_help_xWtq5NUHOwql","title":"Similar Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes"},{"name":"iconClass","value":"bx bx-bar-chart","type":"label"}]},{"id":"_help_McngOG2jbUWX","title":"Search in note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note"},{"name":"iconClass","value":"bx bx-search-alt-2","type":"label"}]}]},{"id":"_help_A9Oc6YKKc65v","title":"Keyboard Shortcuts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts"},{"name":"iconClass","value":"bx bxs-keyboard","type":"label"}]},{"id":"_help_Wy267RK4M69c","title":"Themes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Themes"},{"name":"iconClass","value":"bx bx-palette","type":"label"}],"children":[{"id":"_help_VbjZvtUek0Ln","title":"Theme Gallery","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery"},{"name":"iconClass","value":"bx bx-book-reader","type":"label"}]}]},{"id":"_help_mHbBMPDPkVV5","title":"Import & Export","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export"},{"name":"iconClass","value":"bx bx-import","type":"label"}],"children":[{"id":"_help_Oau6X9rCuegd","title":"Markdown","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown"},{"name":"iconClass","value":"bx bxl-markdown","type":"label"}],"children":[{"id":"_help_rJ9grSgoExl9","title":"Supported syntax","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax"},{"name":"iconClass","value":"bx bx-code-alt","type":"label"}]}]},{"id":"_help_syuSEKf2rUGr","title":"Evernote","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote"},{"name":"iconClass","value":"bx bx-window-open","type":"label"}]},{"id":"_help_GnhlmrATVqcH","title":"OneNote","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote"},{"name":"iconClass","value":"bx bx-window-open","type":"label"}]}]},{"id":"_help_rC3pL2aptaRE","title":"Zen mode","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Zen mode"},{"name":"iconClass","value":"bx bxs-yin-yang","type":"label"}]}]},{"id":"_help_s3YCWHBfmYuM","title":"Quick Start","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Quick Start"},{"name":"iconClass","value":"bx bx-run","type":"label"}]},{"id":"_help_i6dbnitykE5D","title":"FAQ","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/FAQ"},{"name":"iconClass","value":"bx bx-question-mark","type":"label"}]},{"id":"_help_KSZ04uQ2D1St","title":"Note Types","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types"},{"name":"iconClass","value":"bx bx-edit","type":"label"}],"children":[{"id":"_help_iPIMuisry3hd","title":"Text","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text"},{"name":"iconClass","value":"bx bx-note","type":"label"}],"children":[{"id":"_help_NwBbFdNZ9h7O","title":"Block quotes & admonitions","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Block quotes & admonitions"},{"name":"iconClass","value":"bx bx-info-circle","type":"label"}]},{"id":"_help_oSuaNgyyKnhu","title":"Bookmarks","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Bookmarks"},{"name":"iconClass","value":"bx bx-bookmark","type":"label"}]},{"id":"_help_veGu4faJErEM","title":"Content language & Right-to-left support","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Content language & Right-to-le"},{"name":"iconClass","value":"bx bx-align-right","type":"label"}]},{"id":"_help_2x0ZAX9ePtzV","title":"Cut to subnote","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Cut to subnote"},{"name":"iconClass","value":"bx bx-cut","type":"label"}]},{"id":"_help_UYuUB1ZekNQU","title":"Developer-specific formatting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Developer-specific formatting"},{"name":"iconClass","value":"bx bx-code-alt","type":"label"}],"children":[{"id":"_help_QxEyIjRBizuC","title":"Code blocks","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks"},{"name":"iconClass","value":"bx bx-code","type":"label"}]}]},{"id":"_help_AgjCISero73a","title":"Footnotes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Footnotes"},{"name":"iconClass","value":"bx bx-bracket","type":"label"}]},{"id":"_help_nRhnJkTT8cPs","title":"Formatting toolbar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Formatting toolbar"},{"name":"iconClass","value":"bx bx-text","type":"label"}]},{"id":"_help_Gr6xFaF6ioJ5","title":"General formatting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/General formatting"},{"name":"iconClass","value":"bx bx-bold","type":"label"}]},{"id":"_help_AxshuNRegLAv","title":"Highlights list","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Highlights list"},{"name":"iconClass","value":"bx bx-highlight","type":"label"}]},{"id":"_help_mT0HEkOsz6i1","title":"Images","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Images"},{"name":"iconClass","value":"bx bx-image-alt","type":"label"}],"children":[{"id":"_help_0Ofbk1aSuVRu","title":"Image references","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Images/Image references"},{"name":"iconClass","value":"bx bxs-file-image","type":"label"}]}]},{"id":"_help_nBAXQFj20hS1","title":"Include Note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Include Note"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_CohkqWQC1iBv","title":"Insert buttons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Insert buttons"},{"name":"iconClass","value":"bx bx-plus","type":"label"}]},{"id":"_help_oiVPnW8QfnvS","title":"Keyboard shortcuts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Keyboard shortcuts"},{"name":"iconClass","value":"bx bxs-keyboard","type":"label"}]},{"id":"_help_QEAPj01N5f7w","title":"Links","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Links"},{"name":"iconClass","value":"bx bx-link-alt","type":"label"}],"children":[{"id":"_help_3IDVtesTQ8ds","title":"External links","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Links/External links"},{"name":"iconClass","value":"bx bx-link-external","type":"label"}]},{"id":"_help_hrZ1D00cLbal","title":"Internal (reference) links","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Links/Internal (reference) links"},{"name":"iconClass","value":"bx bx-link","type":"label"}]}]},{"id":"_help_S6Xx8QIWTV66","title":"Lists","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Lists"},{"name":"iconClass","value":"bx bx-list-ul","type":"label"}]},{"id":"_help_QrtTYPmdd1qq","title":"Markdown-like formatting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Markdown-like formatting"},{"name":"iconClass","value":"bx bxl-markdown","type":"label"}]},{"id":"_help_YfYAtQBcfo5V","title":"Math Equations","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Math Equations"},{"name":"iconClass","value":"bx bx-math","type":"label"}]},{"id":"_help_dEHYtoWWi8ct","title":"Other features","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Other features"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]},{"id":"_help_gLt3vA97tMcp","title":"Premium features","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Premium features"},{"name":"iconClass","value":"bx bx-star","type":"label"}],"children":[{"id":"_help_ZlN4nump6EbW","title":"Slash Commands","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Premium features/Slash Commands"},{"name":"iconClass","value":"bx bx-menu","type":"label"}]},{"id":"_help_pwc194wlRzcH","title":"Text Snippets","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Premium features/Text Snippets"},{"name":"iconClass","value":"bx bx-align-left","type":"label"}]}]},{"id":"_help_BFvAtE74rbP6","title":"Table of contents","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Table of contents"},{"name":"iconClass","value":"bx bx-heading","type":"label"}]},{"id":"_help_NdowYOC1GFKS","title":"Tables","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Tables"},{"name":"iconClass","value":"bx bx-table","type":"label"}]}]},{"id":"_help_6f9hih2hXXZk","title":"Code","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Code"},{"name":"iconClass","value":"bx bx-code","type":"label"}]},{"id":"_help_m523cpzocqaD","title":"Saved Search","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Saved Search"},{"name":"iconClass","value":"bx bx-file-find","type":"label"}]},{"id":"_help_iRwzGnHPzonm","title":"Relation Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Relation Map"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_bdUJEHsAPYQR","title":"Note Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Note Map"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_HcABDtFCkbFN","title":"Render Note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Render Note"},{"name":"iconClass","value":"bx bx-extension","type":"label"}]},{"id":"_help_s1aBHPd79XYj","title":"Mermaid Diagrams","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Mermaid Diagrams"},{"name":"iconClass","value":"bx bx-selection","type":"label"}],"children":[{"id":"_help_RH6yLjjWJHof","title":"ELK layout","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_WWgeUaBb7UfC","title":"Syntax reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://mermaid.js.org/intro/syntax-reference.html"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_grjYqerjn243","title":"Canvas","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Canvas"},{"name":"iconClass","value":"bx bx-pen","type":"label"}]},{"id":"_help_1vHRoWCEjj0L","title":"Web View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Web View"},{"name":"iconClass","value":"bx bx-globe-alt","type":"label"}]},{"id":"_help_gBbsAeiuUxI5","title":"Mind Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Mind Map"},{"name":"iconClass","value":"bx bx-sitemap","type":"label"}]},{"id":"_help_W8vYD3Q1zjCR","title":"File","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/File"},{"name":"iconClass","value":"bx bx-file-blank","type":"label"}]}]},{"id":"_help_GTwFsgaA0lCt","title":"Collections","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections"},{"name":"iconClass","value":"bx bx-book","type":"label"}],"children":[{"id":"_help_xWbu3jpNWapp","title":"Calendar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Calendar"},{"name":"iconClass","value":"bx bx-calendar","type":"label"}]},{"id":"_help_2FvYrpmOXm29","title":"Table","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Table"},{"name":"iconClass","value":"bx bx-table","type":"label"}]},{"id":"_help_CtBQqbwXDx1w","title":"Kanban Board","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Kanban Board"},{"name":"iconClass","value":"bx bx-columns","type":"label"}]},{"id":"_help_81SGnPGMk7Xc","title":"Geo Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Geo Map"},{"name":"iconClass","value":"bx bx-map-alt","type":"label"}]},{"id":"_help_zP3PMqaG71Ct","title":"Presentation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Presentation"},{"name":"iconClass","value":"bx bx-slideshow","type":"label"}]},{"id":"_help_8QqnMzx393bx","title":"Grid View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Grid View"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]},{"id":"_help_mULW0Q3VojwY","title":"List View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/List View"},{"name":"iconClass","value":"bx bx-list-ul","type":"label"}]}]},{"id":"_help_BgmBlOIl72jZ","title":"Troubleshooting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting"},{"name":"iconClass","value":"bx bx-bug","type":"label"}],"children":[{"id":"_help_wy8So3yZZlH9","title":"Reporting issues","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Reporting issues"},{"name":"iconClass","value":"bx bx-bug-alt","type":"label"}]},{"id":"_help_x59R8J8KV5Bp","title":"Anonymized Database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Anonymized Database"},{"name":"iconClass","value":"bx bx-low-vision","type":"label"}]},{"id":"_help_qzNzp9LYQyPT","title":"Error logs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Error logs"},{"name":"iconClass","value":"bx bx-comment-error","type":"label"}],"children":[{"id":"_help_bnyigUA2UK7s","title":"Backend (server) logs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Error logs/Backend (server) logs"},{"name":"iconClass","value":"bx bx-server","type":"label"}]},{"id":"_help_9yEHzMyFirZR","title":"Frontend logs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Error logs/Frontend logs"},{"name":"iconClass","value":"bx bx-window-alt","type":"label"}]}]},{"id":"_help_vdlYGAcpXAgc","title":"Synchronization fails with 504 Gateway Timeout","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Synchronization fails with 504"},{"name":"iconClass","value":"bx bx-error","type":"label"}]},{"id":"_help_s8alTXmpFR61","title":"Refreshing the application","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Refreshing the application"},{"name":"iconClass","value":"bx bx-refresh","type":"label"}]}]},{"id":"_help_pKK96zzmvBGf","title":"Theme development","type":"book","attributes":[{"name":"iconClass","value":"bx bx-palette","type":"label"}],"children":[{"id":"_help_7NfNr5pZpVKV","title":"Creating a custom theme","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Creating a custom theme"},{"name":"iconClass","value":"bx bxs-color","type":"label"}]},{"id":"_help_WFGzWeUK6arS","title":"Customize the Next theme","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Customize the Next theme"},{"name":"iconClass","value":"bx bx-news","type":"label"}]},{"id":"_help_WN5z4M8ASACJ","title":"Reference","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Reference"},{"name":"iconClass","value":"bx bx-book-open","type":"label"}]},{"id":"_help_AlhDUqhENtH7","title":"Custom app-wide CSS","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Custom app-wide CSS"},{"name":"iconClass","value":"bx bxs-file-css","type":"label"}]}]},{"id":"_help_tC7s2alapj8V","title":"Advanced Usage","type":"book","attributes":[{"name":"iconClass","value":"bx bx-rocket","type":"label"}],"children":[{"id":"_help_zEY4DaJG4YT5","title":"Attributes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes"},{"name":"iconClass","value":"bx bx-list-check","type":"label"}],"children":[{"id":"_help_HI6GBBIduIgv","title":"Labels","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Labels"},{"name":"iconClass","value":"bx bx-hash","type":"label"}]},{"id":"_help_Cq5X6iKQop6R","title":"Relations","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Relations"},{"name":"iconClass","value":"bx bx-transfer","type":"label"}]},{"id":"_help_bwZpz2ajCEwO","title":"Attribute Inheritance","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance"},{"name":"iconClass","value":"bx bx-list-plus","type":"label"}]},{"id":"_help_OFXdgB2nNk1F","title":"Promoted Attributes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes"},{"name":"iconClass","value":"bx bx-table","type":"label"}]}]},{"id":"_help_KC1HB96bqqHX","title":"Templates","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Templates"},{"name":"iconClass","value":"bx bx-copy","type":"label"}]},{"id":"_help_BCkXAVs63Ttv","title":"Note Map (Link map, Tree map)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map)"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_R9pX4DGra2Vt","title":"Sharing","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing"},{"name":"iconClass","value":"bx bx-share-alt","type":"label"}],"children":[{"id":"_help_Qjt68inQ2bRj","title":"Serving directly the content of a note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o"},{"name":"iconClass","value":"bx bx-code","type":"label"}]},{"id":"_help_ycBFjKrrwE9p","title":"Exporting HTML for web publishing","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing/Exporting HTML for web publish"},{"name":"iconClass","value":"bx bxs-file-html","type":"label"}]},{"id":"_help_sLIJ6f1dkJYW","title":"Reverse proxy configuration","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing/Reverse proxy configuration"},{"name":"iconClass","value":"bx bx-world","type":"label"}]}]},{"id":"_help_5668rwcirq1t","title":"Advanced Showcases","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases"},{"name":"iconClass","value":"bx bxs-component","type":"label"}],"children":[{"id":"_help_l0tKav7yLHGF","title":"Day Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes"},{"name":"iconClass","value":"bx bx-calendar","type":"label"}]},{"id":"_help_R7abl2fc6Mxi","title":"Weight Tracker","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker"},{"name":"iconClass","value":"bx bx-line-chart","type":"label"}]},{"id":"_help_xYjQUYhpbUEW","title":"Task Manager","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager"},{"name":"iconClass","value":"bx bx-calendar-check","type":"label"}]}]},{"id":"_help_J5Ex1ZrMbyJ6","title":"Custom Request Handler","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Custom Request Handler"},{"name":"iconClass","value":"bx bx-globe","type":"label"}]},{"id":"_help_d3fAXQ2diepH","title":"Custom Resource Providers","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Custom Resource Providers"},{"name":"iconClass","value":"bx bxs-file-plus","type":"label"}]},{"id":"_help_pgxEVkzLl1OP","title":"ETAPI (REST API)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/ETAPI (REST API)"},{"name":"iconClass","value":"bx bx-extension","type":"label"}],"children":[{"id":"_help_9qPsTWBorUhQ","title":"API Reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/rest-api/etapi/"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_47ZrP6FNuoG8","title":"Default Note Title","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Default Note Title"},{"name":"iconClass","value":"bx bx-edit-alt","type":"label"}]},{"id":"_help_wX4HbRucYSDD","title":"Database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database"},{"name":"iconClass","value":"bx bx-data","type":"label"}],"children":[{"id":"_help_oyIAJ9PvvwHX","title":"Manually altering the database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database/Manually altering the database"},{"name":"iconClass","value":"bx bxs-edit","type":"label"}],"children":[{"id":"_help_YKWqdJhzi2VY","title":"SQL Console","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console"},{"name":"iconClass","value":"bx bx-data","type":"label"}]}]},{"id":"_help_6tZeKvSHEUiB","title":"Demo Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database/Demo Notes"},{"name":"iconClass","value":"bx bx-package","type":"label"}]}]},{"id":"_help_Gzjqa934BdH4","title":"Configuration (config.ini or environment variables)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Configuration (config.ini or e"},{"name":"iconClass","value":"bx bx-cog","type":"label"}],"children":[{"id":"_help_c5xB8m4g2IY6","title":"Trilium instance","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance"},{"name":"iconClass","value":"bx bx-windows","type":"label"}]},{"id":"_help_LWtBjFej3wX3","title":"Cross-Origin Resource Sharing (CORS)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing "},{"name":"iconClass","value":"bx bx-lock","type":"label"}]}]},{"id":"_help_ivYnonVFBxbQ","title":"Bulk Actions","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Bulk Actions"},{"name":"iconClass","value":"bx bx-list-plus","type":"label"}]},{"id":"_help_4FahAwuGTAwC","title":"Note source","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Note source"},{"name":"iconClass","value":"bx bx-code","type":"label"}]},{"id":"_help_1YeN2MzFUluU","title":"Technologies used","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used"},{"name":"iconClass","value":"bx bx-pyramid","type":"label"}],"children":[{"id":"_help_MI26XDLSAlCD","title":"CKEditor","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/CKEditor"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_N4IDkixaDG9C","title":"MindElixir","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/MindElixir"},{"name":"iconClass","value":"bx bx-sitemap","type":"label"}]},{"id":"_help_H0mM1lTxF9JI","title":"Excalidraw","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw"},{"name":"iconClass","value":"bx bx-pen","type":"label"}]},{"id":"_help_MQHyy2dIFgxS","title":"Leaflet","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/Leaflet"},{"name":"iconClass","value":"bx bx-map-alt","type":"label"}]}]},{"id":"_help_m1lbrzyKDaRB","title":"Note ID","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Note ID"},{"name":"iconClass","value":"bx bx-hash","type":"label"}]},{"id":"_help_0vTSyvhPTAOz","title":"Internal API","type":"book","attributes":[{"name":"iconClass","value":"bx bxs-component","type":"label"}],"children":[{"id":"_help_z8O2VG4ZZJD7","title":"API Reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/rest-api/internal/"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_2mUhVmZK8RF3","title":"Hidden Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Hidden Notes"},{"name":"iconClass","value":"bx bx-hide","type":"label"}]},{"id":"_help_uYF7pmepw27K","title":"Metrics","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Metrics"},{"name":"iconClass","value":"bx bxs-data","type":"label"}],"children":[{"id":"_help_bOP3TB56fL1V","title":"grafana-dashboard.json","type":"doc","attributes":[{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_64ZTlUPgEPtW","title":"Safe mode","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Safe mode"},{"name":"iconClass","value":"bx bxs-virus-block","type":"label"}]},{"id":"_help_HAIOFBoYIIdO","title":"Nightly release","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Nightly release"},{"name":"iconClass","value":"bx bx-moon","type":"label"}]}]},{"id":"_help_GBBMSlVSOIGP","title":"AI","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI"},{"name":"iconClass","value":"bx bx-bot","type":"label"}],"children":[{"id":"_help_WkM7gsEUyCXs","title":"Providers","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers"},{"name":"iconClass","value":"bx bx-select-multiple","type":"label"}],"children":[{"id":"_help_7EdTxPADv95W","title":"Ollama","type":"book","attributes":[{"name":"iconClass","value":"bx bx-message-dots","type":"label"}],"children":[{"id":"_help_vvUCN7FDkq7G","title":"Installing Ollama","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers/Ollama/Installing Ollama"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_ZavFigBX9AwP","title":"OpenAI","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers/OpenAI"},{"name":"iconClass","value":"bx bx-message-dots","type":"label"}]},{"id":"_help_e0lkirXEiSNc","title":"Anthropic","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers/Anthropic"},{"name":"iconClass","value":"bx bx-message-dots","type":"label"}]}]}]},{"id":"_help_CdNpE2pqjmI6","title":"Scripting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting"},{"name":"iconClass","value":"bx bxs-file-js","type":"label"}],"children":[{"id":"_help_yIhgI5H7A2Sm","title":"Frontend Basics","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics"},{"name":"iconClass","value":"bx bx-window","type":"label"}],"children":[{"id":"_help_MgibgPcfeuGz","title":"Custom Widgets","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets"},{"name":"iconClass","value":"bx bxs-widget","type":"label"}],"children":[{"id":"_help_YNxAqkI5Kg1M","title":"Word count widget","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Word count widget"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_SynTBQiBsdYJ","title":"Widget Basics","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_M8IppdwVHSjG","title":"Right pane widget","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Right pane widget"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_VqGQnnPGnqAU","title":"CSS","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/CSS"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_es8OU2GuguFU","title":"Examples","type":"book","attributes":[{"name":"iconClass","value":"bx bx-code-alt","type":"label"}],"children":[{"id":"_help_TjLYAo3JMO8X","title":"\"New Task\" launcher button","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Examples/New Task launcher button"},{"name":"iconClass","value":"bx bx-task","type":"label"}]},{"id":"_help_7kZPMD0uFwkH","title":"Downloading responses from Google Forms","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Examples/Downloading responses from Goo"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_DL92EjAaXT26","title":"Using promoted attributes to configure scripts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Examples/Using promoted attributes to c"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]}]},{"id":"_help_SPirpZypehBG","title":"Backend scripts","type":"book","attributes":[{"name":"iconClass","value":"bx bx-server","type":"label"}],"children":[{"id":"_help_fZ2IGYFXjkEy","title":"Server-side imports","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Backend scripts/Server-side imports"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_GPERMystNGTB","title":"Events","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Backend scripts/Events"},{"name":"iconClass","value":"bx bx-rss","type":"label"}]}]},{"id":"_help_GLks18SNjxmC","title":"Script API","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Script API"},{"name":"iconClass","value":"bx bx-code-curly","type":"label"}],"children":[{"id":"_help_Q2z6av6JZVWm","title":"Frontend API","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/script-api/frontend"},{"name":"iconClass","value":"bx bx-folder","type":"label"}],"enforceAttributes":true,"children":[{"id":"_help_habiZ3HU8Kw8","title":"FNote","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/script-api/frontend/interfaces/FNote.html"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_MEtfsqa5VwNi","title":"Backend API","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/script-api/backend"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_vElnKeDNPSVl","title":"Logging","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Logging"},{"name":"iconClass","value":"bx bx-terminal","type":"label"}]}]},{"id":"_help_Fm0j45KqyHpU","title":"Miscellaneous","type":"book","attributes":[{"name":"iconClass","value":"bx bx-info-circle","type":"label"}],"children":[{"id":"_help_WFbFXrgnDyyU","title":"Privacy Policy","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Miscellaneous/Privacy Policy"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_NcsmUYZRWEW4","title":"Patterns of personal knowledge","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Miscellaneous/Patterns of personal knowledge"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]}] \ No newline at end of file +[{"id":"_help_BOCnjTMBCoxW","title":"Feature Highlights","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Feature Highlights"},{"name":"iconClass","value":"bx bx-star","type":"label"}]},{"id":"_help_Otzi9La2YAUX","title":"Installation & Setup","type":"book","attributes":[{"name":"iconClass","value":"bx bx-cog","type":"label"}],"children":[{"id":"_help_poXkQfguuA0U","title":"Desktop Installation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation"},{"name":"iconClass","value":"bx bx-desktop","type":"label"}],"children":[{"id":"_help_nRqcgfTb97uV","title":"Using the desktop application as a server","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation/Using the desktop application "},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_Rp0q8bSP6Ayl","title":"System Requirements","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation/System Requirements"},{"name":"iconClass","value":"bx bx-chip","type":"label"}]},{"id":"_help_Un4wj2Mak2Ky","title":"Nix flake","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Desktop Installation/Nix flake"},{"name":"iconClass","value":"bx bxl-tux","type":"label"}]}]},{"id":"_help_WOcw2SLH6tbX","title":"Server Installation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation"},{"name":"iconClass","value":"bx bx-server","type":"label"}],"children":[{"id":"_help_Dgg7bR3b6K9j","title":"1. Installing the server","type":"book","attributes":[{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_3tW6mORuTHnB","title":"Packaged version for Linux","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged version for Linux"},{"name":"iconClass","value":"bx bxl-tux","type":"label"}]},{"id":"_help_rWX5eY045zbE","title":"Using Docker","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Docker"},{"name":"iconClass","value":"bx bxl-docker","type":"label"}]},{"id":"_help_moVgBcoxE3EK","title":"On NixOS","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/On NixOS"},{"name":"iconClass","value":"bx bxl-tux","type":"label"}]},{"id":"_help_J1Bb6lVlwU5T","title":"Manually","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manually"},{"name":"iconClass","value":"bx bx-code-alt","type":"label"}]},{"id":"_help_DCmT6e7clMoP","title":"Using Kubernetes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Using Kubernetes"},{"name":"iconClass","value":"bx bxl-kubernetes","type":"label"}]},{"id":"_help_klCWNks3ReaQ","title":"Multiple server instances","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Multiple server instances"},{"name":"iconClass","value":"bx bxs-user-account","type":"label"}]}]},{"id":"_help_vcjrb3VVYPZI","title":"2. Reverse proxy","type":"book","attributes":[{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_ud6MShXL4WpO","title":"Nginx","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Nginx"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_fDLvzOx29Pfg","title":"Apache using Docker","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache using Docker"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_LLzSMXACKhUs","title":"Trusted proxy","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Trusted proxy"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_l2VkvOwUNfZj","title":"HTTPS (TLS)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/HTTPS (TLS)"},{"name":"iconClass","value":"bx bx-lock-alt","type":"label"}]},{"id":"_help_0hzsNCP31IAB","title":"Authentication","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Authentication"},{"name":"iconClass","value":"bx bx-user","type":"label"}]},{"id":"_help_7DAiwaf8Z7Rz","title":"Multi-Factor Authentication","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Multi-Factor Authentication"},{"name":"iconClass","value":"bx bx-stopwatch","type":"label"}]},{"id":"_help_Un4wj2Mak2Ky","title":"Nix flake","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Nix flake.clone"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_yeEaYqosGLSh","title":"Third-party cloud hosting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/Third-party cloud hosting"},{"name":"iconClass","value":"bx bx-cloud","type":"label"}]},{"id":"_help_iGTnKjubbXkA","title":"System Requirements","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/System Requirements"},{"name":"iconClass","value":"bx bx-chip","type":"label"}]}]},{"id":"_help_cbkrhQjrkKrh","title":"Synchronization","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Synchronization"},{"name":"iconClass","value":"bx bx-sync","type":"label"}]},{"id":"_help_RDslemsQ6gCp","title":"Mobile Frontend","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Mobile Frontend"},{"name":"iconClass","value":"bx bx-mobile-alt","type":"label"}]},{"id":"_help_MtPxeAWVAzMg","title":"Web Clipper","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Web Clipper"},{"name":"iconClass","value":"bx bx-paperclip","type":"label"}]},{"id":"_help_n1lujUxCwipy","title":"Upgrading TriliumNext","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Upgrading TriliumNext"},{"name":"iconClass","value":"bx bx-up-arrow-alt","type":"label"}]},{"id":"_help_ODY7qQn5m2FT","title":"Backup","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Backup"},{"name":"iconClass","value":"bx bx-hdd","type":"label"}]},{"id":"_help_tAassRL4RSQL","title":"Data directory","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Data directory"},{"name":"iconClass","value":"bx bx-folder-open","type":"label"}]}]},{"id":"_help_gh7bpGYxajRS","title":"Basic Concepts and Features","type":"book","attributes":[{"name":"iconClass","value":"bx bx-help-circle","type":"label"}],"children":[{"id":"_help_Vc8PjrjAGuOp","title":"UI Elements","type":"book","attributes":[{"name":"iconClass","value":"bx bx-window-alt","type":"label"}],"children":[{"id":"_help_x0JgW8UqGXvq","title":"Vertical and horizontal layout","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout"},{"name":"iconClass","value":"bx bxs-layout","type":"label"}]},{"id":"_help_x3i7MxGccDuM","title":"Global menu","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu"},{"name":"iconClass","value":"bx bx-menu","type":"label"}]},{"id":"_help_oPVyFC7WL2Lp","title":"Note Tree","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree"},{"name":"iconClass","value":"bx bxs-tree-alt","type":"label"}],"children":[{"id":"_help_YtSN43OrfzaA","title":"Note tree contextual menu","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu"},{"name":"iconClass","value":"bx bx-menu","type":"label"}]},{"id":"_help_yTjUdsOi4CIE","title":"Multiple selection","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection"},{"name":"iconClass","value":"bx bx-list-plus","type":"label"}]},{"id":"_help_DvdZhoQZY9Yd","title":"Keyboard shortcuts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts"},{"name":"iconClass","value":"bx bxs-keyboard","type":"label"}]}]},{"id":"_help_BlN9DFI679QC","title":"Ribbon","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon"},{"name":"iconClass","value":"bx bx-dots-horizontal","type":"label"}]},{"id":"_help_3seOhtN8uLIY","title":"Tabs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs"},{"name":"iconClass","value":"bx bx-dock-top","type":"label"}]},{"id":"_help_xYmIYSP6wE3F","title":"Launch Bar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar"},{"name":"iconClass","value":"bx bx-sidebar","type":"label"}]},{"id":"_help_8YBEPzcpUgxw","title":"Note buttons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons"},{"name":"iconClass","value":"bx bx-dots-vertical-rounded","type":"label"}]},{"id":"_help_4TIF1oA4VQRO","title":"Options","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Options"},{"name":"iconClass","value":"bx bx-cog","type":"label"}]},{"id":"_help_luNhaphA37EO","title":"Split View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View"},{"name":"iconClass","value":"bx bx-dock-right","type":"label"}]},{"id":"_help_XpOYSgsLkTJy","title":"Floating buttons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons"},{"name":"iconClass","value":"bx bx-rectangle","type":"label"}]},{"id":"_help_RnaPdbciOfeq","title":"Right Sidebar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar"},{"name":"iconClass","value":"bx bxs-dock-right","type":"label"}]},{"id":"_help_r5JGHN99bVKn","title":"Recent Changes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes"},{"name":"iconClass","value":"bx bx-history","type":"label"}]},{"id":"_help_ny318J39E5Z0","title":"Zoom","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Zoom"},{"name":"iconClass","value":"bx bx-zoom-in","type":"label"}]},{"id":"_help_ZjLYv08Rp3qC","title":"Quick edit","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Quick edit"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_lgKX7r3aL30x","title":"Note Tooltip","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tooltip"},{"name":"iconClass","value":"bx bx-message-detail","type":"label"}]}]},{"id":"_help_BFs8mudNFgCS","title":"Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes"},{"name":"iconClass","value":"bx bx-notepad","type":"label"}],"children":[{"id":"_help_p9kXRFAkwN4o","title":"Note Icons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note Icons"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]},{"id":"_help_0vhv7lsOLy82","title":"Attachments","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Attachments"},{"name":"iconClass","value":"bx bx-paperclip","type":"label"}]},{"id":"_help_IakOLONlIfGI","title":"Cloning Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes"},{"name":"iconClass","value":"bx bx-duplicate","type":"label"}],"children":[{"id":"_help_TBwsyfadTA18","title":"Branch prefix","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix"},{"name":"iconClass","value":"bx bx-rename","type":"label"}]}]},{"id":"_help_bwg0e8ewQMak","title":"Protected Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes"},{"name":"iconClass","value":"bx bx-lock-alt","type":"label"}]},{"id":"_help_MKmLg5x6xkor","title":"Archived Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes"},{"name":"iconClass","value":"bx bx-box","type":"label"}]},{"id":"_help_vZWERwf8U3nx","title":"Note Revisions","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions"},{"name":"iconClass","value":"bx bx-history","type":"label"}]},{"id":"_help_aGlEvb9hyDhS","title":"Sorting Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes"},{"name":"iconClass","value":"bx bx-sort-up","type":"label"}]},{"id":"_help_NRnIZmSMc5sj","title":"Printing & Exporting as PDF","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Printing & Exporting as PDF"},{"name":"iconClass","value":"bx bx-printer","type":"label"}]},{"id":"_help_CoFPLs3dRlXc","title":"Read-Only Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes"},{"name":"iconClass","value":"bx bx-edit-alt","type":"label"}]},{"id":"_help_0ESUbbAxVnoK","title":"Note List","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note List"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]}]},{"id":"_help_wArbEsdSae6g","title":"Navigation","type":"book","attributes":[{"name":"iconClass","value":"bx bx-navigation","type":"label"}],"children":[{"id":"_help_kBrnXNG3Hplm","title":"Tree Concepts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts"},{"name":"iconClass","value":"bx bx-pyramid","type":"label"}]},{"id":"_help_MMiBEQljMQh2","title":"Note Navigation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation"},{"name":"iconClass","value":"bx bxs-navigation","type":"label"}]},{"id":"_help_Ms1nauBra7gq","title":"Quick search","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search"},{"name":"iconClass","value":"bx bx-search-alt-2","type":"label"}]},{"id":"_help_F1r9QtzQLZqm","title":"Jump to...","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to"},{"name":"iconClass","value":"bx bx-send","type":"label"}]},{"id":"_help_eIg8jdvaoNNd","title":"Search","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Search"},{"name":"iconClass","value":"bx bx-search-alt-2","type":"label"}]},{"id":"_help_u3YFHC9tQlpm","title":"Bookmarks","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Bookmarks"},{"name":"iconClass","value":"bx bx-bookmarks","type":"label"}]},{"id":"_help_OR8WJ7Iz9K4U","title":"Note Hoisting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting"},{"name":"iconClass","value":"bx bxs-chevrons-up","type":"label"}]},{"id":"_help_ZjLYv08Rp3qC","title":"Quick edit","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Quick edit.clone"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_9sRHySam5fXb","title":"Workspaces","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces"},{"name":"iconClass","value":"bx bx-door-open","type":"label"}]},{"id":"_help_xWtq5NUHOwql","title":"Similar Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes"},{"name":"iconClass","value":"bx bx-bar-chart","type":"label"}]},{"id":"_help_McngOG2jbUWX","title":"Search in note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note"},{"name":"iconClass","value":"bx bx-search-alt-2","type":"label"}]}]},{"id":"_help_A9Oc6YKKc65v","title":"Keyboard Shortcuts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts"},{"name":"iconClass","value":"bx bxs-keyboard","type":"label"}]},{"id":"_help_Wy267RK4M69c","title":"Themes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Themes"},{"name":"iconClass","value":"bx bx-palette","type":"label"}],"children":[{"id":"_help_VbjZvtUek0Ln","title":"Theme Gallery","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery"},{"name":"iconClass","value":"bx bx-book-reader","type":"label"}]}]},{"id":"_help_mHbBMPDPkVV5","title":"Import & Export","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export"},{"name":"iconClass","value":"bx bx-import","type":"label"}],"children":[{"id":"_help_Oau6X9rCuegd","title":"Markdown","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown"},{"name":"iconClass","value":"bx bxl-markdown","type":"label"}],"children":[{"id":"_help_rJ9grSgoExl9","title":"Supported syntax","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax"},{"name":"iconClass","value":"bx bx-code-alt","type":"label"}]}]},{"id":"_help_syuSEKf2rUGr","title":"Evernote","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote"},{"name":"iconClass","value":"bx bx-window-open","type":"label"}]},{"id":"_help_GnhlmrATVqcH","title":"OneNote","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote"},{"name":"iconClass","value":"bx bx-window-open","type":"label"}]}]},{"id":"_help_rC3pL2aptaRE","title":"Zen mode","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Zen mode"},{"name":"iconClass","value":"bx bxs-yin-yang","type":"label"}]}]},{"id":"_help_s3YCWHBfmYuM","title":"Quick Start","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Quick Start"},{"name":"iconClass","value":"bx bx-run","type":"label"}]},{"id":"_help_i6dbnitykE5D","title":"FAQ","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/FAQ"},{"name":"iconClass","value":"bx bx-question-mark","type":"label"}]},{"id":"_help_KSZ04uQ2D1St","title":"Note Types","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types"},{"name":"iconClass","value":"bx bx-edit","type":"label"}],"children":[{"id":"_help_iPIMuisry3hd","title":"Text","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text"},{"name":"iconClass","value":"bx bx-note","type":"label"}],"children":[{"id":"_help_NwBbFdNZ9h7O","title":"Block quotes & admonitions","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Block quotes & admonitions"},{"name":"iconClass","value":"bx bx-info-circle","type":"label"}]},{"id":"_help_oSuaNgyyKnhu","title":"Bookmarks","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Bookmarks"},{"name":"iconClass","value":"bx bx-bookmark","type":"label"}]},{"id":"_help_veGu4faJErEM","title":"Content language & Right-to-left support","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Content language & Right-to-le"},{"name":"iconClass","value":"bx bx-align-right","type":"label"}]},{"id":"_help_2x0ZAX9ePtzV","title":"Cut to subnote","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Cut to subnote"},{"name":"iconClass","value":"bx bx-cut","type":"label"}]},{"id":"_help_UYuUB1ZekNQU","title":"Developer-specific formatting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Developer-specific formatting"},{"name":"iconClass","value":"bx bx-code-alt","type":"label"}],"children":[{"id":"_help_QxEyIjRBizuC","title":"Code blocks","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks"},{"name":"iconClass","value":"bx bx-code","type":"label"}]}]},{"id":"_help_AgjCISero73a","title":"Footnotes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Footnotes"},{"name":"iconClass","value":"bx bx-bracket","type":"label"}]},{"id":"_help_nRhnJkTT8cPs","title":"Formatting toolbar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Formatting toolbar"},{"name":"iconClass","value":"bx bx-text","type":"label"}]},{"id":"_help_Gr6xFaF6ioJ5","title":"General formatting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/General formatting"},{"name":"iconClass","value":"bx bx-bold","type":"label"}]},{"id":"_help_AxshuNRegLAv","title":"Highlights list","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Highlights list"},{"name":"iconClass","value":"bx bx-highlight","type":"label"}]},{"id":"_help_mT0HEkOsz6i1","title":"Images","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Images"},{"name":"iconClass","value":"bx bx-image-alt","type":"label"}],"children":[{"id":"_help_0Ofbk1aSuVRu","title":"Image references","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Images/Image references"},{"name":"iconClass","value":"bx bxs-file-image","type":"label"}]}]},{"id":"_help_nBAXQFj20hS1","title":"Include Note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Include Note"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_CohkqWQC1iBv","title":"Insert buttons","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Insert buttons"},{"name":"iconClass","value":"bx bx-plus","type":"label"}]},{"id":"_help_oiVPnW8QfnvS","title":"Keyboard shortcuts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Keyboard shortcuts"},{"name":"iconClass","value":"bx bxs-keyboard","type":"label"}]},{"id":"_help_QEAPj01N5f7w","title":"Links","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Links"},{"name":"iconClass","value":"bx bx-link-alt","type":"label"}],"children":[{"id":"_help_3IDVtesTQ8ds","title":"External links","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Links/External links"},{"name":"iconClass","value":"bx bx-link-external","type":"label"}]},{"id":"_help_hrZ1D00cLbal","title":"Internal (reference) links","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Links/Internal (reference) links"},{"name":"iconClass","value":"bx bx-link","type":"label"}]}]},{"id":"_help_S6Xx8QIWTV66","title":"Lists","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Lists"},{"name":"iconClass","value":"bx bx-list-ul","type":"label"}]},{"id":"_help_QrtTYPmdd1qq","title":"Markdown-like formatting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Markdown-like formatting"},{"name":"iconClass","value":"bx bxl-markdown","type":"label"}]},{"id":"_help_YfYAtQBcfo5V","title":"Math Equations","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Math Equations"},{"name":"iconClass","value":"bx bx-math","type":"label"}]},{"id":"_help_dEHYtoWWi8ct","title":"Other features","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Other features"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]},{"id":"_help_gLt3vA97tMcp","title":"Premium features","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Premium features"},{"name":"iconClass","value":"bx bx-star","type":"label"}],"children":[{"id":"_help_ZlN4nump6EbW","title":"Slash Commands","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Premium features/Slash Commands"},{"name":"iconClass","value":"bx bx-menu","type":"label"}]},{"id":"_help_pwc194wlRzcH","title":"Text Snippets","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Premium features/Text Snippets"},{"name":"iconClass","value":"bx bx-align-left","type":"label"}]}]},{"id":"_help_BFvAtE74rbP6","title":"Table of contents","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Table of contents"},{"name":"iconClass","value":"bx bx-heading","type":"label"}]},{"id":"_help_NdowYOC1GFKS","title":"Tables","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Text/Tables"},{"name":"iconClass","value":"bx bx-table","type":"label"}]}]},{"id":"_help_6f9hih2hXXZk","title":"Code","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Code"},{"name":"iconClass","value":"bx bx-code","type":"label"}]},{"id":"_help_m523cpzocqaD","title":"Saved Search","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Saved Search"},{"name":"iconClass","value":"bx bx-file-find","type":"label"}]},{"id":"_help_iRwzGnHPzonm","title":"Relation Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Relation Map"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_bdUJEHsAPYQR","title":"Note Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Note Map"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_HcABDtFCkbFN","title":"Render Note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Render Note"},{"name":"iconClass","value":"bx bx-extension","type":"label"}]},{"id":"_help_s1aBHPd79XYj","title":"Mermaid Diagrams","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Mermaid Diagrams"},{"name":"iconClass","value":"bx bx-selection","type":"label"}],"children":[{"id":"_help_RH6yLjjWJHof","title":"ELK layout","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_WWgeUaBb7UfC","title":"Syntax reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://mermaid.js.org/intro/syntax-reference.html"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_grjYqerjn243","title":"Canvas","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Canvas"},{"name":"iconClass","value":"bx bx-pen","type":"label"}]},{"id":"_help_1vHRoWCEjj0L","title":"Web View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Web View"},{"name":"iconClass","value":"bx bx-globe-alt","type":"label"}]},{"id":"_help_gBbsAeiuUxI5","title":"Mind Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Mind Map"},{"name":"iconClass","value":"bx bx-sitemap","type":"label"}]},{"id":"_help_W8vYD3Q1zjCR","title":"File","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/File"},{"name":"iconClass","value":"bx bx-file-blank","type":"label"}]}]},{"id":"_help_GTwFsgaA0lCt","title":"Collections","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections"},{"name":"iconClass","value":"bx bx-book","type":"label"}],"children":[{"id":"_help_xWbu3jpNWapp","title":"Calendar","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Calendar"},{"name":"iconClass","value":"bx bx-calendar","type":"label"}]},{"id":"_help_2FvYrpmOXm29","title":"Table","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Table"},{"name":"iconClass","value":"bx bx-table","type":"label"}]},{"id":"_help_CtBQqbwXDx1w","title":"Kanban Board","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Kanban Board"},{"name":"iconClass","value":"bx bx-columns","type":"label"}]},{"id":"_help_81SGnPGMk7Xc","title":"Geo Map","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Geo Map"},{"name":"iconClass","value":"bx bx-map-alt","type":"label"}]},{"id":"_help_zP3PMqaG71Ct","title":"Presentation","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Presentation"},{"name":"iconClass","value":"bx bx-slideshow","type":"label"}]},{"id":"_help_8QqnMzx393bx","title":"Grid View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/Grid View"},{"name":"iconClass","value":"bx bxs-grid","type":"label"}]},{"id":"_help_mULW0Q3VojwY","title":"List View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Collections/List View"},{"name":"iconClass","value":"bx bx-list-ul","type":"label"}]}]},{"id":"_help_BgmBlOIl72jZ","title":"Troubleshooting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting"},{"name":"iconClass","value":"bx bx-bug","type":"label"}],"children":[{"id":"_help_wy8So3yZZlH9","title":"Reporting issues","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Reporting issues"},{"name":"iconClass","value":"bx bx-bug-alt","type":"label"}]},{"id":"_help_x59R8J8KV5Bp","title":"Anonymized Database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Anonymized Database"},{"name":"iconClass","value":"bx bx-low-vision","type":"label"}]},{"id":"_help_qzNzp9LYQyPT","title":"Error logs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Error logs"},{"name":"iconClass","value":"bx bx-comment-error","type":"label"}],"children":[{"id":"_help_bnyigUA2UK7s","title":"Backend (server) logs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Error logs/Backend (server) logs"},{"name":"iconClass","value":"bx bx-server","type":"label"}]},{"id":"_help_9yEHzMyFirZR","title":"Frontend logs","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Error logs/Frontend logs"},{"name":"iconClass","value":"bx bx-window-alt","type":"label"}]}]},{"id":"_help_vdlYGAcpXAgc","title":"Synchronization fails with 504 Gateway Timeout","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Synchronization fails with 504"},{"name":"iconClass","value":"bx bx-error","type":"label"}]},{"id":"_help_s8alTXmpFR61","title":"Refreshing the application","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Troubleshooting/Refreshing the application"},{"name":"iconClass","value":"bx bx-refresh","type":"label"}]}]},{"id":"_help_pKK96zzmvBGf","title":"Theme development","type":"book","attributes":[{"name":"iconClass","value":"bx bx-palette","type":"label"}],"children":[{"id":"_help_7NfNr5pZpVKV","title":"Creating a custom theme","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Creating a custom theme"},{"name":"iconClass","value":"bx bxs-color","type":"label"}]},{"id":"_help_WFGzWeUK6arS","title":"Customize the Next theme","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Customize the Next theme"},{"name":"iconClass","value":"bx bx-news","type":"label"}]},{"id":"_help_WN5z4M8ASACJ","title":"Reference","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Reference"},{"name":"iconClass","value":"bx bx-book-open","type":"label"}]},{"id":"_help_AlhDUqhENtH7","title":"Custom app-wide CSS","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Theme development/Custom app-wide CSS"},{"name":"iconClass","value":"bx bxs-file-css","type":"label"}]}]},{"id":"_help_tC7s2alapj8V","title":"Advanced Usage","type":"book","attributes":[{"name":"iconClass","value":"bx bx-rocket","type":"label"}],"children":[{"id":"_help_zEY4DaJG4YT5","title":"Attributes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes"},{"name":"iconClass","value":"bx bx-list-check","type":"label"}],"children":[{"id":"_help_HI6GBBIduIgv","title":"Labels","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Labels"},{"name":"iconClass","value":"bx bx-hash","type":"label"}]},{"id":"_help_Cq5X6iKQop6R","title":"Relations","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Relations"},{"name":"iconClass","value":"bx bx-transfer","type":"label"}]},{"id":"_help_bwZpz2ajCEwO","title":"Attribute Inheritance","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance"},{"name":"iconClass","value":"bx bx-list-plus","type":"label"}]},{"id":"_help_OFXdgB2nNk1F","title":"Promoted Attributes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes"},{"name":"iconClass","value":"bx bx-table","type":"label"}]}]},{"id":"_help_KC1HB96bqqHX","title":"Templates","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Templates"},{"name":"iconClass","value":"bx bx-copy","type":"label"}]},{"id":"_help_BCkXAVs63Ttv","title":"Note Map (Link map, Tree map)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map)"},{"name":"iconClass","value":"bx bxs-network-chart","type":"label"}]},{"id":"_help_R9pX4DGra2Vt","title":"Sharing","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing"},{"name":"iconClass","value":"bx bx-share-alt","type":"label"}],"children":[{"id":"_help_Qjt68inQ2bRj","title":"Serving directly the content of a note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o"},{"name":"iconClass","value":"bx bx-code","type":"label"}]},{"id":"_help_ycBFjKrrwE9p","title":"Exporting HTML for web publishing","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing/Exporting HTML for web publish"},{"name":"iconClass","value":"bx bxs-file-html","type":"label"}]},{"id":"_help_sLIJ6f1dkJYW","title":"Reverse proxy configuration","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Sharing/Reverse proxy configuration"},{"name":"iconClass","value":"bx bx-world","type":"label"}]}]},{"id":"_help_5668rwcirq1t","title":"Advanced Showcases","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases"},{"name":"iconClass","value":"bx bxs-component","type":"label"}],"children":[{"id":"_help_l0tKav7yLHGF","title":"Day Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes"},{"name":"iconClass","value":"bx bx-calendar","type":"label"}]},{"id":"_help_R7abl2fc6Mxi","title":"Weight Tracker","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker"},{"name":"iconClass","value":"bx bx-line-chart","type":"label"}]},{"id":"_help_xYjQUYhpbUEW","title":"Task Manager","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager"},{"name":"iconClass","value":"bx bx-calendar-check","type":"label"}]}]},{"id":"_help_J5Ex1ZrMbyJ6","title":"Custom Request Handler","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Custom Request Handler"},{"name":"iconClass","value":"bx bx-globe","type":"label"}]},{"id":"_help_d3fAXQ2diepH","title":"Custom Resource Providers","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Custom Resource Providers"},{"name":"iconClass","value":"bx bxs-file-plus","type":"label"}]},{"id":"_help_pgxEVkzLl1OP","title":"ETAPI (REST API)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/ETAPI (REST API)"},{"name":"iconClass","value":"bx bx-extension","type":"label"}],"children":[{"id":"_help_9qPsTWBorUhQ","title":"API Reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/rest-api/etapi/"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_47ZrP6FNuoG8","title":"Default Note Title","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Default Note Title"},{"name":"iconClass","value":"bx bx-edit-alt","type":"label"}]},{"id":"_help_wX4HbRucYSDD","title":"Database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database"},{"name":"iconClass","value":"bx bx-data","type":"label"}],"children":[{"id":"_help_oyIAJ9PvvwHX","title":"Manually altering the database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database/Manually altering the database"},{"name":"iconClass","value":"bx bxs-edit","type":"label"}],"children":[{"id":"_help_YKWqdJhzi2VY","title":"SQL Console","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console"},{"name":"iconClass","value":"bx bx-data","type":"label"}]}]},{"id":"_help_6tZeKvSHEUiB","title":"Demo Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Database/Demo Notes"},{"name":"iconClass","value":"bx bx-package","type":"label"}]}]},{"id":"_help_Gzjqa934BdH4","title":"Configuration (config.ini or environment variables)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Configuration (config.ini or e"},{"name":"iconClass","value":"bx bx-cog","type":"label"}],"children":[{"id":"_help_c5xB8m4g2IY6","title":"Trilium instance","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance"},{"name":"iconClass","value":"bx bx-windows","type":"label"}]},{"id":"_help_LWtBjFej3wX3","title":"Cross-Origin Resource Sharing (CORS)","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing "},{"name":"iconClass","value":"bx bx-lock","type":"label"}]}]},{"id":"_help_ivYnonVFBxbQ","title":"Bulk Actions","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Bulk Actions"},{"name":"iconClass","value":"bx bx-list-plus","type":"label"}]},{"id":"_help_4FahAwuGTAwC","title":"Note source","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Note source"},{"name":"iconClass","value":"bx bx-code","type":"label"}]},{"id":"_help_1YeN2MzFUluU","title":"Technologies used","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used"},{"name":"iconClass","value":"bx bx-pyramid","type":"label"}],"children":[{"id":"_help_MI26XDLSAlCD","title":"CKEditor","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/CKEditor"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_N4IDkixaDG9C","title":"MindElixir","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/MindElixir"},{"name":"iconClass","value":"bx bx-sitemap","type":"label"}]},{"id":"_help_H0mM1lTxF9JI","title":"Excalidraw","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw"},{"name":"iconClass","value":"bx bx-pen","type":"label"}]},{"id":"_help_MQHyy2dIFgxS","title":"Leaflet","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Technologies used/Leaflet"},{"name":"iconClass","value":"bx bx-map-alt","type":"label"}]}]},{"id":"_help_m1lbrzyKDaRB","title":"Note ID","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Note ID"},{"name":"iconClass","value":"bx bx-hash","type":"label"}]},{"id":"_help_0vTSyvhPTAOz","title":"Internal API","type":"book","attributes":[{"name":"iconClass","value":"bx bxs-component","type":"label"}],"children":[{"id":"_help_z8O2VG4ZZJD7","title":"API Reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/rest-api/internal/"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_2mUhVmZK8RF3","title":"Hidden Notes","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Hidden Notes"},{"name":"iconClass","value":"bx bx-hide","type":"label"}]},{"id":"_help_uYF7pmepw27K","title":"Metrics","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Metrics"},{"name":"iconClass","value":"bx bxs-data","type":"label"}],"children":[{"id":"_help_bOP3TB56fL1V","title":"grafana-dashboard.json","type":"doc","attributes":[{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_64ZTlUPgEPtW","title":"Safe mode","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Safe mode"},{"name":"iconClass","value":"bx bxs-virus-block","type":"label"}]},{"id":"_help_HAIOFBoYIIdO","title":"Nightly release","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Nightly release"},{"name":"iconClass","value":"bx bx-moon","type":"label"}]},{"id":"_help_ZmT9ln8XJX2o","title":"Read-only database","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Advanced Usage/Read-only database"},{"name":"iconClass","value":"bx bx-book-reader","type":"label"}]}]},{"id":"_help_GBBMSlVSOIGP","title":"AI","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI"},{"name":"iconClass","value":"bx bx-bot","type":"label"}],"children":[{"id":"_help_WkM7gsEUyCXs","title":"Providers","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers"},{"name":"iconClass","value":"bx bx-select-multiple","type":"label"}],"children":[{"id":"_help_7EdTxPADv95W","title":"Ollama","type":"book","attributes":[{"name":"iconClass","value":"bx bx-message-dots","type":"label"}],"children":[{"id":"_help_vvUCN7FDkq7G","title":"Installing Ollama","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers/Ollama/Installing Ollama"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_ZavFigBX9AwP","title":"OpenAI","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers/OpenAI"},{"name":"iconClass","value":"bx bx-message-dots","type":"label"}]},{"id":"_help_e0lkirXEiSNc","title":"Anthropic","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Providers/Anthropic"},{"name":"iconClass","value":"bx bx-message-dots","type":"label"}]}]}]},{"id":"_help_CdNpE2pqjmI6","title":"Scripting","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting"},{"name":"iconClass","value":"bx bxs-file-js","type":"label"}],"children":[{"id":"_help_yIhgI5H7A2Sm","title":"Frontend Basics","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics"},{"name":"iconClass","value":"bx bx-window","type":"label"}],"children":[{"id":"_help_MgibgPcfeuGz","title":"Custom Widgets","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets"},{"name":"iconClass","value":"bx bxs-widget","type":"label"}],"children":[{"id":"_help_YNxAqkI5Kg1M","title":"Word count widget","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Word count widget"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_SynTBQiBsdYJ","title":"Widget Basics","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_M8IppdwVHSjG","title":"Right pane widget","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Right pane widget"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_VqGQnnPGnqAU","title":"CSS","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/CSS"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_es8OU2GuguFU","title":"Examples","type":"book","attributes":[{"name":"iconClass","value":"bx bx-code-alt","type":"label"}],"children":[{"id":"_help_TjLYAo3JMO8X","title":"\"New Task\" launcher button","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Examples/New Task launcher button"},{"name":"iconClass","value":"bx bx-task","type":"label"}]},{"id":"_help_7kZPMD0uFwkH","title":"Downloading responses from Google Forms","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Examples/Downloading responses from Goo"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_DL92EjAaXT26","title":"Using promoted attributes to configure scripts","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Frontend Basics/Examples/Using promoted attributes to c"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]}]},{"id":"_help_SPirpZypehBG","title":"Backend scripts","type":"book","attributes":[{"name":"iconClass","value":"bx bx-server","type":"label"}],"children":[{"id":"_help_fZ2IGYFXjkEy","title":"Server-side imports","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Backend scripts/Server-side imports"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_GPERMystNGTB","title":"Events","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Backend scripts/Events"},{"name":"iconClass","value":"bx bx-rss","type":"label"}]}]},{"id":"_help_GLks18SNjxmC","title":"Script API","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Script API"},{"name":"iconClass","value":"bx bx-code-curly","type":"label"}],"children":[{"id":"_help_Q2z6av6JZVWm","title":"Frontend API","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/script-api/frontend"},{"name":"iconClass","value":"bx bx-folder","type":"label"}],"enforceAttributes":true,"children":[{"id":"_help_habiZ3HU8Kw8","title":"FNote","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/script-api/frontend/interfaces/FNote.html"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_MEtfsqa5VwNi","title":"Backend API","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://docs.triliumnotes.org/script-api/backend"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"enforceAttributes":true}]},{"id":"_help_vElnKeDNPSVl","title":"Logging","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Logging"},{"name":"iconClass","value":"bx bx-terminal","type":"label"}]}]},{"id":"_help_Fm0j45KqyHpU","title":"Miscellaneous","type":"book","attributes":[{"name":"iconClass","value":"bx bx-info-circle","type":"label"}],"children":[{"id":"_help_WFbFXrgnDyyU","title":"Privacy Policy","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Miscellaneous/Privacy Policy"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_NcsmUYZRWEW4","title":"Patterns of personal knowledge","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Miscellaneous/Patterns of personal knowledge"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]}] \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Read-only database.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Read-only database.html new file mode 100644 index 000000000..e170c6fe9 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Read-only database.html @@ -0,0 +1,42 @@ + +

      The read-only database is an alternative to Sharing notes. + Although the share functionality works pretty well to publish pages to + the Internet in a wiki, blog-like format it does not offer the full functionality + behind Trilium (such as the advanced Search or + the interactivity behind Collections or + the various Note Types).

      +

      When the database is in read-only mode, the Trilium application can be + used as normal, but editing is disabled and changes are made in-memory + only.

      +

      What it does

      +
        +
      • All notes are read-only, without the possibility of editing them.
      • +
      • Features that would normally alter the database such as the list of recent + notes are disabled.
      • +
      +

      Limitations

      +
        +
      • Some features might “slip through” and still end up creating a note, for + example. +
          +
        • However, the database is still read-only, so all modifications will be + reset if the server is restarted.
        • +
        • Whenever this occurs, ERROR: read-only DB ignored will be shown + in the logs.
        • +
        +
      • +
      +

      Setting a database as read-only

      +

      First, make sure the database is initialized (e.g. the first set up is + complete). Then modify the config.ini by + looking for the [General] section and adding a new readOnly field:

      [General]
      +readOnly=true
      +

      If your server is already running, restart it to apply the changes.

      +

      Similarly, to disable read-only remove the line or set it to false.

      \ No newline at end of file diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 98c811ece..c046fac03 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -14150,6 +14150,82 @@ "format": "markdown", "dataFileName": "Nightly release.md", "attachments": [] + }, + { + "isClone": false, + "noteId": "ZmT9ln8XJX2o", + "notePath": [ + "pOsGYCXsbNQG", + "tC7s2alapj8V", + "ZmT9ln8XJX2o" + ], + "title": "Read-only database", + "notePosition": 270, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-book-reader", + "isInheritable": false, + "position": 30 + }, + { + "type": "label", + "name": "shareAlias", + "value": "read-only-db", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wy8So3yZZlH9", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Gzjqa934BdH4", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 100 + } + ], + "format": "markdown", + "dataFileName": "Read-only database.md", + "attachments": [] } ] }, diff --git a/docs/User Guide/User Guide/Advanced Usage/Read-only database.md b/docs/User Guide/User Guide/Advanced Usage/Read-only database.md new file mode 100644 index 000000000..cacdc9675 --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Read-only database.md @@ -0,0 +1,32 @@ +# Read-only database +> [!WARNING] +> This functionality is still in preview, expect possible issues or even the feature disappearing completely. +> Feel free to [report](../Troubleshooting/Reporting%20issues.md) any issues you might have. + +The read-only database is an alternative to Sharing notes. Although the share functionality works pretty well to publish pages to the Internet in a wiki, blog-like format it does not offer the full functionality behind Trilium (such as the advanced Search or the interactivity behind Collections or the various Note Types). + +When the database is in read-only mode, the Trilium application can be used as normal, but editing is disabled and changes are made in-memory only. + +## What it does + +* All notes are read-only, without the possibility of editing them. +* Features that would normally alter the database such as the list of recent notes are disabled. + +## Limitations + +* Some features might “slip through” and still end up creating a note, for example. + * However, the database is still read-only, so all modifications will be reset if the server is restarted. + * Whenever this occurs, `ERROR: read-only DB ignored` will be shown in the logs. + +## Setting a database as read-only + +First, make sure the database is initialized (e.g. the first set up is complete). Then modify the [config.ini](Configuration%20\(config.ini%20or%20e.md) by looking for the `[General]` section and adding a new `readOnly` field: + +``` +[General] +readOnly=true +``` + +If your server is already running, restart it to apply the changes. + +Similarly, to disable read-only remove the line or set it to `false`. \ No newline at end of file From 4ae38ac5d6365835e4dd4b5513cb913ae1af42d5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 5 Nov 2025 18:32:34 +0200 Subject: [PATCH 12/12] docs(user): widget basics missing template (closes #6148) --- .../en/User Guide/User Guide/AI.html | 51 +++--- .../Advanced Usage/Read-only database.html | 29 ++-- .../Installation & Setup/Data directory.html | 157 +++++++++--------- .../Custom Widgets/Widget Basics.html | 23 +-- .../Developer Guide/Documentation.md | 2 +- docs/User Guide/!!!meta.json | 98 +++++------ .../Custom Widgets/Widget Basics.md | 8 +- 7 files changed, 181 insertions(+), 187 deletions(-) diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html index 11ad7e821..6d9c62f15 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI.html @@ -19,7 +19,8 @@ class="image image_resized" style="width:74.04%;"> -

      Embeddings

      + +

      Embeddings

      Embeddings are important as it allows us to have an compact AI “summary” (it's not human readable text) of each of your Notes, that we can then perform mathematical functions on (such as cosine similarity) @@ -79,59 +80,59 @@ class="image image_resized" style="width:74.04%;">

      These are the tools that currently exist, and will certainly be updated to be more effectively (and even more to be added!):

        -
      • search_notes +
      • search_notes
          -
        • Semantic search
        • +
        • Semantic search
      • -
      • keyword_search +
      • keyword_search
          -
        • Keyword-based search
        • +
        • Keyword-based search
      • -
      • attribute_search +
      • attribute_search
          -
        • Attribute-specific search
        • +
        • Attribute-specific search
      • -
      • search_suggestion +
      • search_suggestion
          -
        • Search syntax helper
        • +
        • Search syntax helper
      • -
      • read_note +
      • read_note
          -
        • Read note content (helps the LLM read Notes)
        • +
        • Read note content (helps the LLM read Notes)
      • -
      • create_note +
      • create_note
          -
        • Create a Note
        • +
        • Create a Note
      • -
      • update_note +
      • update_note
          -
        • Update a Note
        • +
        • Update a Note
      • -
      • manage_attributes +
      • manage_attributes
          -
        • Manage attributes on a Note
        • +
        • Manage attributes on a Note
      • -
      • manage_relationships +
      • manage_relationships
          -
        • Manage the various relationships between Notes
        • +
        • Manage the various relationships between Notes
      • -
      • extract_content +
      • extract_content
          -
        • Used to smartly extract content from a Note
        • +
        • Used to smartly extract content from a Note
      • -
      • calendar_integration +
      • calendar_integration
          -
        • Used to find date notes, create date notes, get the daily note, etc.
        • +
        • Used to find date notes, create date notes, get the daily note, etc.
      @@ -146,12 +147,12 @@ class="image image_resized" style="width:74.04%;">

      Overview

      To start, simply press the Chat with Notes button in the  Launch Bar.

      + class="reference-link" href="#root/_help_xYmIYSP6wE3F">Launch Bar.

      -

      If you don't see the button in the Launch Bar, +

      If you don't see the button in the Launch Bar, you might need to move it from the Available Launchers section to the Visible Launchers section:

      This functionality is still in preview, expect possible issues or even the feature disappearing completely. -
      Feel free to report any - issues you might have.

      +
      Feel free to report any issues you might + have.

      The read-only database is an alternative to Sharing notes. - Although the share functionality works pretty well to publish pages to - the Internet in a wiki, blog-like format it does not offer the full functionality - behind Trilium (such as the advanced Search or - the interactivity behind Collections or - the various Note Types).

      + href="#root/_help_R9pX4DGra2Vt">Sharing notes. Although the share functionality + works pretty well to publish pages to the Internet in a wiki, blog-like + format it does not offer the full functionality behind Trilium (such as + the advanced Search or + the interactivity behind Collections or + the various Note Types).

      When the database is in read-only mode, the Trilium application can be used as normal, but editing is disabled and changes are made in-memory only.

      What it does

        -
      • All notes are read-only, without the possibility of editing them.
      • -
      • Features that would normally alter the database such as the list of recent +
      • All notes are read-only, without the possibility of editing them.
      • +
      • Features that would normally alter the database such as the list of recent notes are disabled.

      Limitations

        -
      • Some features might “slip through” and still end up creating a note, for +
      • Some features might “slip through” and still end up creating a note, for example.
          -
        • However, the database is still read-only, so all modifications will be +
        • However, the database is still read-only, so all modifications will be reset if the server is restarted.
        • -
        • Whenever this occurs, ERROR: read-only DB ignored will be shown +
        • Whenever this occurs, ERROR: read-only DB ignored will be shown in the logs.

      Setting a database as read-only

      First, make sure the database is initialized (e.g. the first set up is - complete). Then modify the config.ini by + complete). Then modify the config.ini by looking for the [General] section and adding a new readOnly field:

      [General]
       readOnly=true

      If your server is already running, restart it to apply the changes.

      diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html index ad81d00c1..9f2de8853 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html @@ -1,12 +1,12 @@

      Data directory contains:

        -
      • document.db - database +
      • document.db - database
      • -
      • config.ini - instance level settings like port on which the +
      • config.ini - instance level settings like port on which the Trilium application runs
      • -
      • backup - contains automatically backup of +
      • backup - contains automatically backup of documents
      • -
      • log - contains application log files
      • +
      • log - contains application log files

      Location of the data directory

      Easy way how to find out which data directory Trilium uses is to look @@ -18,14 +18,11 @@

      Data directory is normally named trilium-data and it is stored in:

        -
      • /home/[user]/.local/share for Linux
      • -
      • C:\Users\[user]\AppData\Roaming for Windows Vista and up
      • -
      • /Users/[user]/Library/Application Support for Mac OS
      • -
      • user's home is a fallback if some of the paths above don't exist
      • -
      • user's home is also a default setup for [[docker|Docker server installation]]
      • +
      • /home/[user]/.local/share for Linux
      • +
      • C:\Users\[user]\AppData\Roaming for Windows Vista and up
      • +
      • /Users/[user]/Library/Application Support for Mac OS
      • +
      • user's home is a fallback if some of the paths above don't exist
      • +
      • user's home is also a default setup for [[docker|Docker server installation]]

      If you want to back up your Trilium data, just backup this single directory - it contains everything you need.

      @@ -35,17 +32,15 @@ variable to some other location:

      Windows

        -
      1. Press the Windows key on your keyboard.
      2. -
      3. Search and select “Edit the system variables”.
      4. -
      5. Press the “Environment Variables…” button in the bottom-right of the newly +
      6. Press the Windows key on your keyboard.
      7. +
      8. Search and select “Edit the system variables”.
      9. +
      10. Press the “Environment Variables…” button in the bottom-right of the newly opened screen.
      11. -
      12. On the top section ("User variables for [user]"), press the “New…” button.
      13. -
      14. In the Variable name field insert TRILIUM_DATA_DIR.
      15. -
      16. Press the Browse Directory… button and select the new directory - where to store the database.
      17. -
      18. Close all the windows by pressing the OK button for each of them.
      19. +
      20. On the top section ("User variables for [user]"), press the “New…” button.
      21. +
      22. In the Variable name field insert TRILIUM_DATA_DIR.
      23. +
      24. Press the Browse Directory… button and select the new directory + where to store the database.
      25. +
      26. Close all the windows by pressing the OK button for each of them.

      Linux

      export TRILIUM_DATA_DIR=/home/myuser/data/my-trilium-data

      Mac OS X

      @@ -74,63 +69,61 @@

      Fine-grained directory/path location

      Apart from the data directory, some of the subdirectories of it can be moved elsewhere by changing an environment variable:

      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Environment variableDefault valueDescription
      TRILIUM_DOCUMENT_PATH - ${TRILIUM_DATA_DIR}/document.db - Path to the Database (storing - all notes and metadata).
      TRILIUM_BACKUP_DIR - ${TRILIUM_DATA_DIR}/backup - Directory where automated Backup databases - are stored.
      TRILIUM_LOG_DIR - ${TRILIUM_DATA_DIR}/log - Directory where daily Backend (server) logs are - stored.
      TRILIUM_TMP_DIR - ${TRILIUM_DATA_DIR}/tmp - Directory where temporary files are stored (for example when opening in - an external app).
      TRILIUM_ANONYMIZED_DB_DIR - ${TRILIUM_DATA_DIR}/anonymized-db - Directory where a Anonymized Database is - stored.
      TRILIUM_CONFIG_INI_PATH - ${TRILIUM_DATA_DIR}/config.ini - Path to Configuration (config.ini or environment variables) file.
      -
      \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment variableDefault valueDescription
      TRILIUM_DOCUMENT_PATH + ${TRILIUM_DATA_DIR}/document.db + Path to the Database (storing + all notes and metadata).
      TRILIUM_BACKUP_DIR + ${TRILIUM_DATA_DIR}/backup + Directory where automated Backup databases + are stored.
      TRILIUM_LOG_DIR + ${TRILIUM_DATA_DIR}/log + Directory where daily Backend (server) logs are + stored.
      TRILIUM_TMP_DIR + ${TRILIUM_DATA_DIR}/tmp + Directory where temporary files are stored (for example when opening in + an external app).
      TRILIUM_ANONYMIZED_DB_DIR + ${TRILIUM_DATA_DIR}/anonymized-db + Directory where a Anonymized Database is + stored.
      TRILIUM_CONFIG_INI_PATH + ${TRILIUM_DATA_DIR}/config.ini + Path to Configuration (config.ini or environment variables) file.
      \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.html index 84a15c29e..6048e6f11 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.html @@ -8,7 +8,7 @@ get parentWidget() { return "left-pane"; } doRender() { - this.$widget = $(""); + this.$widget = $("<div id='my-widget'>"); return this.$widget; } } @@ -16,19 +16,19 @@ module.exports = new MyWidget();

      To implement this widget:

        -
      1. Create a new JS Frontend note in Trilium and paste in the code +
      2. Create a new JS Frontend note in Trilium and paste in the code above.
      3. -
      4. Assign the #widget attribute to +
      5. Assign the #widget attribute to the note.
      6. -
      7. Restart Trilium or reload the window.
      8. +
      9. Restart Trilium or reload the window.
      -

      To verify that the widget is working, open the developer tools (Cmd + Shift + I) +

      To verify that the widget is working, open the developer tools (Ctrl + Shift + I) and run document.querySelector("#my-widget"). If the element is found, the widget is functioning correctly. If undefined is returned, double-check that the note has the #widget attribute.

      Step 2: Adding an UI Element

      -

      Next, let's improve the widget by adding a button to it.

      const template = ``;
      +

      Next, let's improve the widget by adding a button to it.

      const template = `<div id="my-widget"><button>Click Me!</button></div>`;
       
       class MyWidget extends api.BasicWidget {
           get position() {return 1;}
      @@ -47,7 +47,7 @@ module.exports = new MyWidget();

      To make the button more visually appealing and position it correctly, we'll apply some custom styling. Trilium includes Box Icons, which we'll use to replace the button text with an icon. For example the bx bxs-magic-wand icon.

      -

      Here's the updated template:

      const template = ``;
      +

      Here's the updated template:

      const template = `<div id="my-widget"><button class="tree-floating-button bx bxs-magic-wand tree-settings-button"></button></div>`;

      Next, we'll adjust the button's position using CSS:

      class MyWidget extends api.BasicWidget {
           get position() { return 1; }
           get parentWidget() { return "left-pane"; }
      @@ -89,13 +89,14 @@ module.exports = new MyWidget();
      module.exports = new MyWidget();

      parentWidget() can be given the following values:

        -
      • left-pane - This renders the widget on the left side of the +
      • left-pane - This renders the widget on the left side of the screen where the note tree lives.
      • -
      • center-pane - This renders the widget in the center of the +
      • center-pane - This renders the widget in the center of the layout in the same location that notes and splits appear.
      • -
      • note-detail-pane - This renders the widget with the +
      • note-detail-pane - This renders the widget with the note in the center pane. This means it can appear multiple times with splits.
      • -
      • right-pane - This renders the widget to the right of any opened +
      • right-pane - This renders the widget to the right of any opened notes.

      Reload the application one last time. diff --git a/docs/Developer Guide/Developer Guide/Documentation.md b/docs/Developer Guide/Developer Guide/Documentation.md index c11d3164c..5d7b25eac 100644 --- a/docs/Developer Guide/Developer Guide/Documentation.md +++ b/docs/Developer Guide/Developer Guide/Documentation.md @@ -1,5 +1,5 @@ # Documentation -There are multiple types of documentation for Trilium: +There are multiple types of documentation for Trilium: * The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing F1. * The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers. diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index c046fac03..12f9549ca 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -14166,6 +14166,48 @@ "type": "text", "mime": "text/html", "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "Gzjqa934BdH4", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wy8So3yZZlH9", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GTwFsgaA0lCt", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 60 + }, { "type": "label", "name": "iconClass", @@ -14179,48 +14221,6 @@ "value": "read-only-db", "isInheritable": false, "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wy8So3yZZlH9", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gzjqa934BdH4", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GTwFsgaA0lCt", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KSZ04uQ2D1St", - "isInheritable": false, - "position": 100 } ], "format": "markdown", @@ -14250,6 +14250,13 @@ "isInheritable": false, "position": 10 }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 20 + }, { "type": "label", "name": "shareAlias", @@ -14263,13 +14270,6 @@ "value": "bx bx-bot", "isInheritable": false, "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 40 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.md b/docs/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.md index 474cba983..39867172f 100644 --- a/docs/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.md +++ b/docs/User Guide/User Guide/Scripting/Frontend Basics/Custom Widgets/Widget Basics.md @@ -11,7 +11,7 @@ class MyWidget extends api.BasicWidget { get parentWidget() { return "left-pane"; } doRender() { - this.$widget = $(""); + this.$widget = $("

      "); return this.$widget; } } @@ -25,14 +25,14 @@ To implement this widget: 2. Assign the `#widget` [attribute](../../../Advanced%20Usage/Attributes.md) to the [note](../../../Basic%20Concepts%20and%20Features/Notes.md). 3. Restart Trilium or reload the window. -To verify that the widget is working, open the developer tools (`Cmd` + `Shift` + `I`) and run `document.querySelector("#my-widget")`. If the element is found, the widget is functioning correctly. If `undefined` is returned, double-check that the [note](../../../Basic%20Concepts%20and%20Features/Notes.md) has the `#widget` [attribute](../../../Advanced%20Usage/Attributes.md). +To verify that the widget is working, open the developer tools (Ctrl + Shift + I) and run `document.querySelector("#my-widget")`. If the element is found, the widget is functioning correctly. If `undefined` is returned, double-check that the [note](../../../Basic%20Concepts%20and%20Features/Notes.md) has the `#widget` [attribute](../../../Advanced%20Usage/Attributes.md). ### Step 2: Adding an UI Element Next, let's improve the widget by adding a button to it. ``` -const template = ``; +const template = `
      `; class MyWidget extends api.BasicWidget { get position() {return 1;} @@ -56,7 +56,7 @@ To make the button more visually appealing and position it correctly, we'll appl Here's the updated template: ``` -const template = ``; +const template = `
      `; ``` Next, we'll adjust the button's position using CSS: