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 d2e4a99f7..c5cdcbe86 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,12655 +1 @@ -{ - "formatVersion": 2, - "appVersion": "0.96.0", - "files": [ - { - "isClone": false, - "noteId": "pOsGYCXsbNQG", - "notePath": [ - "pOsGYCXsbNQG" - ], - "title": "User Guide", - "notePosition": 10, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "User Guide.html", - "attachments": [], - "dirFileName": "User Guide", - "children": [ - { - "isClone": false, - "noteId": "Otzi9La2YAUX", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX" - ], - "title": "Installation & Setup", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-cog", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "Installation & Setup", - "children": [ - { - "isClone": false, - "noteId": "poXkQfguuA0U", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "poXkQfguuA0U" - ], - "title": "Desktop Installation", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l2VkvOwUNfZj", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "desktop-installation", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Desktop Installation.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "WOcw2SLH6tbX", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX" - ], - "title": "Server Installation", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "rWX5eY045zbE", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3tW6mORuTHnB", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J1Bb6lVlwU5T", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "DCmT6e7clMoP", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "moVgBcoxE3EK", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "RDslemsQ6gCp", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l2VkvOwUNfZj", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gzjqa934BdH4", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0hzsNCP31IAB", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "fDLvzOx29Pfg", - "isInheritable": false, - "position": 130 - }, - { - "type": "label", - "name": "shareAlias", - "value": "server-installation", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Server Installation.html", - "attachments": [], - "dirFileName": "Server Installation", - "children": [ - { - "isClone": false, - "noteId": "Dgg7bR3b6K9j", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j" - ], - "title": "1. Installing the server", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "attachments": [], - "dirFileName": "1. Installing the server", - "children": [ - { - "isClone": false, - "noteId": "3tW6mORuTHnB", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j", - "3tW6mORuTHnB" - ], - "title": "Packaged version for Linux", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l2VkvOwUNfZj", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "packaged-server-installation", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxl-tux", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Packaged version for Linux.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "rWX5eY045zbE", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j", - "rWX5eY045zbE" - ], - "title": "Using Docker", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "ud6MShXL4WpO", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "fDLvzOx29Pfg", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "docker-server-installation", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxl-docker", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Using Docker.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "moVgBcoxE3EK", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j", - "moVgBcoxE3EK" - ], - "title": "On NixOS", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "nixos-server-installation", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxl-tux", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "On NixOS.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "J1Bb6lVlwU5T", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j", - "J1Bb6lVlwU5T" - ], - "title": "Manually", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "rWX5eY045zbE", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3tW6mORuTHnB", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l2VkvOwUNfZj", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "manual-server-installation", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-code-alt", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Manually.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "DCmT6e7clMoP", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j", - "DCmT6e7clMoP" - ], - "title": "Using Kubernetes", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "kubernetes-server-installation", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxl-kubernetes", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Using Kubernetes.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "klCWNks3ReaQ", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "Dgg7bR3b6K9j", - "klCWNks3ReaQ" - ], - "title": "Multiple server instances", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "J1Bb6lVlwU5T", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3tW6mORuTHnB", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "rWX5eY045zbE", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "moVgBcoxE3EK", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-user-account", - "isInheritable": false, - "position": 60 - } - ], - "format": "html", - "dataFileName": "Multiple server instances.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "vcjrb3VVYPZI", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "vcjrb3VVYPZI" - ], - "title": "2. Reverse proxy", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "attachments": [], - "dirFileName": "2. Reverse proxy", - "children": [ - { - "isClone": false, - "noteId": "ud6MShXL4WpO", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "vcjrb3VVYPZI", - "ud6MShXL4WpO" - ], - "title": "Nginx", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "nginx-proxy-setup", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Nginx.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "fDLvzOx29Pfg", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "vcjrb3VVYPZI", - "fDLvzOx29Pfg" - ], - "title": "Apache", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "apache-proxy-setup", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Apache.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "l2VkvOwUNfZj", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "l2VkvOwUNfZj" - ], - "title": "TLS Configuration", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gzjqa934BdH4", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "tls-configuration", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "TLS Configuration.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "0hzsNCP31IAB", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "0hzsNCP31IAB" - ], - "title": "Authentication", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YKWqdJhzi2VY", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "7DAiwaf8Z7Rz", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-lock-alt", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Authentication.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "7DAiwaf8Z7Rz", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "WOcw2SLH6tbX", - "7DAiwaf8Z7Rz" - ], - "title": "Multi-Factor Authentication", - "notePosition": 120, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "Gzjqa934BdH4", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "shareAlias", - "value": "multi-factor-authentication", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-stopwatch", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Multi-Factor Authentication.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "cbkrhQjrkKrh", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "cbkrhQjrkKrh" - ], - "title": "Synchronization", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "l2VkvOwUNfZj", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "poXkQfguuA0U", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "synchronization", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-sync", - "isInheritable": false, - "position": 70 - } - ], - "format": "html", - "dataFileName": "Synchronization.html", - "attachments": [ - { - "attachmentId": "PU4LVfX4MaMD", - "title": "sync-in-progress.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Synchronization_sync-in-pr.png" - }, - { - "attachmentId": "s3fKDqHslToK", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Synchronization_image.png" - }, - { - "attachmentId": "wlHlhXqZ0i1S", - "title": "sync-config.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Synchronization_sync-confi.png" - }, - { - "attachmentId": "x0t06ATHph6b", - "title": "sync-init.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Synchronization_sync-init.png" - } - ] - }, - { - "isClone": false, - "noteId": "RDslemsQ6gCp", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "RDslemsQ6gCp" - ], - "title": "Mobile Frontend", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "bwg0e8ewQMak", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "mobile-frontend", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-mobile-alt", - "isInheritable": false, - "position": 60 - } - ], - "format": "html", - "dataFileName": "Mobile Frontend.html", - "attachments": [ - { - "attachmentId": "CyswsZZ3GwtQ", - "title": "mobile-tablet.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Mobile Frontend_mobile-tab.png" - }, - { - "attachmentId": "txzBbmMtgsrx", - "title": "mobile-smartphone.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Mobile Frontend_mobile-sma.png" - } - ] - }, - { - "isClone": false, - "noteId": "MtPxeAWVAzMg", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "MtPxeAWVAzMg" - ], - "title": "Web Clipper", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "web-clipper", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Web Clipper.html", - "attachments": [ - { - "attachmentId": "fhKf5Otv0M5Y", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Web Clipper_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "n1lujUxCwipy", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "n1lujUxCwipy" - ], - "title": "Upgrading TriliumNext", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "rWX5eY045zbE", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ODY7qQn5m2FT", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "shareAlias", - "value": "upgrading-trilium", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Upgrading TriliumNext.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "ODY7qQn5m2FT", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "ODY7qQn5m2FT" - ], - "title": "Backup", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gzjqa934BdH4", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "shareAlias", - "value": "backup", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Backup.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "tAassRL4RSQL", - "notePath": [ - "pOsGYCXsbNQG", - "Otzi9La2YAUX", - "tAassRL4RSQL" - ], - "title": "Data directory", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ODY7qQn5m2FT", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "data-directory", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-folder-open", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Data directory.html", - "attachments": [ - { - "attachmentId": "NONZTci1YkNe", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Data directory_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "gh7bpGYxajRS", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS" - ], - "title": "Basic Concepts and Features", - "notePosition": 30, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-help-circle", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "Basic Concepts and Features", - "children": [ - { - "isClone": false, - "noteId": "Vc8PjrjAGuOp", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp" - ], - "title": "UI Elements", - "notePosition": 10, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-window-alt", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "UI Elements", - "children": [ - { - "isClone": false, - "noteId": "x0JgW8UqGXvq", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "x0JgW8UqGXvq" - ], - "title": "Vertical and horizontal layout", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Ms1nauBra7gq", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x3i7MxGccDuM", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-layout", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Vertical and horizontal layout.html", - "attachments": [ - { - "attachmentId": "9sCZBqokn4vf", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Vertical and horizontal la.png" - }, - { - "attachmentId": "gw3DaUul5ccI", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Vertical and horizontal la.png" - }, - { - "attachmentId": "jhiE5DTkLOCK", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "2_Vertical and horizontal la.png" - }, - { - "attachmentId": "JwO3rUNb9tyU", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "3_Vertical and horizontal la.png" - }, - { - "attachmentId": "NVjM5z6IsNZf", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Vertical and horizontal la.png" - }, - { - "attachmentId": "Z2F8ipVjwugg", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Vertical and horizontal la.png" - } - ] - }, - { - "isClone": false, - "noteId": "x3i7MxGccDuM", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "x3i7MxGccDuM" - ], - "title": "Global menu", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "x0JgW8UqGXvq", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-menu", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Global menu.html", - "attachments": [ - { - "attachmentId": "rCnBqSyldhp9", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Global menu_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "oPVyFC7WL2Lp", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "oPVyFC7WL2Lp" - ], - "title": "Note Tree", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "A9Oc6YKKc65v", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YtSN43OrfzaA", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "tree-manipulation", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-tree-alt", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Note Tree.html", - "attachments": [ - { - "attachmentId": "AF3on7rb7R59", - "title": "drag-and-drop.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Note Tree_drag-and-drop.gif" - }, - { - "attachmentId": "DYf7wm3Yv6EC", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Note Tree_image.png" - }, - { - "attachmentId": "m0KuVBZvGyzW", - "title": "move-note-with-keyboard.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Note Tree_move-note-with-k.gif" - } - ], - "dirFileName": "Note Tree", - "children": [ - { - "isClone": false, - "noteId": "YtSN43OrfzaA", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "oPVyFC7WL2Lp", - "YtSN43OrfzaA" - ], - "title": "Note tree contextual menu", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "yTjUdsOi4CIE", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OR8WJ7Iz9K4U", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwg0e8ewQMak", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "mHbBMPDPkVV5", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "TBwsyfadTA18", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0vhv7lsOLy82", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "aGlEvb9hyDhS", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wArbEsdSae6g", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KSZ04uQ2D1St", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "r5JGHN99bVKn", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "W8vYD3Q1zjCR", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 190 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-menu", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Note tree contextual menu.html", - "attachments": [ - { - "attachmentId": "8DX1hysz3JRh", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note tree contextual menu_.png" - }, - { - "attachmentId": "GQv4tBf9VSON", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Note tree contextual menu_.png" - } - ] - }, - { - "isClone": false, - "noteId": "yTjUdsOi4CIE", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "oPVyFC7WL2Lp", - "yTjUdsOi4CIE" - ], - "title": "Multiple selection", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-plus", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Multiple selection.html", - "attachments": [ - { - "attachmentId": "puanbWdFSfUM", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Multiple selection_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "BlN9DFI679QC", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "BlN9DFI679QC" - ], - "title": "Ribbon", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4FahAwuGTAwC", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwg0e8ewQMak", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWtq5NUHOwql", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m1lbrzyKDaRB", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KSZ04uQ2D1St", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 200 - }, - { - "type": "relation", - "name": "internalLink", - "value": "veGu4faJErEM", - "isInheritable": false, - "position": 210 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-dots-horizontal", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Ribbon.html", - "attachments": [ - { - "attachmentId": "JCiJ3vRhgXY9", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Ribbon_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "3seOhtN8uLIY", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "3seOhtN8uLIY" - ], - "title": "Tabs", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "luNhaphA37EO", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x0JgW8UqGXvq", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-dock-top", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Tabs.html", - "attachments": [ - { - "attachmentId": "b4aCeUxoyA9k", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Tabs_image.png" - }, - { - "attachmentId": "bSaBdT5sH1S7", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Tabs_image.png" - }, - { - "attachmentId": "HffqAHhqe69i", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Tabs_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "xYmIYSP6wE3F", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "xYmIYSP6wE3F" - ], - "title": "Launch Bar", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "x3i7MxGccDuM", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "p9kXRFAkwN4o", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OR8WJ7Iz9K4U", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x0JgW8UqGXvq", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "SynTBQiBsdYJ", - "isInheritable": false, - "position": 80 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-sidebar", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Launch Bar.html", - "attachments": [ - { - "attachmentId": "YsBMjK1g3jd1", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Launch Bar_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "8YBEPzcpUgxw", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "8YBEPzcpUgxw" - ], - "title": "Note buttons", - "notePosition": 130, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4FahAwuGTAwC", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0vhv7lsOLy82", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-dots-vertical-rounded", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Note buttons.html", - "attachments": [ - { - "attachmentId": "iln72O2Xo8zy", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note buttons_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "4TIF1oA4VQRO", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "4TIF1oA4VQRO" - ], - "title": "Options", - "notePosition": 140, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "x3i7MxGccDuM", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-cog", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Options.html", - "attachments": [ - { - "attachmentId": "FZZUANQuZlhe", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Options_image.png" - }, - { - "attachmentId": "IJPuSn5cWjTO", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Options_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "luNhaphA37EO", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "luNhaphA37EO" - ], - "title": "Split View", - "notePosition": 150, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OR8WJ7Iz9K4U", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-dock-right", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Split View.html", - "attachments": [ - { - "attachmentId": "9plNhrKyZaXM", - "title": "3_Split View_image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Split View_3_Split View_im.png" - }, - { - "attachmentId": "Lk0PrljxWYRp", - "title": "4_Split View_image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Split View_4_Split View_im.png" - }, - { - "attachmentId": "Lt1OZVfsht6I", - "title": "Split View_image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Split View_Split View_imag.png" - }, - { - "attachmentId": "qm9Dn3TD1w4k", - "title": "2_Split View_image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Split View_2_Split View_im.png" - }, - { - "attachmentId": "UFITv6o2d4QN", - "title": "1_Split View_image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Split View_1_Split View_im.png" - } - ] - }, - { - "isClone": false, - "noteId": "XpOYSgsLkTJy", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "XpOYSgsLkTJy" - ], - "title": "Floating buttons", - "notePosition": 160, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-rectangle", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Floating buttons.html", - "attachments": [ - { - "attachmentId": "drdKIHK5GzfU", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Floating buttons_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "RnaPdbciOfeq", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "RnaPdbciOfeq" - ], - "title": "Right Sidebar", - "notePosition": 170, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AxshuNRegLAv", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "luNhaphA37EO", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-dock-right", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Right Sidebar.html", - "attachments": [ - { - "attachmentId": "ze9MwXmOPhp0", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Right Sidebar_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "r5JGHN99bVKn", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "r5JGHN99bVKn" - ], - "title": "Recent Changes", - "notePosition": 180, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OR8WJ7Iz9K4U", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YtSN43OrfzaA", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-history", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Recent Changes.html", - "attachments": [ - { - "attachmentId": "3HsqEVy53S2H", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Recent Changes_image.png" - }, - { - "attachmentId": "dxoiP89lrRn6", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Recent Changes_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "ny318J39E5Z0", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "ny318J39E5Z0" - ], - "title": "Zoom", - "notePosition": 190, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-zoom-in", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Zoom.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "ZjLYv08Rp3qC", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "ZjLYv08Rp3qC" - ], - "title": "Quick edit", - "notePosition": 200, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-calendar-edit", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GTwFsgaA0lCt", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "hrZ1D00cLbal", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "lgKX7r3aL30x", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 130 - } - ], - "format": "html", - "dataFileName": "Quick edit.html", - "attachments": [ - { - "attachmentId": "EBOLwVGrA8bv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Quick edit_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "lgKX7r3aL30x", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Vc8PjrjAGuOp", - "lgKX7r3aL30x" - ], - "title": "Note Tooltip", - "notePosition": 210, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "hrZ1D00cLbal", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ZjLYv08Rp3qC", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GTwFsgaA0lCt", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "2FvYrpmOXm29", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Cq5X6iKQop6R", - "isInheritable": false, - "position": 90 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-message-detail", - "isInheritable": false, - "position": 100 - } - ], - "format": "html", - "dataFileName": "Note Tooltip.html", - "attachments": [ - { - "attachmentId": "AHAT2uK9sy9d", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note Tooltip_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "BFs8mudNFgCS", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS" - ], - "title": "Notes", - "notePosition": 40, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "r5JGHN99bVKn", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ODY7qQn5m2FT", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 100 - }, - { - "type": "label", - "name": "shareAlias", - "value": "note", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-notepad", - "isInheritable": false, - "position": 100 - } - ], - "format": "html", - "dataFileName": "Notes.html", - "attachments": [], - "dirFileName": "Notes", - "children": [ - { - "isClone": false, - "noteId": "p9kXRFAkwN4o", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "p9kXRFAkwN4o" - ], - "title": "Note Icons", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "note-icons", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-grid", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Note Icons.html", - "attachments": [ - { - "attachmentId": "6tSmLB1aFql6", - "title": "note-icon-gallery.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note Icons_note-icon-galle.png" - }, - { - "attachmentId": "QBMBQvrXn6G5", - "title": "note-icon-change.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note Icons_note-icon-chang.png" - } - ] - }, - { - "isClone": false, - "noteId": "0vhv7lsOLy82", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0vhv7lsOLy82" - ], - "title": "Attachments", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BFs8mudNFgCS", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "W8vYD3Q1zjCR", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "8YBEPzcpUgxw", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "shareAlias", - "value": "attachments", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-paperclip", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Attachments.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "IakOLONlIfGI", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "IakOLONlIfGI" - ], - "title": "Cloning Notes", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "A9Oc6YKKc65v", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "shareAlias", - "value": "cloning-notes", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-duplicate", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Cloning Notes.html", - "attachments": [ - { - "attachmentId": "3n837NZNUg0t", - "title": "create-clone.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Cloning Notes_create-clone.gif" - } - ], - "dirFileName": "Cloning Notes", - "children": [ - { - "isClone": false, - "noteId": "TBwsyfadTA18", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "IakOLONlIfGI", - "TBwsyfadTA18" - ], - "title": "Branch prefix", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-rename", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Branch prefix.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "bwg0e8ewQMak", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "bwg0e8ewQMak" - ], - "title": "Protected Notes", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "protected-notes", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-lock-alt", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Protected Notes.html", - "attachments": [ - { - "attachmentId": "NISgqIUKwaxr", - "title": "protecting-note.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Protected Notes_protecting.gif" - } - ] - }, - { - "isClone": false, - "noteId": "MKmLg5x6xkor", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "MKmLg5x6xkor" - ], - "title": "Archived Notes", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "archived-notes", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-box", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Archived Notes.html", - "attachments": [ - { - "attachmentId": "ke9mcD9x5Jg4", - "title": "hide-archived.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Archived Notes_hide-archiv.png" - } - ] - }, - { - "isClone": false, - "noteId": "vZWERwf8U3nx", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "vZWERwf8U3nx" - ], - "title": "Note Revisions", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "shareAlias", - "value": "note-revisions", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-history", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Note Revisions.html", - "attachments": [ - { - "attachmentId": "1TA1nUFZzprY", - "title": "note-revisions.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note Revisions_note-revisi.png" - } - ] - }, - { - "isClone": false, - "noteId": "aGlEvb9hyDhS", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "aGlEvb9hyDhS" - ], - "title": "Sorting Notes", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "sorting", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-sort-up", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Sorting Notes.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "NRnIZmSMc5sj", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "NRnIZmSMc5sj" - ], - "title": "Export as PDF", - "notePosition": 120, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wy8So3yZZlH9", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-file-pdf", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Export as PDF.html", - "attachments": [ - { - "attachmentId": "NfSjRsArIQHy", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Export as PDF_image.png" - }, - { - "attachmentId": "Om2EmdZr54vy", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Export as PDF_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "CoFPLs3dRlXc", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "CoFPLs3dRlXc" - ], - "title": "Read-Only Notes", - "notePosition": 130, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 80 - }, - { - "type": "label", - "name": "shareAlias", - "value": "read-only-note", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-edit-alt", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Read-Only Notes.html", - "attachments": [ - { - "attachmentId": "dUmc6vYfoQgZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Read-Only Notes_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "0ESUbbAxVnoK", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0ESUbbAxVnoK" - ], - "title": "Note List", - "notePosition": 140, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GTwFsgaA0lCt", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "W8vYD3Q1zjCR", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 70 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-grid", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Note List.html", - "attachments": [ - { - "attachmentId": "1SA0UPq471jp", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note List_image.png" - }, - { - "attachmentId": "2xoejxffj82c", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Note List_image.png" - }, - { - "attachmentId": "mppVaDhlClF7", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Note List_image.png" - } - ], - "dirFileName": "Note List", - "children": [ - { - "isClone": false, - "noteId": "xWbu3jpNWapp", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0ESUbbAxVnoK", - "xWbu3jpNWapp" - ], - "title": "Calendar View", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-calendar", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ZjLYv08Rp3qC", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Calendar View.html", - "attachments": [ - { - "attachmentId": "37CfbqKYcOtd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Calendar View_image.png" - }, - { - "attachmentId": "akAHcIEcGnWR", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Calendar View_image.png" - }, - { - "attachmentId": "AU7dnIevWPrz", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Calendar View_image.png" - }, - { - "attachmentId": "COiR1tnE86i1", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Calendar View_image.png" - }, - { - "attachmentId": "fOdCNTs2BuI0", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Calendar View_image.png" - }, - { - "attachmentId": "HfBu0m3WXtn2", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Calendar View_image.png" - }, - { - "attachmentId": "ho00OJTNrxVI", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Calendar View_image.png" - }, - { - "attachmentId": "irfNX8n4159U", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Calendar View_image.png" - }, - { - "attachmentId": "KF56rdNuOwWd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Calendar View_image.png" - }, - { - "attachmentId": "oBWr5GL6cUAZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Calendar View_image.png" - }, - { - "attachmentId": "oS6yUoQtfhpg", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Calendar View_image.png" - }, - { - "attachmentId": "u2c09UpZghff", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "11_Calendar View_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "2FvYrpmOXm29", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0ESUbbAxVnoK", - "2FvYrpmOXm29" - ], - "title": "Table View", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m1lbrzyKDaRB", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-table", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Table View.html", - "attachments": [ - { - "attachmentId": "vJYUG9fLQ2Pd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Table View_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "81SGnPGMk7Xc", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "BFs8mudNFgCS", - "0ESUbbAxVnoK", - "81SGnPGMk7Xc" - ], - "title": "Geo Map View", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KSZ04uQ2D1St", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-map-alt", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "lgKX7r3aL30x", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ZjLYv08Rp3qC", - "isInheritable": false, - "position": 70 - } - ], - "format": "html", - "dataFileName": "Geo Map View.html", - "attachments": [ - { - "attachmentId": "1f07O0Z25ZRr", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Geo Map View_image.png" - }, - { - "attachmentId": "3oh61qhNLu7D", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Geo Map View_image.png" - }, - { - "attachmentId": "aCSNn9QlgHFi", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Geo Map View_image.png" - }, - { - "attachmentId": "aCuXZY7WV4li", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Geo Map View_image.png" - }, - { - "attachmentId": "agH6yREFgsoU", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Geo Map View_image.png" - }, - { - "attachmentId": "AHyDUM6R5HeG", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Geo Map View_image.png" - }, - { - "attachmentId": "CcjWLhE3KKfv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Geo Map View_image.png" - }, - { - "attachmentId": "fQy8R1vxKhwN", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Geo Map View_image.png" - }, - { - "attachmentId": "gJ4Yz80jxcbn", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Geo Map View_image.png" - }, - { - "attachmentId": "I39BinT2gsN9", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Geo Map View_image.png" - }, - { - "attachmentId": "IeXU8SLZU7Oz", - "title": "image.jpg", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Geo Map View_image.jpg" - }, - { - "attachmentId": "Mb9kRm63MxjE", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Geo Map View_image.png" - }, - { - "attachmentId": "Mx2xwNIk76ZS", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "11_Geo Map View_image.png" - }, - { - "attachmentId": "oaahbsMRbqd2", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "12_Geo Map View_image.png" - }, - { - "attachmentId": "pGf1p74KKGU4", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "13_Geo Map View_image.png" - }, - { - "attachmentId": "tfa1TRUatWEh", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "14_Geo Map View_image.png" - }, - { - "attachmentId": "tuNZ7Uk9WfX1", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "15_Geo Map View_image.png" - }, - { - "attachmentId": "x6yBLIsY2LSv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "16_Geo Map View_image.png" - }, - { - "attachmentId": "yJMyBRYA3Kwi", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "17_Geo Map View_image.png" - }, - { - "attachmentId": "ZvTlu9WMd37z", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "18_Geo Map View_image.png" - } - ] - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "wArbEsdSae6g", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g" - ], - "title": "Navigation", - "notePosition": 50, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-navigation", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "Navigation", - "children": [ - { - "isClone": false, - "noteId": "kBrnXNG3Hplm", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "kBrnXNG3Hplm" - ], - "title": "Tree Concepts", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BFs8mudNFgCS", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "tree-concepts", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-pyramid", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Tree Concepts.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "MMiBEQljMQh2", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "MMiBEQljMQh2" - ], - "title": "Note Navigation", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "F1r9QtzQLZqm", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "shareAlias", - "value": "note-navigation", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-navigation", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Note Navigation.html", - "attachments": [ - { - "attachmentId": "jDuwVaU8bNtG", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Note Navigation_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "Ms1nauBra7gq", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "Ms1nauBra7gq" - ], - "title": "Quick search", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "F1r9QtzQLZqm", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x0JgW8UqGXvq", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-search-alt-2", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Quick search.html", - "attachments": [ - { - "attachmentId": "H0XlRahnnWbd", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Quick search_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "F1r9QtzQLZqm", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "F1r9QtzQLZqm" - ], - "title": "Jump to Note", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-send", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Jump to Note.html", - "attachments": [ - { - "attachmentId": "P9veX5eFZdPp", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Jump to Note_image.png" - }, - { - "attachmentId": "xA1F6kynr4YU", - "title": "recent-notes.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Jump to Note_recent-notes.gif" - }, - { - "attachmentId": "y8yxomaf1Gkz", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Jump to Note_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "eIg8jdvaoNNd", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "eIg8jdvaoNNd" - ], - "title": "Search", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "A9Oc6YKKc65v", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OR8WJ7Iz9K4U", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YtSN43OrfzaA", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MKmLg5x6xkor", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "qzNzp9LYQyPT", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 130 - }, - { - "type": "label", - "name": "shareAlias", - "value": "search", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-search-alt-2", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Search.html", - "attachments": [ - { - "attachmentId": "WkhcA4FN7sGX", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Search_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "u3YFHC9tQlpm", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "u3YFHC9tQlpm" - ], - "title": "Bookmarks", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "bookmarks", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bookmarks", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Bookmarks.html", - "attachments": [ - { - "attachmentId": "99dD0P74W8QJ", - "title": "bookmark-folder.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Bookmarks_bookmark-folder.png" - }, - { - "attachmentId": "9dX71aLlSl9R", - "title": "bookmarks.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Bookmarks_bookmarks.gif" - } - ] - }, - { - "isClone": false, - "noteId": "OR8WJ7Iz9K4U", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "OR8WJ7Iz9K4U" - ], - "title": "Note Hoisting", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "MMiBEQljMQh2", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "note-hoisting", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-chevrons-up", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Note Hoisting.html", - "attachments": [ - { - "attachmentId": "wGJxetzAtPe0", - "title": "note-hoisting.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Note Hoisting_note-hoistin.gif" - } - ] - }, - { - "isClone": false, - "noteId": "9sRHySam5fXb", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "9sRHySam5fXb" - ], - "title": "Workspaces", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "OR8WJ7Iz9K4U", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "workspace", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-door-open", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Workspaces.html", - "attachments": [ - { - "attachmentId": "V4TIsmtBh8P7", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Workspaces_image.png" - }, - { - "attachmentId": "vZSH2mOKzWBx", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Workspaces_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "xWtq5NUHOwql", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "xWtq5NUHOwql" - ], - "title": "Similar Notes", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bar-chart", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Similar Notes.html", - "attachments": [ - { - "attachmentId": "0JOeCYHahqJS", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Similar Notes_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "McngOG2jbUWX", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "McngOG2jbUWX" - ], - "title": "Search in note", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "MI26XDLSAlCD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "8YBEPzcpUgxw", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-search-alt-2", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Search in note.html", - "attachments": [ - { - "attachmentId": "vEq0g2DHEh3O", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Search in note_image.png" - } - ] - }, - { - "isClone": true, - "noteId": "ZjLYv08Rp3qC", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "wArbEsdSae6g", - "ZjLYv08Rp3qC" - ], - "title": "Quick edit", - "prefix": null, - "dataFileName": "Quick edit.clone.html", - "type": "text", - "format": "html" - } - ] - }, - { - "isClone": false, - "noteId": "A9Oc6YKKc65v", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "A9Oc6YKKc65v" - ], - "title": "Keyboard Shortcuts", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MMiBEQljMQh2", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oiVPnW8QfnvS", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QrtTYPmdd1qq", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 70 - }, - { - "type": "label", - "name": "shareAlias", - "value": "keyboard-shortcuts", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-keyboard", - "isInheritable": false, - "position": 80 - } - ], - "format": "html", - "dataFileName": "Keyboard Shortcuts.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "Wy267RK4M69c", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Wy267RK4M69c" - ], - "title": "Themes", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "VbjZvtUek0Ln", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "themes", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-palette", - "isInheritable": false, - "position": 60 - } - ], - "format": "html", - "dataFileName": "Themes.html", - "attachments": [ - { - "attachmentId": "0IuNvWkls2sX", - "title": "dark-theme.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Themes_dark-theme.png" - }, - { - "attachmentId": "HvcI7pb2pZJQ", - "title": "steel-blue.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Themes_steel-blue.png" - }, - { - "attachmentId": "rwK3vuBgh7sY", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Themes_image.png" - } - ], - "dirFileName": "Themes", - "children": [ - { - "isClone": false, - "noteId": "VbjZvtUek0Ln", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "Wy267RK4M69c", - "VbjZvtUek0Ln" - ], - "title": "Theme Gallery", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "theme-gallery", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-book-reader", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Theme Gallery.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "mHbBMPDPkVV5", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "mHbBMPDPkVV5" - ], - "title": "Import & Export", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-import", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "Import & Export", - "children": [ - { - "isClone": false, - "noteId": "Oau6X9rCuegd", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "mHbBMPDPkVV5", - "Oau6X9rCuegd" - ], - "title": "Markdown", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "rJ9grSgoExl9", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "shareAlias", - "value": "markdown", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxl-markdown", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Markdown.html", - "attachments": [ - { - "attachmentId": "eF5PfSUArlEl", - "title": "markdown-file-import.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Markdown_markdown-file-imp.gif" - }, - { - "attachmentId": "lHeoBedkdNGi", - "title": "markdown-export-subtree.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Markdown_markdown-export-s.gif" - }, - { - "attachmentId": "p8I5seD7NUiV", - "title": "markdown-export-note.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Markdown_markdown-export-n.gif" - }, - { - "attachmentId": "tWIrcy00loZK", - "title": "markdown-inline-import.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Markdown_markdown-inline-i.gif" - } - ], - "dirFileName": "Markdown", - "children": [ - { - "isClone": false, - "noteId": "rJ9grSgoExl9", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "mHbBMPDPkVV5", - "Oau6X9rCuegd", - "rJ9grSgoExl9" - ], - "title": "Supported syntax", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-code-alt", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Supported syntax.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "syuSEKf2rUGr", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "mHbBMPDPkVV5", - "syuSEKf2rUGr" - ], - "title": "Evernote", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "evernote-import", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Evernote.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "GnhlmrATVqcH", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "mHbBMPDPkVV5", - "GnhlmrATVqcH" - ], - "title": "OneNote", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "onenote", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "OneNote.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "rC3pL2aptaRE", - "notePath": [ - "pOsGYCXsbNQG", - "gh7bpGYxajRS", - "rC3pL2aptaRE" - ], - "title": "Zen mode", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-yin-yang", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Zen mode.html", - "attachments": [ - { - "attachmentId": "Asn6uBNwt6JI", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Zen mode_image.png" - }, - { - "attachmentId": "HGcQUOEXJ3Sp", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Zen mode_image.png" - }, - { - "attachmentId": "lqQtSNb8loOS", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Zen mode_image.png" - }, - { - "attachmentId": "LX31yc6Jnksw", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Zen mode_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "s3YCWHBfmYuM", - "notePath": [ - "pOsGYCXsbNQG", - "s3YCWHBfmYuM" - ], - "title": "Quick Start", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "poXkQfguuA0U", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "RDslemsQ6gCp", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "shareAlias", - "value": "quick-start", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-run", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Quick Start.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "i6dbnitykE5D", - "notePath": [ - "pOsGYCXsbNQG", - "i6dbnitykE5D" - ], - "title": "FAQ", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wy8So3yZZlH9", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 80 - }, - { - "type": "label", - "name": "shareAlias", - "value": "faq", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-question-mark", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "FAQ.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "KSZ04uQ2D1St", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St" - ], - "title": "Note Types", - "notePosition": 120, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4FahAwuGTAwC", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GTwFsgaA0lCt", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "1vHRoWCEjj0L", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "gBbsAeiuUxI5", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "W8vYD3Q1zjCR", - "isInheritable": false, - "position": 180 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-edit", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Note Types.html", - "attachments": [ - { - "attachmentId": "CRt4gLIroyZ9", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note Types_image.png" - } - ], - "dirFileName": "Note Types", - "children": [ - { - "isClone": false, - "noteId": "iPIMuisry3hd", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd" - ], - "title": "Text", - "notePosition": 10, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gr6xFaF6ioJ5", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "S6Xx8QIWTV66", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NwBbFdNZ9h7O", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NdowYOC1GFKS", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "UYuUB1ZekNQU", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AgjCISero73a", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "mT0HEkOsz6i1", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nBAXQFj20hS1", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CohkqWQC1iBv", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YfYAtQBcfo5V", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "dEHYtoWWi8ct", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "2x0ZAX9ePtzV", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "gLt3vA97tMcp", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ZlN4nump6EbW", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "A9Oc6YKKc65v", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QrtTYPmdd1qq", - "isInheritable": false, - "position": 200 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MI26XDLSAlCD", - "isInheritable": false, - "position": 210 - }, - { - "type": "label", - "name": "shareAlias", - "value": "text-notes", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "sorted", - "value": "", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-note", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "sorted", - "value": "", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Text.html", - "attachments": [ - { - "attachmentId": "o9zZbojtCsba", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Text_image.png" - }, - { - "attachmentId": "okPQXpSZC3Ml", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Text_image.png" - }, - { - "attachmentId": "TaEkNs5KA6Pv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Text_image.png" - } - ], - "dirFileName": "Text", - "children": [ - { - "isClone": false, - "noteId": "NwBbFdNZ9h7O", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "NwBbFdNZ9h7O" - ], - "title": "Block quotes & admonitions", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "rJ9grSgoExl9", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-info-circle", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Block quotes & admonitions.html", - "attachments": [ - { - "attachmentId": "Cls5AZAbPsIO", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Block quotes & admonitions.png" - }, - { - "attachmentId": "do36b54XpmIC", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Block quotes & admonitions.png" - }, - { - "attachmentId": "hUwfwkRSDeLJ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Block quotes & admonitions.png" - } - ] - }, - { - "isClone": false, - "noteId": "oSuaNgyyKnhu", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "oSuaNgyyKnhu" - ], - "title": "Bookmarks", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bookmark", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Bookmarks.html", - "attachments": [ - { - "attachmentId": "2cn9iY3Qgyjs", - "title": "plus.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Bookmarks_plus.png" - }, - { - "attachmentId": "JaiAT3dHDIyy", - "title": "plus.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Bookmarks_plus.png" - } - ] - }, - { - "isClone": false, - "noteId": "veGu4faJErEM", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "veGu4faJErEM" - ], - "title": "Content language & Right-to-left support", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-align-right", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Content language & Right-to-le.html", - "attachments": [ - { - "attachmentId": "xIGmhxc0vBlC", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Content language & Right-t.png" - } - ] - }, - { - "isClone": false, - "noteId": "2x0ZAX9ePtzV", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "2x0ZAX9ePtzV" - ], - "title": "Cut to subnote", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-cut", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Cut to subnote.html", - "attachments": [ - { - "attachmentId": "eFVU3SiVi9Bi", - "title": "cut-to-subnote.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Cut to subnote_cut-to-subn.gif" - } - ] - }, - { - "isClone": false, - "noteId": "UYuUB1ZekNQU", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "UYuUB1ZekNQU" - ], - "title": "Developer-specific formatting", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QxEyIjRBizuC", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-code-alt", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Developer-specific formatting.html", - "attachments": [ - { - "attachmentId": "7tX4ckOSF8jq", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Developer-specific formatt.png" - }, - { - "attachmentId": "HP741oAz3ebU", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Developer-specific formatt.png" - }, - { - "attachmentId": "r8POqVPCOgmq", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Developer-specific formatt.png" - }, - { - "attachmentId": "UkvE6wdUVadb", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Developer-specific formatt.png" - }, - { - "attachmentId": "V9BY5v8WX15Q", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "4_Developer-specific formatt.png" - }, - { - "attachmentId": "VYcvGUzbobxQ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Developer-specific formatt.png" - }, - { - "attachmentId": "yKVC2F773Mg7", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Developer-specific formatt.png" - } - ], - "dirFileName": "Developer-specific formatting", - "children": [ - { - "isClone": false, - "noteId": "QxEyIjRBizuC", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "UYuUB1ZekNQU", - "QxEyIjRBizuC" - ], - "title": "Code blocks", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s8alTXmpFR61", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-code", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Code blocks.html", - "attachments": [ - { - "attachmentId": "7HhhhyZ4AS0A", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Code blocks_image.png" - }, - { - "attachmentId": "DyHSLO958cdd", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Code blocks_image.png" - }, - { - "attachmentId": "kE8PPw7iyuu9", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Code blocks_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "AgjCISero73a", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "AgjCISero73a" - ], - "title": "Footnotes", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bracket", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Footnotes.html", - "attachments": [ - { - "attachmentId": "33O4oRqrnYWb", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Footnotes_image.png" - }, - { - "attachmentId": "J0Rc5ZC9qozK", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Footnotes_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "nRhnJkTT8cPs", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "nRhnJkTT8cPs" - ], - "title": "Formatting toolbar", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-text", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Formatting toolbar.html", - "attachments": [ - { - "attachmentId": "CZ8ENj2LsBsA", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Formatting toolbar_image.png" - }, - { - "attachmentId": "iu9xb3VivIIl", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Formatting toolbar_image.png" - }, - { - "attachmentId": "MMeih4nJVgNk", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "2_Formatting toolbar_image.png" - }, - { - "attachmentId": "SGaPJHzNyLLV", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "3_Formatting toolbar_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "Gr6xFaF6ioJ5", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "Gr6xFaF6ioJ5" - ], - "title": "General formatting", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Wy267RK4M69c", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Oau6X9rCuegd", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YfYAtQBcfo5V", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bold", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "General formatting.html", - "attachments": [ - { - "attachmentId": "4AfLRjhK3pZP", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "General formatting_image.png" - }, - { - "attachmentId": "OkGcMBKy5b38", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_General formatting_image.png" - }, - { - "attachmentId": "QlP03tA4G97k", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_General formatting_image.png" - }, - { - "attachmentId": "SwE8rNYiMEBb", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_General formatting_image.png" - }, - { - "attachmentId": "VRNPOor1LpMY", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_General formatting_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "AxshuNRegLAv", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "AxshuNRegLAv" - ], - "title": "Highlights list", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "RnaPdbciOfeq", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-highlight", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Highlights list.html", - "attachments": [ - { - "attachmentId": "lDcgRFQO5hDE", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Highlights list_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "mT0HEkOsz6i1", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "mT0HEkOsz6i1" - ], - "title": "Images", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "0vhv7lsOLy82", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "kBrnXNG3Hplm", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "8YBEPzcpUgxw", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NdowYOC1GFKS", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "shareAlias", - "value": "images", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-image-alt", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Images.html", - "attachments": [ - { - "attachmentId": "40jG4olRNAlc", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Images_image.png" - }, - { - "attachmentId": "bDkYm34QEH5a", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Images_image.png" - }, - { - "attachmentId": "Bi9LiB0eMbcH", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "2_Images_image.png" - }, - { - "attachmentId": "dRgFtpOcHwke", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "3_Images_image.png" - }, - { - "attachmentId": "g7xB3E2Dva2q", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Images_image.png" - }, - { - "attachmentId": "Ilz9SuEj39RF", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Images_image.png" - }, - { - "attachmentId": "MTsRB4C0yvKX", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "6_Images_image.png" - }, - { - "attachmentId": "NZJRGKS6yDeg", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "7_Images_image.png" - }, - { - "attachmentId": "PUjxzv10IJkx", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "8_Images_image.png" - }, - { - "attachmentId": "qJXx7vPPD4JW", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Images_image.png" - }, - { - "attachmentId": "SoDKgOmDoyc1", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Images_image.png" - } - ], - "dirFileName": "Images", - "children": [ - { - "isClone": false, - "noteId": "0Ofbk1aSuVRu", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "mT0HEkOsz6i1", - "0Ofbk1aSuVRu" - ], - "title": "Image references", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "gBbsAeiuUxI5", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s8alTXmpFR61", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-file-image", - "isInheritable": false, - "position": 80 - } - ], - "format": "html", - "dataFileName": "Image references.html", - "attachments": [ - { - "attachmentId": "6OgYPJ60Uz76", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Image references_image.png" - }, - { - "attachmentId": "72VNSgANtMVT", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Image references_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "nBAXQFj20hS1", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "nBAXQFj20hS1" - ], - "title": "Include Note", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Include Note.html", - "attachments": [ - { - "attachmentId": "GoLuBbQUYIQE", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Include Note_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "CohkqWQC1iBv", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "CohkqWQC1iBv" - ], - "title": "Insert buttons", - "notePosition": 120, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oSuaNgyyKnhu", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nBAXQFj20hS1", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NRnIZmSMc5sj", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YfYAtQBcfo5V", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-plus", - "isInheritable": false, - "position": 60 - } - ], - "format": "html", - "dataFileName": "Insert buttons.html", - "attachments": [ - { - "attachmentId": "1yYoQCxcL89p", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Insert buttons_image.png" - }, - { - "attachmentId": "75Y6A4kigDhM", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Insert buttons_image.png" - }, - { - "attachmentId": "dZrJ32Cz13fg", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Insert buttons_image.png" - }, - { - "attachmentId": "Mj8uDOt36GM8", - "title": "plus.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Insert buttons_plus.png" - }, - { - "attachmentId": "N1WMDAlCsrdy", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Insert buttons_image.png" - }, - { - "attachmentId": "Oh4esHvmpwwS", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Insert buttons_image.png" - }, - { - "attachmentId": "Pbux81ahBpld", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Insert buttons_image.png" - }, - { - "attachmentId": "r3blICK1PaXy", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Insert buttons_image.png" - }, - { - "attachmentId": "rpuASdGA28bV", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Insert buttons_image.png" - }, - { - "attachmentId": "sNeqHszPiist", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Insert buttons_image.png" - }, - { - "attachmentId": "wTs0nELuclAk", - "title": "plus.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Insert buttons_plus.png" - } - ] - }, - { - "isClone": false, - "noteId": "oiVPnW8QfnvS", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "oiVPnW8QfnvS" - ], - "title": "Keyboard shortcuts", - "notePosition": 130, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "UYuUB1ZekNQU", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MI26XDLSAlCD", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YfYAtQBcfo5V", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-keyboard", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Keyboard shortcuts.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "QEAPj01N5f7w", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "QEAPj01N5f7w" - ], - "title": "Links", - "notePosition": 140, - "prefix": null, - "isExpanded": true, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "links", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-link-alt", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "3IDVtesTQ8ds", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "hrZ1D00cLbal", - "isInheritable": false, - "position": 60 - } - ], - "format": "html", - "dataFileName": "Links.html", - "attachments": [], - "dirFileName": "Links", - "children": [ - { - "isClone": false, - "noteId": "3IDVtesTQ8ds", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "QEAPj01N5f7w", - "3IDVtesTQ8ds" - ], - "title": "External links", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-link-external", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "External links.html", - "attachments": [ - { - "attachmentId": "4iWGIpzSV6MV", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "External links_image.png" - }, - { - "attachmentId": "7VIWlzGk8mAN", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_External links_image.png" - }, - { - "attachmentId": "ScPPPlw9Ab9Y", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_External links_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "hrZ1D00cLbal", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "QEAPj01N5f7w", - "hrZ1D00cLbal" - ], - "title": "Internal (reference) links", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-link", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Internal (reference) links.html", - "attachments": [ - { - "attachmentId": "ausNE2PtmeVB", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Internal (reference) links.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "S6Xx8QIWTV66", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "S6Xx8QIWTV66" - ], - "title": "Lists", - "notePosition": 150, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "dEHYtoWWi8ct", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-ul", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Lists.html", - "attachments": [ - { - "attachmentId": "5cmICTYfg13g", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Lists_image.png" - }, - { - "attachmentId": "6jl7tboJfutt", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Lists_image.png" - }, - { - "attachmentId": "7Ledf67P1S1b", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Lists_image.png" - }, - { - "attachmentId": "d4XfLoK5srYZ", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "3_Lists_image.png" - }, - { - "attachmentId": "eL11eZMPwpmH", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "4_Lists_image.png" - }, - { - "attachmentId": "EnkTpdeLJ6Ft", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "5_Lists_image.png" - }, - { - "attachmentId": "If3k6Tt5cPBt", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "6_Lists_image.png" - }, - { - "attachmentId": "MxgVFEyXwRxo", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Lists_image.png" - }, - { - "attachmentId": "Te4LNZWv4ovM", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Lists_image.png" - }, - { - "attachmentId": "tqeIwudL5QEY", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Lists_image.png" - }, - { - "attachmentId": "zZGT8pbt2myS", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Lists_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "QrtTYPmdd1qq", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "QrtTYPmdd1qq" - ], - "title": "Markdown-like formatting", - "notePosition": 160, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Oau6X9rCuegd", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gr6xFaF6ioJ5", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "S6Xx8QIWTV66", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NwBbFdNZ9h7O", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QxEyIjRBizuC", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CohkqWQC1iBv", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "dEHYtoWWi8ct", - "isInheritable": false, - "position": 80 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxl-markdown", - "isInheritable": false, - "position": 70 - } - ], - "format": "html", - "dataFileName": "Markdown-like formatting.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "YfYAtQBcfo5V", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "YfYAtQBcfo5V" - ], - "title": "Math Equations", - "notePosition": 170, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CohkqWQC1iBv", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wy8So3yZZlH9", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-math", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Math Equations.html", - "attachments": [ - { - "attachmentId": "8eaDWXBew9Q8", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Math Equations_image.png" - }, - { - "attachmentId": "B7EEd3MJTg7C", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Math Equations_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "dEHYtoWWi8ct", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "dEHYtoWWi8ct" - ], - "title": "Other features", - "notePosition": 180, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "S6Xx8QIWTV66", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Oau6X9rCuegd", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "2x0ZAX9ePtzV", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-grid", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Other features.html", - "attachments": [ - { - "attachmentId": "4ik2A185UZ8W", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Other features_image.png" - }, - { - "attachmentId": "o7PD1tyys94h", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Other features_image.png" - }, - { - "attachmentId": "po6eICABPAsk", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Other features_image.png" - }, - { - "attachmentId": "qCefsqgbbdjp", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Other features_image.png" - }, - { - "attachmentId": "QTaczw8qoYL2", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Other features_image.png" - }, - { - "attachmentId": "Roz4NVWVufdl", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Other features_image.png" - }, - { - "attachmentId": "x3lcgBCJOVzB", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Other features_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "gLt3vA97tMcp", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "gLt3vA97tMcp" - ], - "title": "Premium features", - "notePosition": 190, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wy8So3yZZlH9", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-star", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Premium features.html", - "attachments": [], - "dirFileName": "Premium features", - "children": [ - { - "isClone": false, - "noteId": "ZlN4nump6EbW", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "gLt3vA97tMcp", - "ZlN4nump6EbW" - ], - "title": "Slash Commands", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "gLt3vA97tMcp", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "A9Oc6YKKc65v", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NwBbFdNZ9h7O", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "pwc194wlRzcH", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-menu", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Slash Commands.html", - "attachments": [ - { - "attachmentId": "WUCwfWz4wTwf", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Slash Commands_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "pwc194wlRzcH", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "gLt3vA97tMcp", - "pwc194wlRzcH" - ], - "title": "Text Snippets", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "gLt3vA97tMcp", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nRhnJkTT8cPs", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ZlN4nump6EbW", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s8alTXmpFR61", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wy8So3yZZlH9", - "isInheritable": false, - "position": 90 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-align-left", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Text Snippets.html", - "attachments": [ - { - "attachmentId": "1hG8Yw0DTTxr", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Text Snippets_image.png" - }, - { - "attachmentId": "DlisV0iJLVec", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Text Snippets_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "BFvAtE74rbP6", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "BFvAtE74rbP6" - ], - "title": "Table of contents", - "notePosition": 200, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "RnaPdbciOfeq", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-heading", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Table of contents.html", - "attachments": [ - { - "attachmentId": "DL6PJX71Fk3S", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Table of contents_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "NdowYOC1GFKS", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iPIMuisry3hd", - "NdowYOC1GFKS" - ], - "title": "Tables", - "notePosition": 210, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "mT0HEkOsz6i1", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-table", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Tables.html", - "attachments": [ - { - "attachmentId": "60aP3UCfhfth", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Tables_image.png" - }, - { - "attachmentId": "6v5g6D1BpJQD", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Tables_image.png" - }, - { - "attachmentId": "75Kw8b8KOtBo", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Tables_image.png" - }, - { - "attachmentId": "8mu4ZDtWl2wL", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Tables_image.png" - }, - { - "attachmentId": "cFoSdHv9ada4", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Tables_image.png" - }, - { - "attachmentId": "db1nOmkrTQSe", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Tables_image.png" - }, - { - "attachmentId": "faKP7Qh4osof", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Tables_image.png" - }, - { - "attachmentId": "LaeDASzm6aJg", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Tables_image.png" - }, - { - "attachmentId": "pYIg6LGvQANx", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Tables_image.png" - }, - { - "attachmentId": "UdhsypjV4pzZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Tables_image.png" - }, - { - "attachmentId": "VerzwlO9y6Na", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "10_Tables_image.png" - }, - { - "attachmentId": "wYkQvargZlNF", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "11_Tables_image.png" - }, - { - "attachmentId": "YFGeAN41kvZY", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "12_Tables_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "6f9hih2hXXZk", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk" - ], - "title": "Code", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QxEyIjRBizuC", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s8alTXmpFR61", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "shareAlias", - "value": "code-notes", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-code", - "isInheritable": false, - "position": 90 - } - ], - "format": "html", - "dataFileName": "Code.html", - "attachments": [ - { - "attachmentId": "hajUVeLs3EOM", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Code_image.png" - }, - { - "attachmentId": "iKJbcEUkME1a", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Code_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "m523cpzocqaD", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "m523cpzocqaD" - ], - "title": "Saved Search", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "shareAlias", - "value": "saved-search", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-file-find", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Saved Search.html", - "attachments": [ - { - "attachmentId": "FHgW8mO3DAPR", - "title": "saved-search.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Saved Search_saved-search.gif" - } - ] - }, - { - "isClone": false, - "noteId": "iRwzGnHPzonm", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "iRwzGnHPzonm" - ], - "title": "Relation Map", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BFs8mudNFgCS", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "shareAlias", - "value": "relation-map", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-network-chart", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Relation Map.html", - "attachments": [ - { - "attachmentId": "14cTNGCN2eRq", - "title": "relation-map-family-demo.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "Relation Map_relation-map-.gif" - }, - { - "attachmentId": "OfRWMQ0nY400", - "title": "relation-map-family.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Relation Map_relation-map-.png" - }, - { - "attachmentId": "VdiG1uzPjw3q", - "title": "relation-map-dev-process.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Relation Map_relation-map-.png" - }, - { - "attachmentId": "x92CIQzusTuc", - "title": "relation-map-dev-process-demo.gif", - "role": "image", - "mime": "image/gif", - "position": 10, - "dataFileName": "1_Relation Map_relation-map-.gif" - } - ] - }, - { - "isClone": false, - "noteId": "bdUJEHsAPYQR", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "bdUJEHsAPYQR" - ], - "title": "Note Map", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-network-chart", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Note Map.html", - "attachments": [ - { - "attachmentId": "iSjacTLiMjyr", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note Map_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "HcABDtFCkbFN", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "HcABDtFCkbFN" - ], - "title": "Render Note", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6tZeKvSHEUiB", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-extension", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Render Note.html", - "attachments": [ - { - "attachmentId": "SeTpR7xEDMvQ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Render Note_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "GTwFsgaA0lCt", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "GTwFsgaA0lCt" - ], - "title": "Collections", - "notePosition": 130, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "BFs8mudNFgCS", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "book-note", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-book", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Collections.html", - "attachments": [ - { - "attachmentId": "lpq3QC1C5LWg", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Collections_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "s1aBHPd79XYj", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "s1aBHPd79XYj" - ], - "title": "Mermaid Diagrams", - "notePosition": 140, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0Ofbk1aSuVRu", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "mermaid-diagrams", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-selection", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Mermaid Diagrams.html", - "attachments": [ - { - "attachmentId": "EN4DhmgiSH6t", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Mermaid Diagrams_image.png" - }, - { - "attachmentId": "if9nzuWHt5KP", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Mermaid Diagrams_image.png" - }, - { - "attachmentId": "TpPwoCFIePXm", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Mermaid Diagrams_image.png" - } - ], - "dirFileName": "Mermaid Diagrams", - "children": [ - { - "isClone": false, - "noteId": "RH6yLjjWJHof", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "s1aBHPd79XYj", - "RH6yLjjWJHof" - ], - "title": "ELK layout", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-network-chart", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "ELK layout.html", - "attachments": [ - { - "attachmentId": "DOY5C5S4vCs7", - "title": "ELK off.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "ELK layout_ELK off.svg" - }, - { - "attachmentId": "E1ysxcfkmGBZ", - "title": "ELK on.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "ELK layout_ELK on.svg" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "grjYqerjn243", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "grjYqerjn243" - ], - "title": "Canvas", - "notePosition": 170, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-pen", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Canvas.html", - "attachments": [ - { - "attachmentId": "DC9fvvootwwZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Canvas_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "1vHRoWCEjj0L", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "1vHRoWCEjj0L" - ], - "title": "Web View", - "notePosition": 180, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-globe-alt", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Web View.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "gBbsAeiuUxI5", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "gBbsAeiuUxI5" - ], - "title": "Mind Map", - "notePosition": 190, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0Ofbk1aSuVRu", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-sitemap", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Mind Map.html", - "attachments": [ - { - "attachmentId": "Od9jIuQHijXH", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Mind Map_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "W8vYD3Q1zjCR", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "W8vYD3Q1zjCR" - ], - "title": "File", - "notePosition": 210, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ODY7qQn5m2FT", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "mHbBMPDPkVV5", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0vhv7lsOLy82", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "8YBEPzcpUgxw", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0Ofbk1aSuVRu", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nBAXQFj20hS1", - "isInheritable": false, - "position": 120 - } - ], - "format": "html", - "dataFileName": "File.html", - "attachments": [ - { - "attachmentId": "82as0jgkDvVH", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "File_image.png" - }, - { - "attachmentId": "FoEnowwOhzLT", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_File_image.png" - }, - { - "attachmentId": "fZ7VMfQJWuLQ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_File_image.png" - }, - { - "attachmentId": "hddkgf7kr9g4", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_File_image.png" - }, - { - "attachmentId": "hIg9g5pgsjS3", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_File_image.png" - }, - { - "attachmentId": "IC0j8LFCOKka", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_File_image.png" - }, - { - "attachmentId": "wNHX24feZRAl", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_File_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "BgmBlOIl72jZ", - "notePath": [ - "pOsGYCXsbNQG", - "BgmBlOIl72jZ" - ], - "title": "Troubleshooting", - "notePosition": 240, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "MgibgPcfeuGz", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x59R8J8KV5Bp", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ODY7qQn5m2FT", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "qzNzp9LYQyPT", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "shareAlias", - "value": "troubleshooting", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bug", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Troubleshooting.html", - "attachments": [], - "dirFileName": "Troubleshooting", - "children": [ - { - "isClone": false, - "noteId": "wy8So3yZZlH9", - "notePath": [ - "pOsGYCXsbNQG", - "BgmBlOIl72jZ", - "wy8So3yZZlH9" - ], - "title": "Reporting issues", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Reporting issues.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "x59R8J8KV5Bp", - "notePath": [ - "pOsGYCXsbNQG", - "BgmBlOIl72jZ", - "x59R8J8KV5Bp" - ], - "title": "Anonymized Database", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "anonymized-database", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Anonymized Database.html", - "attachments": [ - { - "attachmentId": "xh9biKiOnMJv", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Anonymized Database_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "qzNzp9LYQyPT", - "notePath": [ - "pOsGYCXsbNQG", - "BgmBlOIl72jZ", - "qzNzp9LYQyPT" - ], - "title": "Error logs", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x59R8J8KV5Bp", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "error-logs", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Error logs.html", - "attachments": [ - { - "attachmentId": "8b6d0LUU1aMl", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Error logs_image.png" - }, - { - "attachmentId": "krunYsa4JeyV", - "title": "error-logs-firefox-context-men.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Error logs_error-logs-fire.png" - }, - { - "attachmentId": "ReQzLPod6UtU", - "title": "error-logs-export-subtree.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Error logs_error-logs-expo.png" - } - ] - }, - { - "isClone": false, - "noteId": "vdlYGAcpXAgc", - "notePath": [ - "pOsGYCXsbNQG", - "BgmBlOIl72jZ", - "vdlYGAcpXAgc" - ], - "title": "Synchronization fails with 504 Gateway Timeout", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "ud6MShXL4WpO", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Synchronization fails with 504.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "s8alTXmpFR61", - "notePath": [ - "pOsGYCXsbNQG", - "BgmBlOIl72jZ", - "s8alTXmpFR61" - ], - "title": "Refreshing the application", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Refreshing the application.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "pKK96zzmvBGf", - "notePath": [ - "pOsGYCXsbNQG", - "pKK96zzmvBGf" - ], - "title": "Theme development", - "notePosition": 250, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-palette", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "Theme development", - "children": [ - { - "isClone": false, - "noteId": "7NfNr5pZpVKV", - "notePath": [ - "pOsGYCXsbNQG", - "pKK96zzmvBGf", - "7NfNr5pZpVKV" - ], - "title": "Creating a custom theme", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "WFGzWeUK6arS", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Creating a custom theme.html", - "attachments": [ - { - "attachmentId": "7M6PnFYlxR2t", - "title": "3_Creating a custom theme_im.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Creating a custom theme_3_.png" - }, - { - "attachmentId": "hJc5fBNfSLoY", - "title": "Creating a custom theme_im.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Creating a custom theme_Cr.png" - }, - { - "attachmentId": "j3OaGihW6eg3", - "title": "1_Creating a custom theme_im.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Creating a custom theme_1_.png" - }, - { - "attachmentId": "LCQ6zvUbvXQr", - "title": "4_Creating a custom theme_im.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Creating a custom theme_4_.png" - }, - { - "attachmentId": "mY5EGlN7TO6I", - "title": "5_Creating a custom theme_im.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Creating a custom theme_5_.png" - }, - { - "attachmentId": "TMHEj1M3XFGO", - "title": "2_Creating a custom theme_im.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Creating a custom theme_2_.png" - } - ] - }, - { - "isClone": false, - "noteId": "WFGzWeUK6arS", - "notePath": [ - "pOsGYCXsbNQG", - "pKK96zzmvBGf", - "WFGzWeUK6arS" - ], - "title": "Customize the Next theme", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Customize the Next theme.html", - "attachments": [ - { - "attachmentId": "3fAj97aV2noG", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Customize the Next theme_i.png" - } - ] - }, - { - "isClone": false, - "noteId": "WN5z4M8ASACJ", - "notePath": [ - "pOsGYCXsbNQG", - "pKK96zzmvBGf", - "WN5z4M8ASACJ" - ], - "title": "Reference", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Reference.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "AlhDUqhENtH7", - "notePath": [ - "pOsGYCXsbNQG", - "pKK96zzmvBGf", - "AlhDUqhENtH7" - ], - "title": "Custom app-wide CSS", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Custom app-wide CSS.html", - "attachments": [ - { - "attachmentId": "fkMLaf6reA6I", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Custom app-wide CSS_image.png" - }, - { - "attachmentId": "TIerrMjmeich", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Custom app-wide CSS_image.png" - }, - { - "attachmentId": "YUrNq5vsCwHe", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Custom app-wide CSS_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "tC7s2alapj8V", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V" - ], - "title": "Advanced Usage", - "notePosition": 310, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-rocket", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "attachments": [], - "dirFileName": "Advanced Usage", - "children": [ - { - "isClone": false, - "noteId": "zEY4DaJG4YT5", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5" - ], - "title": "Attributes", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "HI6GBBIduIgv", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Cq5X6iKQop6R", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "shareAlias", - "value": "attributes", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-check", - "isInheritable": false, - "position": 110 - } - ], - "format": "html", - "dataFileName": "Attributes.html", - "attachments": [ - { - "attachmentId": "4YqnV7iugVCJ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Attributes_image.png" - } - ], - "dirFileName": "Attributes", - "children": [ - { - "isClone": false, - "noteId": "HI6GBBIduIgv", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5", - "HI6GBBIduIgv" - ], - "title": "Labels", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GPERMystNGTB", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AlhDUqhENtH7", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "pKK96zzmvBGf", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WFGzWeUK6arS", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MgibgPcfeuGz", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 200 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 210 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 220 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 230 - }, - { - "type": "relation", - "name": "internalLink", - "value": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 240 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 250 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 260 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 270 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AxshuNRegLAv", - "isInheritable": false, - "position": 280 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 290 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 300 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-hash", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Labels.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "Cq5X6iKQop6R", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5", - "Cq5X6iKQop6R" - ], - "title": "Relations", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "HI6GBBIduIgv", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BlN9DFI679QC", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GPERMystNGTB", - "isInheritable": false, - "position": 90 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-transfer", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Relations.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "bwZpz2ajCEwO", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5", - "bwZpz2ajCEwO" - ], - "title": "Attribute Inheritance", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "HI6GBBIduIgv", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Cq5X6iKQop6R", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "attribute-inheritance", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-plus", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Attribute Inheritance.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "OFXdgB2nNk1F", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5", - "OFXdgB2nNk1F" - ], - "title": "Promoted Attributes", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "promoted-attributes", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-table", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Promoted Attributes.html", - "attachments": [ - { - "attachmentId": "4EcBRWF9iCk2", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Promoted Attributes_image.png" - }, - { - "attachmentId": "Txf5Jdm2vqt2", - "title": "promoted-attributes.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Promoted Attributes_promot.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "KC1HB96bqqHX", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "KC1HB96bqqHX" - ], - "title": "Templates", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYjQUYhpbUEW", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 80 - }, - { - "type": "label", - "name": "shareAlias", - "value": "template", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-copy", - "isInheritable": false, - "position": 110 - } - ], - "format": "html", - "dataFileName": "Templates.html", - "attachments": [ - { - "attachmentId": "65tzLidJl1uU", - "title": "template.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Templates_template.png" - }, - { - "attachmentId": "72yQHFCV84st", - "title": "template-create-instance-note.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Templates_template-create-.png" - } - ] - }, - { - "isClone": false, - "noteId": "BCkXAVs63Ttv", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "BCkXAVs63Ttv" - ], - "title": "Note Map (Link map, Tree map)", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "note-map", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-network-chart", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Note Map (Link map, Tree map).html", - "attachments": [ - { - "attachmentId": "F48iB3BbITHb", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Note Map (Link map, Tree m.png" - }, - { - "attachmentId": "scmGuoLQPj8C", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Note Map (Link map, Tree m.png" - } - ] - }, - { - "isClone": false, - "noteId": "R9pX4DGra2Vt", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "R9pX4DGra2Vt" - ], - "title": "Sharing", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GTwFsgaA0lCt", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s1aBHPd79XYj", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "1vHRoWCEjj0L", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "gBbsAeiuUxI5", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "W8vYD3Q1zjCR", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Wy267RK4M69c", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Qjt68inQ2bRj", - "isInheritable": false, - "position": 170 - }, - { - "type": "label", - "name": "shareAlias", - "value": "sharing", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-share-alt", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Sharing.html", - "attachments": [ - { - "attachmentId": "2kLFcH6hel9i", - "title": "shared-list.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Sharing_shared-list.png" - }, - { - "attachmentId": "ibqWQUOCMhIE", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Sharing_image.png" - }, - { - "attachmentId": "ShhsPSZVMQKx", - "title": "share-single-note.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Sharing_share-single-note.png" - } - ], - "dirFileName": "Sharing", - "children": [ - { - "isClone": false, - "noteId": "Qjt68inQ2bRj", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "R9pX4DGra2Vt", - "Qjt68inQ2bRj" - ], - "title": "Serving directly the content of a note", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Serving directly the content o.html", - "attachments": [ - { - "attachmentId": "eizmhhmocL6L", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Serving directly the conte.png" - }, - { - "attachmentId": "ixkXFTSSkdpL", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Serving directly the conte.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "5668rwcirq1t", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "5668rwcirq1t" - ], - "title": "Advanced Showcases", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYjQUYhpbUEW", - "isInheritable": false, - "position": 70 - }, - { - "type": "label", - "name": "shareAlias", - "value": "advanced-showcases", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Advanced Showcases.html", - "attachments": [], - "dirFileName": "Advanced Showcases", - "children": [ - { - "isClone": false, - "noteId": "l0tKav7yLHGF", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "5668rwcirq1t", - "l0tKav7yLHGF" - ], - "title": "Day Notes", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYjQUYhpbUEW", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "shareAlias", - "value": "day-notes", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-calendar", - "isInheritable": false, - "position": 40 - } - ], - "format": "html", - "dataFileName": "Day Notes.html", - "attachments": [ - { - "attachmentId": "9wmaElfXYjWM", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Day Notes_image.png" - }, - { - "attachmentId": "FL40jUEj7xLt", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_Day Notes_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "R7abl2fc6Mxi", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "5668rwcirq1t", - "R7abl2fc6Mxi" - ], - "title": "Weight Tracker", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GLks18SNjxmC", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 80 - }, - { - "type": "label", - "name": "shareAlias", - "value": "weight-tracker", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Weight Tracker.html", - "attachments": [ - { - "attachmentId": "Ah5QpwUUEGf8", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Weight Tracker_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "xYjQUYhpbUEW", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "5668rwcirq1t", - "xYjQUYhpbUEW" - ], - "title": "Task Manager", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "kBrnXNG3Hplm", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GPERMystNGTB", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 100 - }, - { - "type": "label", - "name": "shareAlias", - "value": "task-manager", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-calendar-check", - "isInheritable": false, - "position": 120 - } - ], - "format": "html", - "dataFileName": "Task Manager.html", - "attachments": [ - { - "attachmentId": "D0RLhLxmO9ME", - "title": "task-manager.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Task Manager_task-manager.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "J5Ex1ZrMbyJ6", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "J5Ex1ZrMbyJ6" - ], - "title": "Custom Request Handler", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GLks18SNjxmC", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "shareAlias", - "value": "custom-request-handler", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Custom Request Handler.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "d3fAXQ2diepH", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "d3fAXQ2diepH" - ], - "title": "Custom Resource Providers", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Custom Resource Providers.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "pgxEVkzLl1OP", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "pgxEVkzLl1OP" - ], - "title": "ETAPI (REST API)", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "etapi", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "ETAPI (REST API).html", - "attachments": [], - "dirFileName": "ETAPI (REST API)", - "children": [ - { - "isClone": false, - "noteId": "9qPsTWBorUhQ", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "pgxEVkzLl1OP", - "9qPsTWBorUhQ" - ], - "title": "API Reference", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "webView", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "webViewSrc", - "value": "/etapi/docs", - "isInheritable": false, - "position": 10 - } - ], - "dataFileName": "API Reference.dat", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "47ZrP6FNuoG8", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "47ZrP6FNuoG8" - ], - "title": "Default Note Title", - "notePosition": 140, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "habiZ3HU8Kw8", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "default-note-title", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Default Note Title.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "wX4HbRucYSDD", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "wX4HbRucYSDD" - ], - "title": "Database", - "notePosition": 160, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6tZeKvSHEUiB", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oyIAJ9PvvwHX", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Gzjqa934BdH4", - "isInheritable": false, - "position": 40 - }, - { - "type": "label", - "name": "shareAlias", - "value": "database", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-data", - "isInheritable": false, - "position": 50 - } - ], - "format": "html", - "dataFileName": "Database.html", - "attachments": [], - "dirFileName": "Database", - "children": [ - { - "isClone": false, - "noteId": "oyIAJ9PvvwHX", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "wX4HbRucYSDD", - "oyIAJ9PvvwHX" - ], - "title": "Manually altering the database", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "YKWqdJhzi2VY", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "tAassRL4RSQL", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Manually altering the database.html", - "attachments": [ - { - "attachmentId": "0740ph4lJ4rv", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Manually altering the data.png" - } - ], - "dirFileName": "Manually altering the database", - "children": [ - { - "isClone": false, - "noteId": "YKWqdJhzi2VY", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "wX4HbRucYSDD", - "oyIAJ9PvvwHX", - "YKWqdJhzi2VY" - ], - "title": "SQL Console", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Vc8PjrjAGuOp", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-data", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "SQL Console.html", - "attachments": [ - { - "attachmentId": "1YS10Qg7S4YR", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "SQL Console_image.png" - }, - { - "attachmentId": "827EgLgWhZWF", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "1_SQL Console_image.png" - }, - { - "attachmentId": "gIbK7NNLu3iZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_SQL Console_image.png" - }, - { - "attachmentId": "pP87PB9ELjQn", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_SQL Console_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "6tZeKvSHEUiB", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "wX4HbRucYSDD", - "6tZeKvSHEUiB" - ], - "title": "Demo Notes", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYjQUYhpbUEW", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Wy267RK4M69c", - "isInheritable": false, - "position": 50 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-package", - "isInheritable": false, - "position": 110 - } - ], - "format": "html", - "dataFileName": "Demo Notes.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "Gzjqa934BdH4", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "Gzjqa934BdH4" - ], - "title": "Configuration (config.ini or environment variables)", - "notePosition": 170, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "configuration", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Configuration (config.ini or e.html", - "attachments": [], - "dirFileName": "Configuration (config.ini or environment variables)", - "children": [ - { - "isClone": false, - "noteId": "c5xB8m4g2IY6", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "Gzjqa934BdH4", - "c5xB8m4g2IY6" - ], - "title": "Trilium instance", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "cbkrhQjrkKrh", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Trilium instance.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "LWtBjFej3wX3", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "Gzjqa934BdH4", - "LWtBjFej3wX3" - ], - "title": "Cross-Origin Resource Sharing (CORS)", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Cross-Origin Resource Sharing .html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "ivYnonVFBxbQ", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "ivYnonVFBxbQ" - ], - "title": "Bulk Actions", - "notePosition": 180, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "HI6GBBIduIgv", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Cq5X6iKQop6R", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "yTjUdsOi4CIE", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "habiZ3HU8Kw8", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 60 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-plus", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Bulk Actions.html", - "attachments": [ - { - "attachmentId": "cJTc66E2BRTf", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Bulk Actions_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "4FahAwuGTAwC", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "4FahAwuGTAwC" - ], - "title": "Note source", - "notePosition": 190, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "KSZ04uQ2D1St", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MI26XDLSAlCD", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "H0mM1lTxF9JI", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "gBbsAeiuUxI5", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "N4IDkixaDG9C", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0vhv7lsOLy82", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "8YBEPzcpUgxw", - "isInheritable": false, - "position": 110 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-code", - "isInheritable": false, - "position": 120 - } - ], - "format": "html", - "dataFileName": "Note source.html", - "attachments": [ - { - "attachmentId": "Ud3rPUVJpRWJ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Note source_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "1YeN2MzFUluU", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "1YeN2MzFUluU" - ], - "title": "Technologies used", - "notePosition": 200, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "KSZ04uQ2D1St", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-component", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Technologies used.html", - "attachments": [], - "dirFileName": "Technologies used", - "children": [ - { - "isClone": false, - "noteId": "MI26XDLSAlCD", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "1YeN2MzFUluU", - "MI26XDLSAlCD" - ], - "title": "CKEditor", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "iPIMuisry3hd", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "2x0ZAX9ePtzV", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "nBAXQFj20hS1", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Oau6X9rCuegd", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NwBbFdNZ9h7O", - "isInheritable": false, - "position": 60 - } - ], - "format": "html", - "dataFileName": "CKEditor.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "N4IDkixaDG9C", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "1YeN2MzFUluU", - "N4IDkixaDG9C" - ], - "title": "MindElixir", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "gBbsAeiuUxI5", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "MindElixir.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "H0mM1lTxF9JI", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "1YeN2MzFUluU", - "H0mM1lTxF9JI" - ], - "title": "Excalidraw", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "grjYqerjn243", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Excalidraw.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "MQHyy2dIFgxS", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "1YeN2MzFUluU", - "MQHyy2dIFgxS" - ], - "title": "Leaflet", - "notePosition": 40, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Leaflet.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "m1lbrzyKDaRB", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "m1lbrzyKDaRB" - ], - "title": "Note ID", - "notePosition": 210, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "0vhv7lsOLy82", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-hash", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Note ID.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "0vTSyvhPTAOz", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "0vTSyvhPTAOz" - ], - "title": "Internal API", - "notePosition": 220, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "attachments": [], - "dirFileName": "Internal API", - "children": [ - { - "isClone": false, - "noteId": "z8O2VG4ZZJD7", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "0vTSyvhPTAOz", - "z8O2VG4ZZJD7" - ], - "title": "API Reference", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "webView", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "webViewSrc", - "value": "/api/docs", - "isInheritable": false, - "position": 10 - } - ], - "dataFileName": "API Reference.dat", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "2mUhVmZK8RF3", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "2mUhVmZK8RF3" - ], - "title": "Hidden Notes", - "notePosition": 230, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Cq5X6iKQop6R", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "wX4HbRucYSDD", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YKWqdJhzi2VY", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "eIg8jdvaoNNd", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "QEAPj01N5f7w", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m1lbrzyKDaRB", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "x3i7MxGccDuM", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "qzNzp9LYQyPT", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "4TIF1oA4VQRO", - "isInheritable": false, - "position": 160 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-hide", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Hidden Notes.html", - "attachments": [ - { - "attachmentId": "PrFEZeM6sRl6", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Hidden Notes_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "uYF7pmepw27K", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "uYF7pmepw27K" - ], - "title": "Metrics", - "notePosition": 240, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "bOP3TB56fL1V", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-data", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Metrics.html", - "attachments": [ - { - "attachmentId": "6FcnvEg39b88", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Metrics_image.png" - }, - { - "attachmentId": "amOIi8fzVhSM", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Metrics_image.png" - }, - { - "attachmentId": "Ojj9cAXPbxJO", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Metrics_image.png" - } - ], - "dirFileName": "Metrics", - "children": [ - { - "isClone": false, - "noteId": "bOP3TB56fL1V", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "uYF7pmepw27K", - "bOP3TB56fL1V" - ], - "title": "grafana-dashboard.json", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "code", - "mime": "application/json", - "attributes": [], - "dataFileName": "grafana-dashboard.json", - "attachments": [] - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "LMAv4Uy3Wk6J", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J" - ], - "title": "AI", - "notePosition": 320, - "prefix": null, - "isExpanded": false, - "type": "book", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "iconClass", - "value": "bx bx-bot", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "viewType", - "value": "list", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "expanded", - "value": "", - "isInheritable": false, - "position": 30 - } - ], - "attachments": [], - "dirFileName": "AI", - "children": [ - { - "isClone": false, - "noteId": "GBBMSlVSOIGP", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J", - "GBBMSlVSOIGP" - ], - "title": "Introduction", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "vvUCN7FDkq7G", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Introduction.html", - "attachments": [ - { - "attachmentId": "4UpXwA3WvbmA", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Introduction_image.png" - }, - { - "attachmentId": "8Bn5IsE3Bv1k", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Introduction_image.png" - }, - { - "attachmentId": "ABN1rFIIJ8no", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Introduction_image.png" - }, - { - "attachmentId": "CK3z7sYw63XT", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Introduction_image.png" - }, - { - "attachmentId": "E6Y09N2t7vyA", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Introduction_image.png" - }, - { - "attachmentId": "JlIPeTtl5wlV", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Introduction_image.png" - }, - { - "attachmentId": "ur4TDJeRqpUC", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "6_Introduction_image.png" - }, - { - "attachmentId": "UTH83LkQEA8u", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "7_Introduction_image.png" - }, - { - "attachmentId": "V68TCCTUdyl7", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "8_Introduction_image.png" - }, - { - "attachmentId": "YbWoNq58T9kB", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "9_Introduction_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "WkM7gsEUyCXs", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J", - "WkM7gsEUyCXs" - ], - "title": "AI Provider Information", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "7EdTxPADv95W", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "ZavFigBX9AwP", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "e0lkirXEiSNc", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "viewType", - "value": "list", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "AI Provider Information.html", - "attachments": [ - { - "attachmentId": "BNN9Vv3JEf2X", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "AI Provider Information_im.png" - }, - { - "attachmentId": "diIollN3KEbn", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_AI Provider Information_im.png" - } - ], - "dirFileName": "AI Provider Information", - "children": [ - { - "isClone": false, - "noteId": "7EdTxPADv95W", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J", - "WkM7gsEUyCXs", - "7EdTxPADv95W" - ], - "title": "Ollama", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "book", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "viewType", - "value": "list", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "expanded", - "value": "", - "isInheritable": false, - "position": 20 - } - ], - "attachments": [], - "dirFileName": "Ollama", - "children": [ - { - "isClone": false, - "noteId": "vvUCN7FDkq7G", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J", - "WkM7gsEUyCXs", - "7EdTxPADv95W", - "vvUCN7FDkq7G" - ], - "title": "Installing Ollama", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Installing Ollama.html", - "attachments": [ - { - "attachmentId": "CG9q2FfKuEsr", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Installing Ollama_image.png" - }, - { - "attachmentId": "GEcgXxUE1IDx", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "1_Installing Ollama_image.png" - }, - { - "attachmentId": "OMGDDxjScXCl", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "2_Installing Ollama_image.png" - }, - { - "attachmentId": "Qacg7ibmEBkZ", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "3_Installing Ollama_image.png" - }, - { - "attachmentId": "vSjU929VnBm4", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "4_Installing Ollama_image.png" - }, - { - "attachmentId": "xGrxARTj79Gv", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "5_Installing Ollama_image.png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "ZavFigBX9AwP", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J", - "WkM7gsEUyCXs", - "ZavFigBX9AwP" - ], - "title": "OpenAI", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "OpenAI.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "e0lkirXEiSNc", - "notePath": [ - "pOsGYCXsbNQG", - "LMAv4Uy3Wk6J", - "WkM7gsEUyCXs", - "e0lkirXEiSNc" - ], - "title": "Anthropic", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Anthropic.html", - "attachments": [] - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "CdNpE2pqjmI6", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6" - ], - "title": "Scripting", - "notePosition": 330, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GLks18SNjxmC", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "TjLYAo3JMO8X", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "RDslemsQ6gCp", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "5668rwcirq1t", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GPERMystNGTB", - "isInheritable": false, - "position": 70 - }, - { - "type": "label", - "name": "shareAlias", - "value": "scripts", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bxs-file-js", - "isInheritable": false, - "position": 80 - } - ], - "format": "html", - "dataFileName": "Scripting.html", - "attachments": [], - "dirFileName": "Scripting", - "children": [ - { - "isClone": false, - "noteId": "yIhgI5H7A2Sm", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "yIhgI5H7A2Sm" - ], - "title": "Frontend Basics", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "SynTBQiBsdYJ", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GLks18SNjxmC", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "frontend-basics", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Frontend Basics.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "es8OU2GuguFU", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "es8OU2GuguFU" - ], - "title": "Examples", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "attachments": [], - "dirFileName": "Examples", - "children": [ - { - "isClone": false, - "noteId": "TjLYAo3JMO8X", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "es8OU2GuguFU", - "TjLYAo3JMO8X" - ], - "title": "\"New Task\" launcher button", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "xYjQUYhpbUEW", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xYmIYSP6wE3F", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m1lbrzyKDaRB", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s8alTXmpFR61", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "yIhgI5H7A2Sm", - "isInheritable": false, - "position": 70 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-task", - "isInheritable": false, - "position": 80 - } - ], - "format": "html", - "dataFileName": "New Task launcher button.html", - "attachments": [ - { - "attachmentId": "9C2JA6tdtRpN", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "New Task launcher button_i.png" - } - ] - }, - { - "isClone": false, - "noteId": "7kZPMD0uFwkH", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "es8OU2GuguFU", - "7kZPMD0uFwkH" - ], - "title": "Downloading responses from Google Forms", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Downloading responses from Goo.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "DL92EjAaXT26", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "es8OU2GuguFU", - "DL92EjAaXT26" - ], - "title": "Using promoted attributes to configure scripts", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [], - "format": "html", - "dataFileName": "Using promoted attributes to c.html", - "attachments": [ - { - "attachmentId": "7P3jzVEa1mk7", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Using promoted attributes .png" - } - ] - } - ] - }, - { - "isClone": false, - "noteId": "GPERMystNGTB", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "GPERMystNGTB" - ], - "title": "Events", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "c5xB8m4g2IY6", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "events", - "isInheritable": false, - "position": 10 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-rss", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Events.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "MgibgPcfeuGz", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "MgibgPcfeuGz" - ], - "title": "Custom Widgets", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "custom-widget", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Custom Widgets.html", - "attachments": [], - "dirFileName": "Custom Widgets", - "children": [ - { - "isClone": false, - "noteId": "YNxAqkI5Kg1M", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "MgibgPcfeuGz", - "YNxAqkI5Kg1M" - ], - "title": "Word count widget", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/html", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "6tZeKvSHEUiB", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "s8alTXmpFR61", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Word count widget.html", - "attachments": [ - { - "attachmentId": "JhM9NWfebzPi", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Word count widget_image.png" - } - ] - }, - { - "isClone": false, - "noteId": "SynTBQiBsdYJ", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "MgibgPcfeuGz", - "SynTBQiBsdYJ" - ], - "title": "Widget Basics", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFs8mudNFgCS", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GLks18SNjxmC", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "widget-basics", - "isInheritable": false, - "position": 20 - } - ], - "format": "html", - "dataFileName": "Widget Basics.html", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "GLks18SNjxmC", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "GLks18SNjxmC" - ], - "title": "Script API", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 10 - }, - { - "type": "relation", - "name": "internalLink", - "value": "Q2z6av6JZVWm", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MEtfsqa5VwNi", - "isInheritable": false, - "position": 30 - }, - { - "type": "label", - "name": "shareAlias", - "value": "script-api", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Script API.html", - "attachments": [], - "dirFileName": "Script API", - "children": [ - { - "isClone": false, - "noteId": "Q2z6av6JZVWm", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "GLks18SNjxmC", - "Q2z6av6JZVWm" - ], - "title": "Frontend API", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "webView", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "webViewSrc", - "value": "https://triliumnext.github.io/Notes/Script%20API/interfaces/Frontend_Script_API.Api.html", - "isInheritable": false, - "position": 10 - } - ], - "attachments": [], - "dirFileName": "Frontend API", - "children": [ - { - "isClone": false, - "noteId": "habiZ3HU8Kw8", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "GLks18SNjxmC", - "Q2z6av6JZVWm", - "habiZ3HU8Kw8" - ], - "title": "FNote", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "webView", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "webViewSrc", - "value": "https://triliumnext.github.io/Notes/Script%20API/classes/Frontend_Script_API.FNote.html", - "isInheritable": false, - "position": 10 - } - ], - "dataFileName": "FNote.dat", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "MEtfsqa5VwNi", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "GLks18SNjxmC", - "MEtfsqa5VwNi" - ], - "title": "Backend API", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "webView", - "mime": "", - "attributes": [ - { - "type": "label", - "name": "webViewSrc", - "value": "https://triliumnext.github.io/Notes/Script%20API/interfaces/Backend_Script_API.Api.html", - "isInheritable": false, - "position": 10 - } - ], - "dataFileName": "Backend API.dat", - "attachments": [] - } - ] - } - ] - } - ] - }, - { - "noImport": true, - "dataFileName": "navigation.html" - }, - { - "noImport": true, - "dataFileName": "index.html" - }, - { - "noImport": true, - "dataFileName": "style.css" - } - ] -} \ No newline at end of file +[{"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-file","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-file","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","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/2. Reverse proxy/Apache"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_l2VkvOwUNfZj","title":"TLS Configuration","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration"},{"name":"iconClass","value":"bx bx-file","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-lock-alt","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_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-file","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-file","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-file","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-calendar-edit","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":"Export as PDF","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF"},{"name":"iconClass","value":"bx bxs-file-pdf","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"}],"children":[{"id":"_help_xWbu3jpNWapp","title":"Calendar View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Calendar View"},{"name":"iconClass","value":"bx bx-calendar","type":"label"}]},{"id":"_help_2FvYrpmOXm29","title":"Table View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Table View"},{"name":"iconClass","value":"bx bx-table","type":"label"}]},{"id":"_help_81SGnPGMk7Xc","title":"Geo Map View","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Notes/Note List/Geo Map View"},{"name":"iconClass","value":"bx bx-map-alt","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 Note","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note"},{"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_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_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_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":"book","attributes":[{"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-file","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-file","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_GTwFsgaA0lCt","title":"Collections","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Note Types/Collections"},{"name":"iconClass","value":"bx bx-book","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_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","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-file","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-file","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-file","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-file","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-file","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 bx-file","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-file","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-file","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 bx-file","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-file","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 bx-file","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-file","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-file","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 bx-file","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-file","type":"label"}],"children":[{"id":"_help_9qPsTWBorUhQ","title":"API Reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"/etapi/docs"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"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-file","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 bx-file","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-file","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-file","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-file","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 bxs-component","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-file","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-file","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-file","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 bx-folder","type":"label"}],"children":[{"id":"_help_z8O2VG4ZZJD7","title":"API Reference","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"/api/docs"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"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_LMAv4Uy3Wk6J","title":"AI","type":"book","attributes":[{"name":"iconClass","value":"bx bx-bot","type":"label"}],"children":[{"id":"_help_GBBMSlVSOIGP","title":"Introduction","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/Introduction"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_WkM7gsEUyCXs","title":"AI Provider Information","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/AI Provider Information"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"children":[{"id":"_help_7EdTxPADv95W","title":"Ollama","type":"book","attributes":[{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_vvUCN7FDkq7G","title":"Installing Ollama","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/AI Provider Information/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/AI Provider Information/OpenAI"},{"name":"iconClass","value":"bx bx-file","type":"label"}]},{"id":"_help_e0lkirXEiSNc","title":"Anthropic","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/AI/AI Provider Information/Anthropic"},{"name":"iconClass","value":"bx bx-file","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-file","type":"label"}]},{"id":"_help_es8OU2GuguFU","title":"Examples","type":"book","attributes":[{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_TjLYAo3JMO8X","title":"\"New Task\" launcher button","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/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/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/Examples/Using promoted attributes to c"},{"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/Events"},{"name":"iconClass","value":"bx bx-rss","type":"label"}]},{"id":"_help_MgibgPcfeuGz","title":"Custom Widgets","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/Custom Widgets"},{"name":"iconClass","value":"bx bx-file","type":"label"}],"children":[{"id":"_help_YNxAqkI5Kg1M","title":"Word count widget","type":"doc","attributes":[{"type":"label","name":"docName","value":"User Guide/User Guide/Scripting/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/Custom Widgets/Widget Basics"},{"name":"iconClass","value":"bx bx-file","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-file","type":"label"}],"children":[{"id":"_help_Q2z6av6JZVWm","title":"Frontend API","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://triliumnext.github.io/Notes/Script%20API/interfaces/Frontend_Script_API.Api.html"},{"name":"iconClass","value":"bx bx-folder","type":"label"}],"children":[{"id":"_help_habiZ3HU8Kw8","title":"FNote","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://triliumnext.github.io/Notes/Script%20API/classes/Frontend_Script_API.FNote.html"},{"name":"iconClass","value":"bx bx-file","type":"label"}]}]},{"id":"_help_MEtfsqa5VwNi","title":"Backend API","type":"webView","attributes":[{"type":"label","name":"webViewSrc","value":"https://triliumnext.github.io/Notes/Script%20API/interfaces/Backend_Script_API.Api.html"},{"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/AI/1_AI Provider Information_im.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/1_AI Provider Information_im.png new file mode 100644 index 000000000..80627e0b0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/1_AI Provider Information_im.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/1_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/1_Introduction_image.png new file mode 100644 index 000000000..c0955f2bf Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/1_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/2_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/2_Introduction_image.png new file mode 100644 index 000000000..3908a5f48 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/2_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/3_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/3_Introduction_image.png new file mode 100644 index 000000000..0fe0c8186 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/3_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/4_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/4_Introduction_image.png new file mode 100644 index 000000000..ef2ad8a0f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/4_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/5_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/5_Introduction_image.png new file mode 100644 index 000000000..ede9d6aae Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/5_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/6_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/6_Introduction_image.png new file mode 100644 index 000000000..e784df790 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/6_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/7_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/7_Introduction_image.png new file mode 100644 index 000000000..96d56b39c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/7_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/8_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/8_Introduction_image.png new file mode 100644 index 000000000..afb6653ca Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/8_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/9_Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/9_Introduction_image.png new file mode 100644 index 000000000..f50f69553 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/9_Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information.html new file mode 100644 index 000000000..963837bc1 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information.html @@ -0,0 +1,22 @@ +

Currently, we support the following providers:

+ +

To set your preferred chat model, you'll want to enter the provider's + name here:

+
+ +
+

And to set your preferred embedding provider:

+
+ +
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Anthropic.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Anthropic.html new file mode 100644 index 000000000..e69de29bb diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/1_Installing Ollama_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/1_Installing Ollama_image.png new file mode 100644 index 000000000..821966b77 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/1_Installing Ollama_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/2_Installing Ollama_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/2_Installing Ollama_image.png new file mode 100644 index 000000000..7e585a751 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/2_Installing Ollama_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/3_Installing Ollama_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/3_Installing Ollama_image.png new file mode 100644 index 000000000..0a239f35c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/3_Installing Ollama_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/4_Installing Ollama_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/4_Installing Ollama_image.png new file mode 100644 index 000000000..b5c4c2930 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/4_Installing Ollama_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/5_Installing Ollama_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/5_Installing Ollama_image.png new file mode 100644 index 000000000..0c02db50f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/5_Installing Ollama_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/Installing Ollama.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/Installing Ollama.html new file mode 100644 index 000000000..39d9ee00d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/Installing Ollama.html @@ -0,0 +1,45 @@ +

Ollama can be installed in a variety + of ways, and even runs within a Docker container. + Ollama will be noticeably quicker when running on a GPU (Nvidia, AMD, Intel), + but it can run on CPU and RAM. To install Ollama without any other prerequisites, + you can follow their installer:

+
+ +
+
+ +
+
+ +
+

After their installer completes, if you're on Windows, you should see + an entry in the start menu to run it:

+
+ +
+

Also, you should have access to the ollama CLI via Powershell + or CMD:

+
+ +
+

After Ollama is installed, you can go ahead and pull the models + you want to use and run. Here's a command to pull my favorite tool-compatible + model and embedding model as of April 2025:

ollama pull llama3.1:8b
+ollama pull mxbai-embed-large
+

Also, you can make sure it's running by going to http://localhost:11434 and + you should get the following response (port 11434 being the “normal” Ollama + port):

+
+ +
+

Now that you have Ollama up and running, have a few models pulled, you're + ready to go to go ahead and start using Ollama as both a chat provider, + and embedding provider!

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/Installing Ollama_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/Installing Ollama_image.png new file mode 100644 index 000000000..cf5ee38d4 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/Ollama/Installing Ollama_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/OpenAI.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information/OpenAI.html new file mode 100644 index 000000000..e69de29bb diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information_im.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information_im.png new file mode 100644 index 000000000..aa19e949d Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/AI Provider Information_im.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/Introduction.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/Introduction.html new file mode 100644 index 000000000..b873f9ca9 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/Introduction.html @@ -0,0 +1,161 @@ +
+ +
An example chat with an LLM
+
+

The AI / LLM features within Trilium Notes are designed to allow you to + interact with your Notes in a variety of ways, using as many of the major + providers as we can support. 

+

In addition to being able to send chats to LLM providers such as OpenAI, + Anthropic, and Ollama - we also support agentic tool calling, and embeddings.

+

The quickest way to get started is to navigate to the “AI/LLM” settings:

+
+ +
+

Enable the feature:

+
+ +
+ +

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) + to smartly figure out which Notes to send as context to the LLM when you're + chatting, among other useful functions.

+

You will then need to set up the AI “provider” that you wish to use to + create the embeddings for your Notes. Currently OpenAI, Voyage AI, and + Ollama are supported providers for embedding generation.

+

In the following example, we're going to use our self-hosted Ollama instance + to create the embeddings for our Notes. You can see additional documentation + about installing your own Ollama locally in Installing Ollama.

+

To see what embedding models Ollama has available, you can check out + this searchon their website, and then pull whichever one + you want to try out. As of 4/15/25, my personal favorite is mxbai-embed-large.

+

First, we'll need to select the Ollama provider from the tabs of providers, + then we will enter in the Base URL for our Ollama. Since our Ollama is + running on our local machine, our Base URL is http://localhost:11434. + We will then hit the “refresh” button to have it fetch our models:

+
+ +
+

When selecting the dropdown for the “Embedding Model”, embedding models + should be at the top of the list, separated by regular chat models with + a horizontal line, as seen below:

+
+ +
+

After selecting an embedding model, embeddings should automatically begin + to be generated by checking the embedding statistics at the top of the + “AI/LLM” settings panel:

+
+ +
+

If you don't see any embeddings being created, you will want to scroll + to the bottom of the settings, and hit “Recreate All Embeddings”:

+
+ +
+

Creating the embeddings will take some time, and will be regenerated when + a Note is created, updated, or deleted (removed).

+

If for some reason you choose to change your embedding provider, or the + model used, you'll need to recreate all embeddings.

+

Tools

+

Tools are essentially functions that we provide to the various LLM providers, + and then LLMs can respond in a specific format that tells us what tool + function and parameters they would like to invoke. We then execute these + tools, and provide it as additional context in the Chat conversation. 

+

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

+ +

When Tools are executed within your Chat, you'll see output like the following:

+
+ +
+

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!:

+
+ +
+

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 diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/Introduction_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/Introduction_image.png new file mode 100644 index 000000000..5a8657faf Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/AI/Introduction_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/1_Metrics_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/1_Metrics_image.png new file mode 100644 index 000000000..683789547 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/1_Metrics_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/1_Note Map (Link map, Tree m.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/1_Note Map (Link map, Tree m.png new file mode 100644 index 000000000..a16316f82 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/1_Note Map (Link map, Tree m.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/2_Metrics_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/2_Metrics_image.png new file mode 100644 index 000000000..08181d986 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/2_Metrics_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html new file mode 100644 index 000000000..544ba81bd --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html @@ -0,0 +1,17 @@ +

Trilium offers advanced functionality through Scripts and + Promoted Attributes. To illustrate these features, we've prepared + several showcases available in the demo notes:

+ +

It's important to note that these examples are not natively supported + by Trilium out of the box; instead, they demonstrate what you can build + within Trilium.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/1_Day Notes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/1_Day Notes_image.png new file mode 100644 index 000000000..9e03a2375 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/1_Day Notes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html new file mode 100644 index 000000000..2bfdb4108 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html @@ -0,0 +1,152 @@ +

A common pattern in note-taking is that a lot of notes will be centered + around a certain date - e.g. you have some tasks which needs to be done + on a certain date, you have meeting minutes from a certain date, you have + your thoughts etc. and it all revolves around a date on which they occurred. + For this reason, it makes sense to create a certain "day workspace" which + will centralize all those notes relevant for a certain date.

+

For this, Trilium provides a concept of "day note". Trilium semi-automatically + generates a single note for each day. Under this note you can save all + those relevant notes.

+

Select an existing day note, and the menubar contains a calendar widget. + Select any day to create a note for that day. 

+

+ +

+

This pattern works well also because of Cloning Notes functionality + - note can appear in multiple places in the note tree, so besides appearing + under day note, it can also be categorized into other notes.

+

Demo

+

+ +

+

You can see the structure of day notes appearing under "Journal" note + - there's a note for the whole year 2025, under it, you have "03 - March" + which then contains "09 - Monday". This is our "day note" which contains + some text in its content and also has some child notes (some of them are + from Task manager).

+

You can also notice how this day note has promoted attribute "weight" + where you can track your daily weight. This data is then used in Weight tracker.

+

Week Note and Quarter Note

+

Week and quarter notes are disabled by default, since it might be too + much for some people. To enable them, you need to set #enableWeekNote and #enableQuarterNote attributes + on the root calendar note, which is identified by #calendarRoot label. + Week note is affected by the first week of year option. Be careful when + you already have some week notes created, it will not automatically change + the existing week notes and might lead to some duplicates.

+

Templates

+

Trilium provides template functionality, + and it could be used together with day notes.

+

You can define one of the following relations on the root of the journal + (identified by #calendarRoot label):

+ +

All of these are relations. When Trilium creates a new note for year or + month or date, it will take a look at the root and attach a corresponding ~template relation + to the newly created role. Using this, you can e.g. create your daily template + with e.g. checkboxes for daily routine etc.

+

Migrate from old template usage

+

If you have been using Journal prior to version v0.93.0, the previous + template pattern likely used was ~child:template=. +
To transition to the new system:

+
    +
  1. Set up the new template pattern in the Calendar root note.
  2. +
  3. Use Bulk Actions to remove child:template and child:child:template from + all notes under the Journal (calendar root).
  4. +
  5. Ensure that all old template patterns are fully removed to prevent conflicts + with the new setup.
  6. +
+

Naming pattern

+

You can customize the title of generated journal notes by defining a #datePattern, #weekPattern, #monthPattern, #quarterPattern and #yearPattern attribute + on a root calendar note (identified by #calendarRoot label). + The naming pattern replacements follow a level-up compatibility - each + level can use replacements from itself and all levels above it. For example, #monthPattern can + use month, quarter and year replacements, while #weekPattern can + use week, month, quarter and year replacements. But it is not possible + to use week replacements in #monthPattern.

+

Date pattern

+

It's possible to customize the title of generated date notes by defining + a #datePattern attribute on a root calendar note (identified + by #calendarRoot label). Following are possible values:

+ +

The default is {dateNumberPadded} - {weekDay} +

+

Week pattern

+

It is also possible to customize the title of generated week notes through + the #weekPattern attribute on the root calendar note. The options + are:

+ +

The default is Week {weekNumber} +

+

Month pattern

+

It is also possible to customize the title of generated month notes through + the #monthPattern attribute on the root calendar note. The options + are:

+ +

The default is {monthNumberPadded} - {month} +

+

Quarter pattern

+

It is also possible to customize the title of generated quarter notes + through the #quarterPattern attribute on the root calendar note. + The options are:

+ +

The default is Quarter {quarterNumber} +

+

Year pattern

+

It is also possible to customize the title of generated year notes through + the #yearPattern attribute on the root calendar note. The options + are:

+ +

The default is {year} +

+

Implementation

+

Trilium has some special support for day notes in the form of backend Script API - + see e.g. getDayNote() function.

+

Day (and year, month) notes are created with a label - e.g. #dateNote="2025-03-09" this + can then be used by other scripts to add new notes to day note etc.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes_image.png new file mode 100644 index 000000000..fd89503ef Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html new file mode 100644 index 000000000..26dbc620f --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html @@ -0,0 +1,65 @@ +

Task Manager is a promoted attributes and + scriptsshowcase present in the demo notes.

+

Demo

+

+ +

+

Task Manager manages outstanding (TODO) tasks and finished tasks (non-empty + doneDate attribute). Outstanding tasks are further categorized by location + and arbitrary tags - whenever you change tag attribute in the task note, + this task is then automatically moved to appropriate location.

+

Task Manager also integrates with day notes - + notes are cloned into day note to + both todoDate note and doneDate note (with prefix of + either "TODO" or "DONE").

+

Implementation

+

New tasks are created in the TODO note which has ~child:template + relation(see attribute inheritance) + pointing to the task template.

+

Attributes

+

Task template defines several promoted attributes - + todoDate, doneDate, tags, location. Importantly it also defines ~runOnAttributeChange relation + - event handler which is run on attribute + change. This script handles when e.g. + we fill out the doneDate attribute - meaning the task is done and should + be moved to "Done" note and removed from TODO, locations and tags.

+

New task button

+

There's also "button" note which contains simple script which adds a button + to create new note (task) in the TODO note.

api.addButtonToToolbar({
+    title: 'New task',
+    icon: 'check',
+    shortcut: 'alt+n',
+    action: async () => {
+        // creating notes is backend (server) responsibility so we need to pass
+        // the control there
+        const taskNoteId = await api.runOnBackend(async () => {
+            const todoRootNote = await api.getNoteWithLabel('taskTodoRoot');
+            const {note} = await api.createNote(todoRootNote.noteId, 'new task', '');
+
+            return note.noteId;
+        });
+
+        // we got an ID of newly created note and we want to immediatelly display it
+        await api.activateNewNote(taskNoteId);
+    }
+});
+

CSS

+

In the demo screenshot above you may notice that TODO tasks are in red + color and DONE tasks are green.

+

This is done by having this CSS code note which + defines extra CSS classes:

span.fancytree-node.todo .fancytree-title {
+    color: red !important;
+}
+
+span.fancytree-node.done .fancytree-title {
+    color: green !important;
+}
+

This code note has #appCss + labelwhich is recognized by Trilium on startup and loaded as CSS into + the application.

+

Second part of this functionality is based in event handler described + above which assigns #cssClass label to the task to either "done" + or "todo" based on the task status.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager_task-manager.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager_task-manager.png new file mode 100644 index 000000000..f2c5c9f8c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager_task-manager.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html new file mode 100644 index 000000000..7ffb54d73 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html @@ -0,0 +1,73 @@ +

+ +

+

The Weight Tracker is a Script API showcase + present in the demo notes.

+

By adding weight as a promoted attribute in + the template from which day notes are + created, you can aggregate the data and plot weight change over time.

+

Implementation

+

The Weight Tracker note in the screenshot above is of the type Render Note. + That type of note doesn't have any useful content itself. Instead it is + a placeholder where a script can render + its output.

+

Scripts for Render Notes are defined in a relation called ~renderNote. + In this example, it's the Weight Tracker's child Implementation. + The Implementation consists of two code notes that + contain some HTML and JavaScript respectively, which load all the notes + with a weight attribute and display their values in a chart.

+

To actually render the chart, we're using a third party library called + chart.jswhich is imported as an attachment, since it's not built into + Trilium.

+

Code

+

Here's the content of the script which is placed in a code note of + type JS Frontend:

async function getChartData() {
+    const days = await api.runOnBackend(async () => {
+        const notes = api.getNotesWithLabel('weight');
+        const days = [];
+
+        for (const note of notes) {
+            const date = note.getLabelValue('dateNote');
+            const weight = parseFloat(note.getLabelValue('weight'));
+
+            if (date && weight) {
+                days.push({ date, weight });
+            }
+        }
+
+        days.sort((a, b) => a.date > b.date ? 1 : -1);
+
+        return days;
+    });
+
+    const datasets = [
+        {
+            label: "Weight (kg)",
+            backgroundColor: 'red',
+            borderColor: 'red',
+            data: days.map(day => day.weight),
+            fill: false,
+            spanGaps: true,
+            datalabels: {
+                display: false
+            }
+        }
+    ];
+
+    return {
+        datasets: datasets,
+        labels: days.map(day => day.date)
+    };
+}
+
+const ctx = $("#canvas")[0].getContext("2d");
+
+new chartjs.Chart(ctx, {
+    type: 'line',
+    data: await getChartData()
+});
+

How to remove the Weight Tracker button from the top bar

+

In the link map of the Weight Tracker, there is a note called Button. + Open it and delete or comment out its contents. The Weight Tracker button + will disappear after you restart Trilium.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker_image.png new file mode 100644 index 000000000..0167e759b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html new file mode 100644 index 000000000..8474ade5f --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html @@ -0,0 +1,44 @@ +
+ +
+

In Trilium, attributes are key-value pairs assigned to notes, providing + additional metadata or functionality. There are two primary types of attributes:

+
    +
  1. +

    Labels can + be used for a variety of purposes, such as storing metadata or configuring + the behaviour of notes. Labels are also searchable, enhancing note retrieval.

    +

    For more information, including predefined labels, see Labels.

    +
  2. +
  3. +

    Relations define + connections between notes, similar to links. These can be used for metadata + and scripting purposes.

    +

    For more information, including a list of predefined relations, see  + Relations.

    +
  4. +
+

These attributes play a crucial role in organizing, categorising, and + enhancing the functionality of notes.

+

Viewing the list of attributes

+

Both the labels and relations for the current note are displayed in the Owned Attributes section + of the Ribbon, + where they can be viewed and edited. Inherited attributes are displayed + in the Inherited Attributes section of the ribbon, where they can + only be viewed.

+

In the list of attributes, labels are prefixed with the # character + whereas relations are prefixed with the ~ character.

+

Multiplicity

+

Attributes in Trilium can be "multi-valued", meaning multiple attributes + with the same name can co-exist.

+

Attribute Definitions and Promoted Attributes

+

Special labels create "label/attribute" definitions, enhancing the organization + and management of attributes. For more details, see Promoted Attributes.

+

Attribute Inheritance

+

Trilium supports attribute inheritance, allowing child notes to inherit + attributes from their parents. For more information, see Attribute Inheritance.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html new file mode 100644 index 000000000..cb6de109d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html @@ -0,0 +1,50 @@ +

Inheritance refers to the process of having a label or + a relation shared across multiple + notes, generally in parent-child relations (or anywhere if using templates).

+

Standard Inheritance

+

In Trilium, attributes can be automatically inherited by child notes if + they have the isInheritable flag set to true. This + means the attribute (a key-value pair) is applied to the note and all its + descendants.

+

To make an attribute inheritable, simply use the visual editor for  + Labels or Relations. + Alternatively, the attribute can be manually defined where #myLabel=value becomes #myLabel(inheritable)=value when + inheritable.

+

As an example, the archived label can be set to be inheritable, + allowing you to hide a whole subtree of notes from searches and other dialogs + by applying this label at the top level.

+

Standard inheritance forces all the notes that are children (and sub-children) + of a note to have that particular label or relation. If there is a need + to have some notes not inherit one of the labels, then copying inheritance or template inheritance needs + to be used instead.

+

Copying Inheritance

+

Copying inheritance differs from standard inheritance by using a child: prefix + in the attribute name. This prefix causes new child notes to automatically + receive specific attributes from the parent note. These attributes are + independent of the parent and will persist even if the note is moved elsewhere.

+

If a parent note has the label #child:exampleAttribute, all + newly created child notes (one level deep) will inherit the #exampleAttribute label. + This can be useful for setting default properties for notes in a specific + section.

+

Similarly, for relations use ~child:myRelation.

+

Due to the way it's designed, copying inheritance cannot be used to cascade + infinitely within a hierarchy. For that use case, consider using either + standard inheritance or templates.

+

Chained inheritance

+

It is possible to define labels across multiple levels of depth. For example, #child:child:child:foo applied + to a root note would create:

+ +

Similarly, use ~child:child:child:foo if dealing with relations.

+

Do note that same as simple copying inheritance, the changes will not + apply retroactively to existing notes in the hierarchy, it will only apply + to the newly created notes.

+

Template Inheritance

+

Attributes can also be inherited from Templates. + When a new note is created using a template, it inherits the attributes + defined in that template. This is particularly useful for maintaining consistency + across notes that follow a similar structure or function.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html new file mode 100644 index 000000000..7dc0eb5a0 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html @@ -0,0 +1,385 @@ +

A label is an attribute of a note + which has a name and optionally a value.

+

Common use cases

+ +

Creating a label using the visual editor

+
    +
  1. Go to the Owned Attributes section in the Ribbon.
  2. +
  3. Press the + button (Add new attribute) to the right.
  4. +
  5. Select Add new label for the relation.
  6. +
+ +

While in the visual editor:

+ +

Creating a label manually

+

In the Owned Attributes section in the Ribbon:

+ +

Predefined labels

+

This is a list of labels that Trilium natively supports.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelDescription
disableVersioning + Disables automatic creation of Note Revisions for + a particular note. Useful for e.g. large, but unimportant notes - e.g. + large JS libraries used for scripting.
versioningLimit + Limits the maximum number of Note Revisions for + a particular note, overriding the global settings.
calendarRoot + Marks the note which should be used as root for Day Notes. Only one should be marked + as such.
archived + Hides notes from default search results and dialogs. Archived notes can + optionally be hidden in the Note Tree.
excludeFromExport + Excludes this note and its children when exporting.
run, runOnInstance, runAtHour + See Events.
disableInclusion + Scripts with this label won't be included into parent script execution.
sorted + +

Keeps child notes sorted by title alphabetically.

+

When given a value, it will sort by the value of another label instead. + If one of the child notes doesn't have the specified label, the title will + be used for them instead.

+
sortDirection + +

If sorted is applied, specifies the direction of the sort:

+
    +
  • ASC, ascending (default)
  • +
  • DESC, descending
  • +
+
sortFoldersFirst + If sorted is applied, folders (notes with children) will be + sorted as a group at the top, and the rest will be sorted.
top + If sorted is applied to the parent note, keeps given note on + top in its parent.
hidePromotedAttributes + Hide Promoted Attributes on + this note. Generally useful when defining inherited attributes, but the + parent note doesn't need them.
readOnly + Marks a note to be always be read-only, + if it's a supported note (text, code, mermaid).
autoReadOnlyDisabled + Disables automatic read-only mode for + the given note.
appCss + Marks CSS notes which are loaded into the Trilium application and can + thus be used to modify Trilium's looks. See Custom app-wide CSS for more info.
appTheme + Marks CSS notes which are full Trilium themes and are thus available in + Trilium options. See Theme development for + more information.
appThemeBase + Set to next, next-light, or next-dark to + use the corresponding TriliumNext theme (auto, light or dark) as the base + for a custom theme, instead of the legacy one. See Customize the Next theme for more + information.
cssClass + Value of this label is then added as CSS class to the node representing + given note in the Note Tree. + This can be useful for advanced theming. Can be used in template notes.
iconClass + value of this label is added as a CSS class to the icon on the tree which + can help visually distinguish the notes in the tree. Example might be bx + bx-home - icons are taken from boxicons. Can be used in template notes.
pageSize + Specifies the number of items per page in Note List.
customRequestHandler + See Custom Request Handler.
customResourceProvider + See Custom Resource Providers.
widget + Marks this note as a custom widget which will be added to the Trilium + component tree. See Custom Widgets for + more information.
searchHome + New search notes will be created as children of this note (see  + Saved Search).
workspace and related attributesSee Workspaces.
inbox + default inbox location for new notes - when you create a note using new note button + in the sidebar, notes will be created as child notes in the note marked + as with #inbox label.
sqlConsoleHome + Default location of SQL Console notes
bookmarked + Indicates this note is a bookmark.
bookmarkFolder + Note with this label will appear in bookmarks as folder (allowing access + to its children). See Bookmarks for + more information.
share* + See the attribute reference in Sharing.
displayRelations, hideRelations + Comma delimited names of relations which should be displayed/hidden in + a Relation Map (both + the note type and the Note Map (Link map, Tree map) general + functionality).
titleTemplate + +

Default title of notes created as children of this note. This value is + evaluated as a JavaScript string and thus can be enriched with dynamic + content via the injected now and parentNote variables.

+

Examples:

+
    +
  • \({parentNote.getLabel('authorName')}'s literary works +
  • +
  • Log for \){now.format('YYYY-MM-DD HH:mm:ss')} +
  • +
  • to mirror the parent's template.
  • +
+

See Default Note Title for + more info.

+
template + This note will appear in the selection of available template when creating + new note. See Templates for + more information.
toc + Controls the display of the Table of contents for + a given note. #toc or #toc=show to always display + the table of contents, #toc=false to always hide it.
color + defines color of the note in note tree, links etc. Use any valid CSS color + value like 'red' or #a13d5f
keyboardShortcut + Defines a keyboard shortcut which will immediately jump to this note. + Example: 'ctrl+alt+e'. Requires frontend reload for the change to take + effect.
keepCurrentHoisting + Opening this link won't change hoisting even if the note is not displayable + in the current hoisted subtree.
executeButton + Title of the button which will execute the current code note
executeDescription + Longer description of the current code note displayed together with the + execute button
excludeFromNoteMap + Notes with this label will be hidden from the Note Map.
newNotesOnTop + New notes will be created at the top of the parent note, not on the bottom.
hideHighlightWidget + Hides the Highlights list widget
hideChildrenOverview + Hides the Note List for + that particular note.
printLandscape + When exporting to PDF, changes the orientation of the page to landscape + instead of portrait.
printPageSize + When exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
geolocation + Indicates the latitude and longitude of a note, to be displayed in a  + Geo Map.
calendar:* + Defines specific options for the Calendar View.
viewType + Sets the view of child notes (e.g. grid or list). See Note List for more information.
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html new file mode 100644 index 000000000..4f02e8d75 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html @@ -0,0 +1,49 @@ +

Promoted attributes are attributes which + are considered important and thus are "promoted" onto the main note UI. + See example below:

+

+ +

+

You can see the note having kind of form with several fields. Each of + these is just regular attribute, the only difference is that they appear + on the note itself.

+

Attributes can be pretty useful since they allow for querying and script + automation etc. but they are also inconveniently hidden. This allows you + to select few of the important ones and push them to the front of the user.

+

Now, how do we make attribute to appear on the UI?

+

Attribute definition

+

Attribute is always name-value pair where both name and value are strings.

+

Attribute definition specifies how should this value be interpreted + - is it just string, or is it a date? Should we allow multiple values or + note? And importantly, should we promote the attribute or not?

+

+ +

+

You can notice tag attribute definition. These "definition" attributes + define how the "value" attributes should behave.

+

So there's one attribute for value and one for definition. But notice + how definition attribute is Inheritable, + meaning that it's also applied to all descendant note. So in a way, this + definition is used for the whole subtree while "value" attributes are applied + only for this note.

+

Inverse relation

+

Some relations always occur in pairs - my favorite example is on the family. + If you have a note representing husband and note representing wife, then + there might be a relation between those two of isPartnerOf. + This is bidirectional relationship - meaning that if a relation is pointing + from husband to wife then there should be always another relation pointing + from wife to husband.

+

Another example is with parent - child relationship. Again these always + occur in pairs, but in this case it's not exact same relation - the one + going from parent to child might be called isParentOf and the + other one going from child to parent might be called isChildOf.

+

Relation definition allows you to specify such "inverse relation" - for + the relation you just define you specify which is the inverse relation. + Note that in the second example we should have two relation definitions + - one for isParentOf which defines isChildOf as inverse + relation and then second relation definition for isChildOf which + defines isParentOf as inverse relation.

+

What this does internally is that whenever we save a relation which has + defined inverse relation, we check that this inverse relation exists on + the relation target note. Similarly, when we delete relation, we also delete + inverse relation on the target note.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes_image.png new file mode 100644 index 000000000..ecb5f2d6d Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes_promot.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes_promot.png new file mode 100644 index 000000000..cca868320 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes_promot.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html new file mode 100644 index 000000000..d9c79a998 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html @@ -0,0 +1,139 @@ +

A relation is similar to a label, + but instead of having a text value it refers to another note.

+

Common use cases

+ +

Creating a relation using the visual editor

+
    +
  1. Go to the Owned Attributes section in the Ribbon.
  2. +
  3. Press the + button (Add new attribute) to the right.
  4. +
  5. Select Add new relation for the relation.
  6. +
+ +

While in the visual editor:

+ +

Creating a relation manually

+

In the Owned Attributes section in the Ribbon:

+ +

Predefined relations

+

These relations are supported and used internally by Trilium.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelDescription
runOn* + See Events +
template + note's attributes will be inherited even without a parent-child relationship, + note's content and subtree will be added to instance notes if empty. See + documentation for details.
inherit + note's attributes will be inherited even without a parent-child relationship. + See Templates for + a similar concept. See Attribute Inheritance in + the documentation.
renderNote + notes of type Render Note will + be rendered using a code note (HTML or script) and it is necessary to point + using this relation to which note should be rendered
widget_relation + target of this relation will be executed and rendered as a widget in the + sidebar
shareCss + CSS note which will be injected into the share page. CSS note must be + in the shared sub-tree as well. Consider using share_hidden_from_tree and share_omit_default_css as + well.
shareJs + JavaScript note which will be injected into the share page. JS note must + be in the shared sub-tree as well. Consider using share_hidden_from_tree.
shareTemplate + Embedded JavaScript note that will be used as the template for displaying + the shared note. Falls back to the default template. Consider using share_hidden_from_tree.
shareFavicon + Favicon note to be set in the shared page. Typically you want to set it + to share root and make it inheritable. Favicon note must be in the shared + sub-tree as well. Consider using share_hidden_from_tree.
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes_image.png new file mode 100644 index 000000000..f0d2a63c2 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html new file mode 100644 index 000000000..f505b9714 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html @@ -0,0 +1,169 @@ +
+ +
+

The Bulk Actions dialog makes it easy to apply changes to multiple + notes at once, ranging from simple actions such as adding or removing a + label to being executing custom scripts.

+

Interaction

+ +

Actions

+

Labels

+

These actions operate the Labels of + a note:

+ +

Relations

+

These actions operate the Relations of + a note:

+ +

Notes

+ +

Others

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions_image.png new file mode 100644 index 000000000..da7005580 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html new file mode 100644 index 000000000..923cbdf03 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or e.html @@ -0,0 +1,27 @@ +

Trilium supports configuration via a file named config.ini and + environment variables. Please review the file named config-sample.ini in + the Notes repository to + see what values are supported.

+

You can provide the same values via environment variables instead of the config.ini file, + and these environment variables use the following format:

+
    +
  1. Environment variables should be prefixed with TRILIUM_ and + use underscores to represent the INI section structure.
  2. +
  3. The format is: TRILIUM_<SECTION>_<KEY>=<VALUE> +
  4. +
  5. The environment variables will override any matching values from config.ini
  6. +
+

For example, if you have this in your config.ini:

[Network]
+host=localhost
+port=8080
+

You can override these values using environment variables:

TRILIUM_NETWORK_HOST=0.0.0.0
+TRILIUM_NETWORK_PORT=9000
+

The code will:

+
    +
  1. First load the config.ini file as before
  2. +
  3. Then scan all environment variables for ones starting with TRILIUM_ +
  4. +
  5. Parse these variables into section/key pairs
  6. +
  7. Merge them with the config from the file, with environment variables taking + precedence
  8. +
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .html new file mode 100644 index 000000000..0e1f1c318 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Cross-Origin Resource Sharing .html @@ -0,0 +1,46 @@ +

By default, Trilium cannot be accessed in web browsers by requests coming + from other domains/origins than Trilium itself. 

+

However, it is possible to manually configure Cross-Origin Resource Sharing (CORS) since + Trilium v0.93.0 using environment variables or config.ini, + as follows:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CORS HeaderCorresponding option in config.ini + Corresponding option in environment variables in the Network section
Access-Control-Allow-Origin + TRILIUM_NETWORK_CORS_ALLOW_ORIGIN + corsAllowOrigin 
Access-Control-Allow-Methods + TRILIUM_NETWORK_CORS_ALLOW_METHODS + corsAllowMethods 
Access-Control-Allow-Headers + TRILIUM_NETWORK_CORS_ALLOW_HEADERS + corsAllowHeaders +
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html new file mode 100644 index 000000000..35fc1d2b8 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html @@ -0,0 +1,17 @@ +

A Trilium instance represents a server. If Synchronization is set up, since + multiple servers are involved (the one from the desktop client and the + one the synchronisation is set up with), sometimes it can be useful to + distinguish the instance you are running on.

+

Setting the instance name

+

To set up a name for the instance, modify the config.ini:

[General]
+instanceName=Hello
+

Distinguishing the instance on back-end

+

Use api.getInstanceName() to obtain the instance name of the + current server, as specified in the config file or in environment variables.

+

Limiting script runs based on instance

+

For a script that is run periodically or on a certain event, it's possible + to limit it to certain instances without having to change the code. Just + add runOnInstance and set as the value the instance name where + the script should run. To run on multiple named instances, simply add the + label multiple times.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html new file mode 100644 index 000000000..d7068f7eb --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html @@ -0,0 +1,75 @@ +

Trilium provides a mechanism for scripts to + open a public REST endpoint. This opens a way for various integrations + with other services - a simple example would be creating new note from + Slack by issuing a slash command (e.g. /trilium buy milk).

+

Create note from outside Trilium

+

Let's take a look at an example. The goal is to provide a REST endpoint + to which we can send title and content and Trilium will create a note.

+

We'll start with creating a JavaScript backend code note containing:

const {req, res} = api;
+const {secret, title, content} = req.body;
+
+if (req.method == 'POST' && secret === 'secret-password') {
+    // notes must be saved somewhere in the tree hierarchy specified by a parent note. 
+    // This is defined by a relation from this code note to the "target" parent note
+    // alternetively you can just use constant noteId for simplicity (get that from "Note Info" dialog of the desired parent note)
+    const targetParentNoteId = api.currentNote.getRelationValue('targetNote');
+    
+    const {note} = api.createTextNote(targetParentNoteId, title, content);
+    const notePojo = note.getPojo();
+
+    res.status(201).json(notePojo);
+}
+else {
+    res.send(400);
+}
+

This script note has also following two attributes:

+ +

Explanation

+

Let's test this by using an HTTP client to send a request:

POST http://my.trilium.org/custom/create-note
+Content-Type: application/json
+
+{
+  "secret": "secret-password",
+  "title": "hello",
+  "content": "world"
+}+++++++++++++++++++++++++++++++++++++++++++++++
+

Notice the /custom part in the request path - Trilium considers + any request with this prefix as "custom" and tries to find a matching handler + by looking at all notes which have customRequestHandler label. + Value of this label then contains a regular expression which will match + the request path (in our case trivial regex "create-note").

+

Trilium will then find our code note created above and execute it. api.req, api.res are + set to request and + responseobjects from which we can get details of the request and also + respond.

+

In the code note we check the request method and then use trivial authentication + - keep in mind that these endpoints are by default totally unauthenticated, + and you need to take care of this yourself.

+

Once we pass these checks we will just create the desired note using + Script API.

+

Custom resource provider

+

Another common use case is that you want to just expose a file note - + in such case you create label customResourceProvider (value + is again path regex).

+

For more information, see Custom Resource Providers.

+

Advanced concepts

+

api.req and api.res are Express.js objects - you + can always look into its documentation for + details.

+

Parameters

+

REST request paths often contain parameters in the URL, e.g.:

http://my.trilium.org/custom/notes/123
+

The last part is dynamic so the matching of the URL must also be dynamic + - for this reason the matching is done with regular expressions. Following customRequestHandler value + would match it:

notes/([0-9]+)
+

Additionally, this also defines a matching group with the use of parenthesis + which then makes it easier to extract the value. The matched groups are + available in api.pathParams:

const noteId = api.pathParams[0];
+

Often you also need query params (as in e.g. http://my.trilium.org/custom/notes?noteId=123), + you can get those with standard express req.query.noteId.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html new file mode 100644 index 000000000..e70528bd5 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Resource Providers.html @@ -0,0 +1,36 @@ +

A custom resource provider allows any file imported into Trilium (images, + fonts, stylesheets) to be publicly accessible via a URL.

+

A potential use case for this is to add embed a custom font alongside + a theme.

+

Steps for creating a custom resource provider

+
    +
  1. Import a file such as an image or a font into Trilium by drag & drop.
  2. +
  3. Select the file and go to the Owned Attributes section.
  4. +
  5. Add the label #customResourceProvider=hello.
  6. +
  7. To test if it is working, use a browser to navigate to <protocol>://<host>/custom/hello (where <protocol> is + either http or https based on your setup, and <host> is + the host or IP to your Trilium server instance). If you are running the + TriliumNext application without a server, use http://localhost:37840 as + the base URL.
  8. +
  9. If everything went well, at the previous step the browser should have + downloaded the file uploaded in the first step.
  10. +
+

Instead of hello, the name can be:

+ +

Using it in a theme

+

For example, if you have a custom font to be imported by the theme, first + upload a font file into Trilium and assign it the #customResourceProvider=fonts/myfont.ttf attribute.

+

Then modify the theme CSS to point to:

@font-face {
+	font-family: customFont;
+	src: url("/custom/fonts/myfont.ttf");
+}
+
+div {
+	font-family: customFont;
+}
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html new file mode 100644 index 000000000..3165b3940 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html @@ -0,0 +1,27 @@ +

Your Trilium data is stored in a SQLite database + which contains all notes, tree structure, metadata, and most of the configuration. + The database file is named document.db and is stored in the + application's default Data directory.

+

Demo Notes

+

When first starting Trilium, it will provide a set of notes to showcase + various features of the application.

+

For more information see Demo Notes.

+

Manually Modifying the Database

+

Trilium provides a lot of flexibility, and with it, opportunities for + advanced users to tweak it. If you need to explore or modify the database + directly, you can use a tool such as SQLite Browser to + work directly on the database file.

+

See Manually altering the database for + more information.

+

How to Reset the Database

+

If you are experimenting with Trilium and want to return it to its original + state, you can do that by deleting the current database. When you restart + the application, it will generate a new database containing the original + demo notes.

+

To delete the database, simply go to the data directory and + delete the document.db file (and any other files starting with document.db).

+

If you do not need to preserve any configurations that might be stored + in the config.ini file, you can just delete all of the data directory's contents + to fully restore the application to its original state. You can also review + the configuration file to provide + all config.ini values as environment variables instead.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html new file mode 100644 index 000000000..73691b220 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html @@ -0,0 +1,30 @@ +

When you run Trilium for the first time, it will generate a new database + containing demo notes. These notes showcase its many features, such as:

+ +

Restoring Demo Notes

+

There are some cases in which you may want to restore the original demo + notes. For example, if you experimented with some of the more advanced + features and want to see the original reference, or if you simply want + to explore the latest version of the demo notes, which might showcase new + features.

+

You can easily restore the demo notes by using Trilium's built-in import + feature by importing them:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the data.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the data.png new file mode 100644 index 000000000..469899ebc Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the data.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html new file mode 100644 index 000000000..f5abe37d1 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html @@ -0,0 +1,36 @@ +

There are some situations where modifying the SQLite database that Trilium + uses is desirable.

+

If you are doing any advanced development or troubleshooting where you + manually modify the database, you might want to consider creating backups + of your document.db file.

+

Modifying it internally using the SQL Console

+

The SQL Console is Trilium's built-in database editor.

+

See SQL Console.

+

Externally modifying the database

+

Sometimes the SQL Console cannot be used (for example if the application + cannot start).

+

When making external modifications, consider closing the desktop application. + If modifying the server database, then stop the service or Docker container.

+

Using DB Browser for SQLite

+

DB Browser for SQLite is a cross-platform editor that can be used to alter + the database using a graphical user interface.

+

To do so:

+
    +
  1. In the main menu, select File → Open database… and navigate to the database + in the Data directory.
  2. +
  3. Select the Execute SQL tab.
  4. +
  5. Type in the desired SQL statement.
  6. +
  7. Press the "Play" button in the toolbar underneath the "Execute SQL" tab + (or F5 key).
  8. +
  9. Press "Write Changes" in the main toolbar.
  10. +
  11. Close the application or close the database.
  12. +
+

+ +

+

Using the SQLite CLI

+

First, start the SQLite 3 CLI by specifying the path to the database:

sqlite3 ~/.local/share/trilium-data/document.db
+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/1_SQL Console_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/1_SQL Console_image.png new file mode 100644 index 000000000..6f32f76ec Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/1_SQL Console_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/2_SQL Console_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/2_SQL Console_image.png new file mode 100644 index 000000000..1b1834ba1 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/2_SQL Console_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/3_SQL Console_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/3_SQL Console_image.png new file mode 100644 index 000000000..ccef8f7aa Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/3_SQL Console_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html new file mode 100644 index 000000000..27e27dddb --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html @@ -0,0 +1,36 @@ +

The SQL Console is Trilium's built-in database editor.

+

It can be accessed by going to the global menu → + Advanced → Open SQL Console.

+

+ +

+

Interaction

+ +

Saved SQL console

+

SQL queries or commands can be saved into a dedicated note.

+

To do so, simply write the query and press the + button. Once saved, the note will appear in Day Notes.

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console_image.png new file mode 100644 index 000000000..32a91fc2f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html new file mode 100644 index 000000000..35a783519 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html @@ -0,0 +1,54 @@ +

When a new note is created, its name is by default "new note". In some + cases, it can be desirable to have a different or even a dynamic default + note title.

+

For this use case, Trilium (since v0.52) supports #titleTemplate + label. You can create such a label for a given note, assign it a value, + and this value will be used as a default title when creating child notes. + As with other labels, you can make it inheritable to apply recursively, + and you can even place it on the root note to have it applied globally + everywhere.

+

As an example use case, imagine you collect books you've read in a given + year like this:

+ +

Now, to the parent note "2022 Books" you can assign label #titleTemplate="[Author name]: [Book title], [Publication year]".

+

And all children of "2022 Books" will be created with initial title "[Author + name]: [Book title], [Publication year]". There's no artificial intelligence + here, the idea is to just prompt you to manually fill in the pieces of + information into the note title by yourself.

+

Dynamic value

+

The value of #titleTemplate is evaluated at the point of note's + creation as a JavaScript string, which means it can be enriched with the + help of JS string interpolation with dynamic data.

+

Second variable injected is parentNote which gives access to + the parent FNote.

+

See also Templates which + provides similar capabilities, including default note's content.

+

Examples

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html new file mode 100644 index 000000000..a7ea78e55 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API).html @@ -0,0 +1,49 @@ +

ETAPI is Trilium's public/external REST API. It is available since Trilium + v0.50.

+

The documentation is in OpenAPI format, available here.

+

API clients

+

As an alternative to calling the API directly, there are client libraries + to simplify this

+ +

Obtaining a token

+

All operations with the REST API have to be authenticated using a token. + You can get this token either from Options -> ETAPI or programmatically + using the /auth/login REST call (see the spec).

+

Authentication

+

Via the Authorization header

GET https://myserver.com/etapi/app-info
+Authorization: ETAPITOKEN
+

where ETAPITOKEN is the token obtained in the previous step.

+

For compatibility with various tools, it's also possible to specify the + value of the Authorization header in the format Bearer ETAPITOKEN (since + 0.93.0).

+

Basic authentication

+

Since v0.56 you can also use basic auth format:

GET https://myserver.com/etapi/app-info
+Authorization: Basic BATOKEN
+ +

Basic Auth is meant to be used with tools which support only basic auth.

+

Interaction using Bash scripts

+

It is possible to write simple Bash scripts to interact with Trilium. + As an example, here's how to obtain the HTML content of a note:

#!/usr/bin/env bash
+
+# Configuration
+TOKEN=z1vA4fkGxjOR_ZXLrZeqHEFOv65yV3882iFCRtNIK9k9iWrHliITNSLQ=
+SERVER=http://localhost:8080
+
+# Download a note by ID
+NOTE_ID="i6ra4ZshJhgN"
+curl "$SERVER/etapi/notes/$NOTE_ID/content" -H "Authorization: $TOKEN" 
+

Make sure to replace the values of:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API)/API Reference.dat b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/ETAPI (REST API)/API Reference.dat new file mode 100644 index 000000000..e69de29bb diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html new file mode 100644 index 000000000..8fabb2276 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html @@ -0,0 +1,182 @@ +
+ +
+

For easy extensibility, a lot of features in Trilium make use of actual + notes to store information as opposed to having them stored in a separate + location in the database. This allows some functions such as AttributesRelations or even Search and Links to be able to operate on + them.

+

As the name suggests, these notes are hidden to the user by default to + prevent cluttering the note tree and to prevent them from being accidentally + deleted.

+

The hidden notes are stored in the user's Database just like normal notes, + but they have a unique Note ID which + allows them to be distinguished from the normal ones.

+

Accessing the hidden note tree

+

From the Global menu, + select AdvancedShow Hidden Subtree.

+

Contents of the hidden note tree

+

Here is a brief summary of all the notes within the hidden tree:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NoteDescription
Note Map + +

This note is actually opened when the Note Map feature + that is accessed from the Launch Bar.

+

It is possible to create any child notes in it without any additional + meaning. For example, it can be used to store a list of note maps which + can be linked to from other notes or bookmarked.

+
SQL Console History + +

When SQL queries or commands are executed in the SQL Console, they are stored here, + grouped by month. Only the query is stored and not the results.

+

This section can be accessed without going to the hidden tree by simply + going to the Global menu and + selecting Advanced → Open SQL Console History.

+

Notes can be added as children of this tree, but it's generally not recommended + to do so to not interfere with the normal history process.

+
Search History + +

Whenever a search is executed from the full Search, the query will be stored here, + grouped by month. Only the search parameters are stored and not the results + themselves.

+

This section can be accessed without going to the hidden tree by simply + going to the Global menu and + selecting Advanced → Open Search History.

+

Notes can be added as children of this tree, but it's generally not recommended + to do so to not interfere with the normal history process.

+
Bulk Action + +

This section is used for Bulk Actions. + The last configuration for bulk actions will be stored as part of this + note, each action in its own action label.

+

Notes can be added as children of this tree, but there won't be any benefit + in doing so.

+
Backend Log + +

This note corresponds to the backend log feature (see Error logs).

+

This item can be accessed without going to the hidden try by going to + the Global menu and + selecting Advanced → Show backend log.

+
User Hidden + This section can be used by scripts to + create their own notes that should not be directly visible to the user. + The note can be identified by scripts by its unique ID: _userHidden +
Launch Bar Templates + +

This section contains the templates for the creation of launchers in the  + Launch Bar. It is not possible to create child notes here.

+

Theoretically some of the notes here can be customized, but there's not + much benefit to be had in doing so.

+
Shared Notes + +

This tree lists all of the notes that are shared publicly. + It can be useful to track down which notes are shared regardless of their + position in the note tree.

+

This section can be accessed without going to the hidden tree simply by + going to the Global menu and + selecting Show Shared Notes Subtree.

+

Sub-notes cannot be created here.

+
Launch Bar + +

The tree contains both available and displayed items of the Launch Bar.

+

This section can be accessed without going to the hidden tree by:

+
    +
  • Going to the Global menu and + selecting Configure Launchbar.
  • +
  • Right-clicking an empty space on the Launch Bar and + selecting Configure Launchbar.
  • +
+

Sub-notes cannot be created here.

+
Options + +

This section stores the list of Options.

+

This section can be accessed without going to the hidden tree by:

+
    +
  • Going to the Global menu and + selecting Options.
  • +
  • Pressing the dedicated Options icon in the Launch Bar.
  • +
+
Mobile Launch Bar + +

This is very similar to the Launch Bar, but is dedicated for the + mobile UI only.

+

Accessing it outside the Launch Bar is the same as the Launch Bar, + but needs to be done so from the mobile interface.

+
User Guide + This is where the note structure for the User Guide is actually stored. + Only the metadata is stored, as the help itself is present as actual files + in the application directory.
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png new file mode 100644 index 000000000..eb59b57b1 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Internal API/API Reference.dat b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Internal API/API Reference.dat new file mode 100644 index 000000000..e69de29bb diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics.html new file mode 100644 index 000000000..47a84af0d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics.html @@ -0,0 +1,99 @@ +

The Trilium Metrics API provides comprehensive monitoring data about your + Trilium instance, designed for external monitoring systems like Prometheus.

+

Endpoint

+ +

Authentication

+

You need an ETAPI token to access the metrics endpoint. Get one by:

# Get an ETAPI token
+curl -X POST http://localhost:8080/etapi/auth/login \
+  -H "Content-Type: application/json" \
+  -d '{"password": "your_password"}'
+
+

Usage

+

Prometheus Format (Default)

curl -H "Authorization: YOUR_ETAPI_TOKEN" \
+  http://localhost:8080/etapi/metrics
+
+

Returns metrics in Prometheus text format:

# HELP trilium_info Trilium instance information
+# TYPE trilium_info gauge
+trilium_info{version="0.91.6",db_version="231",node_version="v18.17.0"} 1 1701432000
+
+# HELP trilium_notes_total Total number of notes including deleted
+# TYPE trilium_notes_total gauge
+trilium_notes_total 1234 1701432000
+
+

JSON Format

curl -H "Authorization: YOUR_ETAPI_TOKEN" \
+  "http://localhost:8080/etapi/metrics?format=json"
+
+

Returns detailed metrics in JSON format for debugging or custom integrations.

+

Available Metrics

+

Instance Information

+ +

Database Metrics

+ +

Categorized Metrics

+ +

Statistics

+ +

Prometheus Configuration

+

Add to your prometheus.yml:

scrape_configs:
+  - job_name: 'trilium'
+    static_configs:
+      - targets: ['localhost:8080']
+    metrics_path: '/etapi/metrics'
+    bearer_token: 'YOUR_ETAPI_TOKEN'
+    scrape_interval: 30s
+
+

Error Responses

+ +

Grafana Dashboard

+
+ +
+

You can also use the Grafana Dashboard that has been created for TriliumNext + - just take the JSON from grafana-dashboard.json and + then import the dashboard, following these screenshots:

+
+ +
+

Then paste the JSON, and hit load:

+
+ +
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics/grafana-dashboard.json b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics/grafana-dashboard.json new file mode 100644 index 000000000..2e1e4511e --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics/grafana-dashboard.json @@ -0,0 +1,1335 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 1, + "id": 549, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 100, + "panels": [], + "title": "🏠 Trilium Overview", + "type": "row" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Current Trilium version and build information", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "filterable": false, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 101, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_info{job=~'$job',instance=~'$instance'}", + "format": "table", + "instant": true, + "refId": "A" + } + ], + "title": "📋 Instance Information", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Value": true, + "__name__": true, + "instance": true, + "job": true + }, + "indexByName": {}, + "renameByName": { + "build_date": "Build Date", + "build_revision": "Git Revision", + "db_version": "DB Version", + "node_version": "Node.js", + "sync_version": "Sync Version", + "version": "Version" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Database file size in human-readable format", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "yellow", + "value": 500000000 + }, + { + "color": "red", + "value": 1000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 12, + "y": 1 + }, + "id": 102, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_database_size_bytes{job=~'$job',instance=~'$instance'}", + "refId": "A" + } + ], + "title": "💾 Database Size", + "type": "stat" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Total active notes in your Trilium instance", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "yellow", + "value": 1000 + }, + { + "color": "red", + "value": 5000 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 1 + }, + "id": 103, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_active{job=~'$job',instance=~'$instance'}", + "refId": "A" + } + ], + "title": "📝 Active Notes", + "type": "stat" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 200, + "panels": [], + "title": "📊 Key Metrics", + "type": "row" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Total notes including deleted ones", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 8 + }, + "id": 201, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true, + "values": [] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_active{job=~'$job',instance=~'$instance'}", + "legendFormat": "Active Notes", + "refId": "A" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_deleted{job=~'$job',instance=~'$instance'}", + "legendFormat": "Deleted Notes", + "refId": "B" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_protected{job=~'$job',instance=~'$instance'}", + "legendFormat": "Protected Notes", + "refId": "C" + } + ], + "title": "📝 Notes Distribution", + "type": "piechart" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Breakdown of attachments by MIME type", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 8 + }, + "id": 202, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": true, + "values": [] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_attachments_by_type{job=~'$job',instance=~'$instance'}", + "legendFormat": "{{mime_type}}", + "refId": "A" + } + ], + "title": "🖼️ Attachments by Type", + "type": "piechart" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Distribution of notes by their content type", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 8 + }, + "id": 203, + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "showLegend": true, + "values": [ + "value", + "percent" + ] + }, + "pieType": "donut", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_by_type{job=~'$job',instance=~'$instance'}", + "legendFormat": "{{type}}", + "refId": "A" + } + ], + "title": "📄 Notes by Content Type", + "type": "piechart" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 300, + "panels": [], + "title": "📈 Trends & Time Series", + "type": "row" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Growth of notes over time", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "hue", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 8, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Active Notes" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total Notes" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 17 + }, + "id": 301, + "options": { + "legend": { + "calcs": [ + "last", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_active{job=~'$job',instance=~'$instance'}", + "legendFormat": "Active Notes", + "refId": "A" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_notes_total{job=~'$job',instance=~'$instance'}", + "legendFormat": "Total Notes", + "refId": "B" + } + ], + "title": "📈 Notes Growth Over Time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Attachment storage trends", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "hue", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 3, + "pointSize": 8, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Active Attachments" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "purple", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total Attachments" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 17 + }, + "id": 302, + "options": { + "legend": { + "calcs": [ + "last", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_attachments_active{job=~'$job',instance=~'$instance'}", + "legendFormat": "Active Attachments", + "refId": "A" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_attachments_total{job=~'$job',instance=~'$instance'}", + "legendFormat": "Total Attachments", + "refId": "B" + } + ], + "title": "📎 Attachments Growth Over Time", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 25 + }, + "id": 400, + "panels": [], + "title": "🔧 Advanced Metrics", + "type": "row" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Number of branches connecting notes", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 0, + "y": 26 + }, + "id": 401, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_branches_total{job=~'$job',instance=~'$instance'}", + "refId": "A" + } + ], + "title": "🌳 Total Branches", + "type": "stat" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Number of note attributes", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 6, + "y": 26 + }, + "id": 402, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_attributes_total{job=~'$job',instance=~'$instance'}", + "refId": "A" + } + ], + "title": "🏷️ Attributes", + "type": "stat" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Number of note revisions", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 12, + "y": 26 + }, + "id": 403, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_revisions_total{job=~'$job',instance=~'$instance'}", + "refId": "A" + } + ], + "title": "🔄 Revisions", + "type": "stat" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Number of ETAPI tokens", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 18, + "y": 26 + }, + "id": 404, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_etapi_tokens_total{job=~'$job',instance=~'$instance'}", + "refId": "A" + } + ], + "title": "🔑 API Tokens", + "type": "stat" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Various storage and system metrics", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Recent Notes" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 30 + }, + "id": 405, + "options": { + "legend": { + "calcs": [ + "last" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_blobs_total{job=~'$job',instance=~'$instance'}", + "legendFormat": "Blob Records", + "refId": "A" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_recent_notes_total{job=~'$job',instance=~'$instance'}", + "legendFormat": "Recent Notes", + "refId": "B" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_embeddings_total{job=~'$job',instance=~'$instance'}", + "legendFormat": "Embeddings", + "refId": "C" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_embedding_providers_total{job=~'$job',instance=~'$instance'}", + "legendFormat": "Embedding Providers", + "refId": "D" + } + ], + "title": "📊 Storage & System Metrics", + "type": "timeseries" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "description": "Timeline showing when content was created and last modified", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "points", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 8, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "always", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "dateTimeAsIso" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 30 + }, + "id": 406, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.0.1", + "targets": [ + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_oldest_note_timestamp{job=~'$job',instance=~'$instance'} * 1000", + "legendFormat": "Oldest Note", + "refId": "A" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_newest_note_timestamp{job=~'$job',instance=~'$instance'} * 1000", + "legendFormat": "Newest Note", + "refId": "B" + }, + { + "datasource": { + "uid": "${datasource}" + }, + "expr": "trilium_last_modified_timestamp{job=~'$job',instance=~'$instance'} * 1000", + "legendFormat": "Last Modified", + "refId": "C" + } + ], + "title": "⏰ Content Timeline", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "1m", + "schemaVersion": 41, + "tags": [ + "trilium", + "notes", + "monitoring", + "enhanced" + ], + "templating": { + "list": [ + { + "current": { + "text": "myprom", + "value": "PA04845DA3A4B088E" + }, + "includeAll": false, + "label": "Datasource", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "//", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": { + "UID": "", + "type": "" + }, + "includeAll": true, + "label": "Job", + "multi": true, + "name": "job", + "options": [], + "query": "query_result(up)", + "refresh": 1, + "regex": "/job=\"([^\"]+)\"/", + "sort": 1, + "type": "query" + }, + { + "allValue": ".*", + "current": { + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "includeAll": true, + "label": "Instance", + "multi": true, + "name": "instance", + "options": [], + "query": "trilium_database_size_bytes", + "refresh": 1, + "regex": "/instance=\"([^\"]+)\"/", + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "browser", + "title": "TriliumNext Dashboard", + "uid": "06993f9b-a477-4723-bf18-47743393b382", + "version": 5 +} \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics_image.png new file mode 100644 index 000000000..ae68ddd02 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Metrics_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html new file mode 100644 index 000000000..dfcdb4107 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html @@ -0,0 +1,26 @@ +

Whereas some applications use file names to uniquely identify notes, Trilium + uses the concept of Note ID.

+

Generally, the Note ID is a 12-character long alphanumeric sequence (including + both lower and upper case letter) that is randomly generated for each new + note.

+

How does the import/export affect the note IDs

+

When notes are exported, their note ID is kept in the metadata of the + export. However when they are imported back in, a new note ID is generated + for all the notes. This also includes other entities that are part of the + import/export process such as Attachments.

+

Note collisions

+

Since the Note ID is a fixed-width randomly generated number, due to the + pigeonhole principle, there is a possibility that a newly created + note will have the same ID as an existing note.

+

Since the note ID is alphanumeric and the length is 12 we have  + \(62^{12}\) unique IDs. However since we are generating them + randomly, we can use a collision calculator such as the one for Nano ID to + determine that we'd need to create 1000 notes per hour every hour for 9 + centuries in order to have at least 1% probability of a note collision.

+

As such, Trilium does not take any explicit action against potential note + collisions, similar to other software that makes uses of unique hashes + such as Git. + If one would theoretically occur, what would most likely happen is that + the existing note will be replaced by the new one.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree m.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree m.png new file mode 100644 index 000000000..2d41fd6c6 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree m.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html new file mode 100644 index 000000000..828cb8c65 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note Map (Link map, Tree map).html @@ -0,0 +1,30 @@ +

Note map is a visualisation of connections between notes.

+

This provides an insight into a structure ("web") of notes.

+

There are two types of note map:

+ +

Link Map

+

Shows relations between notes:

+

+ +

+

Tree Map

+

Shows hierarchical map of notes:

+

+ +

+

Dedicated note type

+

Apart from the note map feature which can be accessed from any note, it + is also possible to create a dedicated note which will display the relations + in full screen. See Note Map for + more information.

+

See also

+

Relation map is a similar concept, + with some differences:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html new file mode 100644 index 000000000..39512ce81 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html @@ -0,0 +1,68 @@ +

Understanding the source code of the different notes

+

Internally, the structure of the content of each note is different based + on the Note Types.

+

For example:

+ +

Note that some information is also stored as Attachments. For example Canvas notes use the attachments + feature to store the custom libraries, and alongside with Mind Map and other similar note + types it stores an SVG representation of the content for use in other features + such as including in other notes, shared notes, etc.

+

Here's part of the HTML representation of this note, as it's stored in + the database (but prettified).

<h2>
+	Understanding the source code of the different notes
+</h2>
+<p>
+	Internally, the structure of the content of each note is different based on the&nbsp;
+	<a class="reference-link" href="#root/_help_KSZ04uQ2D1St">
+		Note Types
+	</a>
+	.
+</p>
+

Viewing the source code

+

It is possible to view the source code of a note by pressing the contextual + menu in Note buttons and + selecting Note source.

+

+ +

+

The source code will be displayed in a new tab.

+

For some note types, such as text notes, the source code is also formatted + in order to be more easily readable.

+

Modifying the source code

+

It is possible to modify the source code of a note directly, however not + via the Note source functionality. 

+

To do so:

+
    +
  1. Change the note type from the real note type (e.g. Canvas, Geo Type) to + Code (plain text) or the corresponding format such as JSON or HTML.
  2. +
  3. Confirm the warning about changing the note type.
  4. +
  5. The source code will appear, make the necessary modifications.
  6. +
  7. Change the note type back to the real note type.
  8. +
+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source_image.png new file mode 100644 index 000000000..71f0ddf4a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html new file mode 100644 index 000000000..3b34f2147 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html @@ -0,0 +1,350 @@ +

Trilium allows you to share selected notes as publicly accessible read-only + documents. This feature is particularly useful for publishing content directly + from your Trilium notes, making it accessible to others online.

+
+ +
+ +

Features, interaction and limitations

+ +

By note type

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Supported featuresLimitations
Text + +
    +
  • Table of contents.
  • +
  • Syntax highlight of code blocks, provided a language is selected (does + not work if “Auto-detected” is enabled).
  • +
  • Rendering for math equations.
  • +
+
+
    +
  • Including notes is not supported.
  • +
  • Inline Mermaid diagrams are not rendered.
  • +
+
Code + +
    +
  • Basic support (displaying the contents of the note in a monospace font).
  • +
+
+
    +
  • No syntax highlight.
  • +
+
Saved Search + Not supported.
Relation Map + Not supported.
Note Map + Not supported.
Render Note + Not supported.
Book + +
    +
  • The child notes are displayed in a fixed format. 
  • +
+
+
    +
  • More advanced view types such as the calendar view are not supported.
  • +
+
Mermaid Diagrams + +
    +
  • The diagram is displayed as a vector image.
  • +
+
+
    +
  • No further interaction supported.
  • +
+
Canvas + +
    +
  • The diagram is displayed as a vector image.
  • +
+
+
    +
  • No further interaction supported.
  • +
+
Web View + Not supported.
Mind Map + The diagram is displayed as a vector image. +
    +
  • No further interaction supported.
  • +
+
Geo Map + Not supported.
File + Basic interaction (downloading the file). +
    +
  • No further interaction supported.
  • +
+
+
+

While the sharing feature is powerful, it has some limitations:

+ +

Some of these limitations may be addressed in future updates.

+

Prerequisites

+

To use the sharing feature, you must have a Server Installation of Trilium. + This is necessary because the notes will be hosted from the server.

+

How to Share a Note

+
    +
  1. +

    Enable Sharing: To share a note, toggle the Shared switch + within the note's interface. Once sharing is enabled, an URL will appear, + which you can click to access the shared note.

    +

    + Share Note +

    +
  2. +
  3. +

    Access the Shared Note: The link provided will open the + note in your browser. If your server is not configured with a public IP, + the URL will refer to localhost (127.0.0.1).

    +
  4. +
+

Sharing a Note Subtree

+

When you share a note, you actually share the entire subtree of notes + beneath it. If the note has child notes, they will also be included in + the shared content. For example, sharing the "Formatting" subtree will + display a page with basic navigation for exploring all the notes within + that subtree.

+

Viewing All Shared Notes

+

You can view a list of all shared notes by clicking on "Show Shared Notes + Subtree." This allows you to manage and navigate through all the notes + you have made public.

+

Security Considerations

+

Shared notes are published on the open internet and can be accessed by + anyone with the URL. The URL's randomness does not provide security, so + it is crucial not to share sensitive information through this feature.

+

Password Protection

+

To protect shared notes with a username and password, you can use the #shareCredentials attribute. + Add this label to the note with the format #shareCredentials="username:password". + To protect an entire subtree, make sure the label is inheritable.

+

Advanced Sharing Options

+

Customizing the Appearance of Shared Notes

+

The default design should be a good starting point, but you can customize + it using your own CSS:

+ +

Adding JavaScript

+

You can inject custom JavaScript into the shared note using the ~shareJs relation. + This allows you to access note attributes or traverse the note tree using + the fetchNote() API, which retrieves note data based on its + ID.

+

Example:

const currentNote = await fetchNote();
+const parentNote = await fetchNote(currentNote.parentNoteIds[0]);
+
+for (const attr of parentNote.attributes) {
+    console.log(attr.type, attr.name, attr.value);
+}
+

Creating Human-Readable URL Aliases

+

Shared notes typically have URLs like http://domain.tld/share/knvU8aJy4dJ7, + where the last part is the note's ID. You can make these URLs more user-friendly + by adding the #shareAlias label to individual notes (e.g., #shareAlias=highlighting). + This will change the URL to http://domain.tld/share/highlighting.

+

Important:

+
    +
  1. Ensure that aliases are unique.
  2. +
  3. Using slashes (/) within aliases to create subpaths is not + supported.
  4. +
+

Viewing and Managing Shared Notes

+

All shared notes are grouped under an automatically managed "Shared Notes" + section. From here, you can view, share, or unshare notes by moving or + cloning them within this section.

+

+ Shared Notes List +

+

Setting a Custom Favicon

+

To customize the favicon for your shared pages, create a relation ~shareFavicon pointing + to a file note containing the favicon (e.g., in .ico format).

+

Sharing a Note as the Root

+

You can designate a specific note or folder as the root of your shared + content by adding the #shareRoot label. This note will be linked + when visiting [http://domain.tld/share](http://domain/share), + making it easier to use Trilium as a fully-fledged website. Consider combining + this with the #shareIndex label, which will display a list of + all shared notes.

+

Attribute reference

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
shareHiddenFromTree + this note is hidden from left navigation tree, but still accessible with + its URL
shareExternalLink + note will act as a link to an external website in the share tree
shareAlias + define an alias using which the note will be available under https://your_trilium_host/share/[your_alias] +
shareOmitDefaultCss + default share page CSS will be omitted. Use when you make extensive styling + changes.
shareRoot + marks note which is served on /share root.
shareDescription + define text to be added to the HTML meta tag for description
shareRaw + Note will be served in its raw format, without HTML wrapper. See also  + Serving directly the content of a note for an alternative method + without setting an attribute.
shareDisallowRobotIndexing + +

Indicates to web crawlers that the page should not be indexed of this + note by:

+
    +
  • Setting the X-Robots-Tag: noindex HTTP header.
  • +
  • Setting the noindex, follow meta tag.
  • +
+
shareCredentials + require credentials to access this shared note. Value is expected to be + in format username:password. Don't forget to make this inheritable + to apply to child-notes/images.
shareIndex + Note with this label will list all roots of shared notes.
+
+ +

Credits

+

Since v0.95.0, a new theme was introduced (and enabled by default) which + greatly improves the visual aspect of the Share feature, as well as its + functionality (such as mobile support, dark/light mode, collapsible tree, + etc.). This theme is an adaptation of the Trilium Rocks! by + zerebos.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png new file mode 100644 index 000000000..23592294b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/1_Serving directly the conte.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the conte.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the conte.png new file mode 100644 index 000000000..bab0f97f5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the conte.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html new file mode 100644 index 000000000..8f7217624 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Serving directly the content o.html @@ -0,0 +1,37 @@ +

When accessing a shared note, Trilium will render it as a web page. Sometimes + it's desirable to serve the content directly so that it can be used in + a script or downloaded by the user.

+
+ + + + + + + + + + + + + +
A note displayed as a web page (HTML)A note displayed as a raw format
+
+ +
+
+ +
+
+ +

By adding an attribute to the note

+

Simply add the #shareRaw attribute and the note will always + be rendered raw when accessed from the share URL.

+

By altering the URL

+

Append ?raw to the URL to display a note in its raw format + regardless of whether the #shareRaw attribute is added on the + note.

+

+ +

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_image.png new file mode 100644 index 000000000..4c92b90c5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-single-note.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-single-note.png new file mode 100644 index 000000000..87b99cabb Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_share-single-note.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_shared-list.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_shared-list.png new file mode 100644 index 000000000..8002303f8 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing_shared-list.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html new file mode 100644 index 000000000..191b87d06 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html @@ -0,0 +1,7 @@ +

One core aspect of Trilium that allows it to have support for multiple  + Note Types is the fact that it makes use of various off-the-shelf + or reusable libraries.

+

The sub-pages showcase some of the technologies used, for a better understanding + of how Trilium works but also to credit the developers of that particular + technology.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html new file mode 100644 index 000000000..c6da6762b --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html @@ -0,0 +1,45 @@ +

Editor core

+

The CKEditor is the WYSIWYG (standing for What You See Is What You Get) + editor behind Text notes.

+

Their website is ckeditor.com.

+

CKEditor by itself is a commercial product, but the core is open-source. + As described in its documentation, + the editor supports quite a large number of features. Do note that not + all the features are enabled in Trilium.

+

Premium features

+

Some features are marked as premium in the CKEditor feature set. This + means that they cannot be used without a license.

+

Trilium cannot benefit from any of these premium features as they require + a commercial license, however we are in discussions with the CKEditor team + to allow us to use a subset of these premium features such as Slash commands.

+

Plugins

+

The CKEditor ecosystem is quite extensible, in the sense that custom plugins + can be written to extend the functionality of the editor beyond its original + scope.

+

Trilium makes use of such features:

+ +

Apart from that, Trilium also has its own set of specific plugins such + as:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html new file mode 100644 index 000000000..78948ebf3 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html @@ -0,0 +1,5 @@ +

Excalidraw is the technology behind + the Canvas notes. The + source code of the library is available on GitHub.

+

We are using an unmodified version of it, so it shares the same issues as + the original.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html new file mode 100644 index 000000000..87a201fdb --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html @@ -0,0 +1,8 @@ +

Leaflet is the library behind Geo map notes.

+

Plugins

+

Leaflet is also highly customizable via external plugins.

+

Currently we use:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html new file mode 100644 index 000000000..64279ce9b --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html @@ -0,0 +1,9 @@ +

MindElixir is the library we are using for the Mind Map note + types.

+

The main library is available on GitHub as mind-elixir-core.

+

The library is embedded as-is without additional modifications.

+

Issues with its functionality should generally be reported upstream.

+

Plugins

+

MindElixir supports plugins, and one such plugin we are making use of + is SSShooter/node-menu: A node menu plugin of mind-elixir, + which allows editing the fonts, colors, links of nodes.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html new file mode 100644 index 000000000..4c91ffc9c --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html @@ -0,0 +1,66 @@ +

A template in Trilium serves as a predefined structure for other notes, + referred to as instance notes. Assigning a template to a note brings three + main effects:

+
    +
  1. Attribute Inheritance: All attributes from the template + note are inherited by the instance + notes. Even attributes with #isInheritable=false are inherited + by the instance notes, although only inheritable attributes are further + inherited by the children of the instance notes.
  2. +
  3. Content Duplication: The content of the template note + is copied to the instance note, provided the instance note is empty at + the time of template assignment.
  4. +
  5. Child Note Duplication: All child notes of the template + are deep-duplicated to the instance note.
  6. +
+

Example

+

A typical example would be a "Book" template note, which might include:

+ +

+ Template Example +

+

Instance Note

+

An instance note is a note related to a template note. This relationship + means the instance note's content is initialized from the template, and + all attributes from the template are inherited.

+

To create an instance note through the UI:

+

+ show child note templates +

+

For the template to appear in the menu, the template note must have the #template label. + Do not confuse this with the ~template relation, which links + the instance note to the template note. If you use workspaces, + you can also mark templates with #workspaceTemplate to display + them only in the workspace.

+

Templates can also be added or changed after note creation by creating + a ~template relation pointing to the desired template note. 

+

To specify a template for child notes, you can use a ~child:template relation + pointing to the appropriate template note. There is no limit to the depth + of the hierarchy — you can use ~child:child:template, ~child:child:child:template, + and so on.

+ +

Additional Notes

+

From a visual perspective, templates can define #iconClass and #cssClass attributes, + allowing all instance notes (e.g., books) to display a specific icon and + CSS style.

+

Explore the concept further in the demo notes, + including examples like the Relation Map, + Task Manager, and Day Notes.

+

Additionally, see default note title for + creating title templates. Note templates and title templates can be combined + by creating a #titleTemplate for a template note.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates_template-create-.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates_template-create-.png new file mode 100644 index 000000000..e0de7dc97 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates_template-create-.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates_template.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates_template.png new file mode 100644 index 000000000..72af71ad8 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates_template.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/1_Zen mode_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/1_Zen mode_image.png new file mode 100644 index 000000000..347ade3a2 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/1_Zen mode_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/2_Zen mode_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/2_Zen mode_image.png new file mode 100644 index 000000000..cd5a9ccde Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/2_Zen mode_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/3_Zen mode_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/3_Zen mode_image.png new file mode 100644 index 000000000..e708d46de Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/3_Zen mode_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html new file mode 100644 index 000000000..42140ed52 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Evernote.html @@ -0,0 +1,16 @@ +

Trilium can import ENEX files which are used by Evernote for backup/export. + One ENEX file represents content (notes and resources) of one notebook.

+

Export ENEX from Evernote

+

To export ENEX file, you need to have a legacy desktop version + of Evernote (i.e. not web/mobile). Right click on notebook and select export + and follow the wizard.

+

Import ENEX in Trilium

+

Once you have ENEX file, you can import it to Trilium. Right click on + some note (to which you want to import the file), click on "Import" and + select the ENEX file.

+

After importing the ENEX file, go over the imported notes and resources + to be sure the import went well, and you didn't lose any data.

+

Limitations

+

All resources (except for images) are created as note's attachments.

+

HTML inside ENEX files is not exactly valid so some formatting maybe broken + or lost. You can report major problems into Trilium issue tracker.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html new file mode 100644 index 000000000..d71887009 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html @@ -0,0 +1,46 @@ +

Trilium supports Markdown for both import and export, while trying to + keep compatibility as high as possible.

+

Import

+

Clipboard import

+

If you want to import just a chunk of markdown from clipboard, you can + do it from editor block menu:

+

+ +

+

File import

+

You can also import Markdown files from files:

+ +

[[gifs/markdown-file-import.gif]]

+

+ +

+

Export

+

Subtree export

+

You can export whole subtree to ZIP archive which will have directory + structured modelled after subtree structure:

+

+ +

+

Single note export

+

If you want to export just single note without its subtree, you can do + it from Note actions menu:

+

+ +

+

Exporting protected notes

+

If you want to export protected notes, enter a protected session first! + This will export the notes in an unencrypted form, so if you reimport into + Trilium, make sure to re-protect these notes.

+

Supported syntax

+

See the dedicated page: Supported syntax +

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.html new file mode 100644 index 000000000..23cce355a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown/Supported syntax.html @@ -0,0 +1,54 @@ +

GitHub-Flavored Markdown is + the main syntax that Trilium is following.

+

Images

+

When exporting, images are usually kept in the basic Markdown syntax but + will use the HTML syntax if the image has a custom width. Figures are always + embedded as HTML.

+

Tables

+

Simple tables are supported with the Markdown syntax. If the table is + too complex or contains elements that would render as HTML, the table is + also rendered as HTML.

+

Links

+

Standard Markdown links are supported.

+

Trilium internal links (that mirror a note's title and display its icon) + are embedded as HTML in order to preserve the information on import.

+

Math equations

+

Both inline and display equations are supported, using the $ and $$ syntaxes.

+

Admonitions

+

The Markdown syntax for admonitions as supported by Trilium is the one + that GitHub uses, which is as follows:

> [!NOTE]
+> This is a note.
+
+> [!TIP]
+> This is a tip.
+
+> [!IMPORTANT]
+> This is a very important information.
+
+> [!CAUTION]
+> This is a caution.
+

There are currently no plans of supporting alternative admonition syntaxes + such as !!! note.

+

Wikilinks

+

Basic support for wikilinks has been added in v0.96.0:

+ +

This feature is import-only, which means that it will turn wikilinks into + Trilium-compatible syntax, but it will not export Trilium Notes into Markdown + files with this syntax.

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-export-n.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-export-n.gif new file mode 100644 index 000000000..d1eb7c087 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-export-n.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-export-s.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-export-s.gif new file mode 100644 index 000000000..13316bb5f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-export-s.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-file-imp.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-file-imp.gif new file mode 100644 index 000000000..bcb2541f3 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-file-imp.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-inline-i.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-inline-i.gif new file mode 100644 index 000000000..bf27467fd Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown_markdown-inline-i.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html new file mode 100644 index 000000000..429a2cb67 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/OneNote.html @@ -0,0 +1,79 @@ +

This page describes a method to migrate via EverNote Legacy, but this app is no longer available/working. +

+

Prep Onenote notes for best compatibility

+ +

Migration Procedure

+

Import into Evernote from OneNote:

+ +

If exporting all sections at a time, they will not be grouped in folders + - they will all be added to a single folder, but the order will be kept, + so you can re-group into folders after importing to Trilium

+

Export from Evernote

+ +

Cleanup enex file (optional)

+ +

Import into Trilium

+ +

Other importing notes:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html new file mode 100644 index 000000000..0e7f7d56a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes/Theme Gallery.html @@ -0,0 +1,126 @@ +

These are user-created themes which were made publicly available:

+

Legacy Themes

+

These themes may or may not be compatible with the latest versions of + TriliumNext and are based on the original/legacy theme.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ThemeAuthor
Midnight + tobealive +
EOTE + tobealive +
Trilium Themes + Abourass +
MaterialDark + ZMonk91 +
lightslategray + jaroet +
melon-4 + raphwriter +
Neon_Dark + Engr-AllanG +
Coder_Dark + Engr-AllanG +
velvet + idelem +
Dark Plus + SADAVA +
Solarized + WKSu +
Nord + en3r0 +
Bear Note Light + AllanZyne +
Bear Note Dark + AllanZyne +
Miku Hatsune + Sebiann +
Midnight + cwilliams5 +
Blue (light)SiriusXT +
Blue (dark)SiriusXT +
+
+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes_image.png index e69de29bb..49df90730 100644 Binary files a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes_image.png and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html index b3ef4588e..ee13f51dd 100644 --- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html @@ -30,5 +30,8 @@ in the context menu, or with the associated keyboard shortcuts: CTRL-C ( copy), Ctrl + X (cut) and Ctrl + V (paste).

-

See Note Tree Menu for - more information.

\ No newline at end of file +

See Note tree contextual menu for + more information.

+

Keyboard shortcuts

+

The note tree comes with multiple keyboard shortcuts to make editing faster, + consult the dedicated Keyboard shortcuts section.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.html new file mode 100644 index 000000000..770a13e41 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.html @@ -0,0 +1,33 @@ +

The Note Tree comes + with multiple keyboard shortcuts to make editing faster:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html new file mode 100644 index 000000000..7d10cb786 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode.html @@ -0,0 +1,47 @@ +

+ +

+

Screenshot of Zen Mode activated on a Windows 11 system with native title + bar off and background effects on.

+

When Zen Mode is activated (pictured on the side), most of the user interface + of Trilium is hidden away in order to be able to focus on the content, + whether it's for reading or writing.

+

+ +

+

Screenshot of the Zen Mode option in the global menu.

+

Activating & deactivating

+

The Zen Mode can be activated by accessing the global menu and selecting + the “Zen Mode” option:

+

Aside from the global menu, it's also possible to activate this mode by + using a keyboard shortcut (which is F9 since TriliumNext 0.92.5 + and Alt+Z for older versions). Look for toggleZenMode in + the shortcut configuration.

+

Once Zen Mode is activated, all the UI elements of the application will + be hidden away, including the global menu. In that case, the Zen Mode can + be deactivated either by pressing the + icon in the top-right corner of the window or by pressing the keyboard + combination again.

+

Do note that, by design, activating or deactivating the Zen Mode applies + only to the current window. Restarting the application will also disable + the Zen Mode.

+

Moving the window around

+

If “Native title bar” is activated, then the operating system's default + title bar can be used to drag the window around. If deactivated, the window + can still be moved by dragging the mouse across the top part of the window + where the note titles are.

+

+ +

+

Screenshot of two notes side-by-side while Zen Mode is active, on Windows + 11 with background effects off.

+

Split windows and tabs

+

Tabs are completely hidden, however it's still possible to use keyboard + shortcuts such as firstTab (Ctrl+1 by default), secondTab (Ctrl+2 by + default). There are also some newer shortcuts such as activateNextTab (Ctrl+Tab) + or activatePreviousTab (Ctrl+Shift+Tab) + that allow easy navigation, however make sure that they are configured + properly in the settings.

+

For the split view of notes, there are no keyboard shortcuts at the time + of writing, but it's still possible to have them in Zen Mode by creating + the split while the Zen Mode is off and then reactivating it afterwards.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode_image.png new file mode 100644 index 000000000..bdd61d5ba Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Zen mode_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/FAQ.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/FAQ.html new file mode 100644 index 000000000..24dfa9332 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/FAQ.html @@ -0,0 +1,73 @@ +

macOS support

+

Originally, Trilium Notes considered the macOS build unsupported. TriliumNext + commits to make the experience on macOS as good as possible.

+

if you find any platform-specific issues, feel free to report them.

+

Translation / localisation support

+

The original Trilium Notes application did not support multiple languages. + Since we believe that internationalisation is a core part of an application, + we have added support for it.

+

Contributions to translations are welcome.

+

Multi-user support

+

Common request is to allow multiple users collaborate, share notes etc. + So far I'm resisting this because of these reasons:

+ +

How to open multiple documents in one Trilium instance

+

This is normally not supported - one Trilium process can open only a single + instance of a database. However, + you can run two Trilium processes (from one installation), each connected + to a separate document. To achieve this, you need to set a location for + the data directory in the TRILIUM_DATA_DIR environment + variable and separate port on TRILIUM_PORT environment variable. + How to do that depends on the platform, in Unix-based systems you can achieve + that by running command such as this:

TRILIUM_DATA_DIR=/home/me/path/to/data/dir TRILIUM_PORT=12345 trilium 
+

You can save this command into a .sh script file or make an + alias. Do this similarly for a second instance with different data directory + and port.

+

Can I use Dropbox / Google Drive / OneDrive to sync data across multiple computers.

+

No.

+

These general purpose sync apps are not suitable to sync database files + which are open and being worked on by another application. The result is + that they will corrupt the database file, resulting in data loss and this + message in the Trilium logs:

SqliteError: database disk image is malformed
+

The only supported way to sync Trilium's data across the network is to + use a sync/web server.

+

Why database instead of flat files?

+

Trilium stores notes in a database which + is an SQLite database. People often ask why doesn't Trilium rather use + flat files for note storage - it's fair question since flat files are easily + interoperable, work with SCM/git etc.

+

Short answer is that file systems are simply not powerful enough for what + we want to achieve with Trilium. Using filesystem would mean fewer features + with probably more problems.

+

More detailed answer:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html new file mode 100644 index 000000000..711607951 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types.html @@ -0,0 +1,132 @@ +

One core features of Trilium is that it supports multiple types of notes, + depending on the need.

+

Creating a new note with a different type via the note tree

+

The default note type in Trilium (e.g. when creating a new note) is  + Text, since it's for general use.

+

To create a new note of a different type, head to the Note Tree and right click an existing + note where to place the new one and select:

+ +

+ +

+

Creating a new note of a different type via add link or new tab

+ +

Changing the type of a note

+

It is possible to change the type of a note after it has been created + via the Basic Properties tab in the Ribbon. Note that it's generally a + good idea to change the note type only if the note is empty. Can also be + used to edit the source of a note.

+

Supported note types

+

The following note types are supported by Trilium:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Note TypeDescription
Text + The default note type, which allows for rich text formatting, images, + admonitions and right-to-left support.
Code + Uses a mono-space font and can be used to store larger chunks of code + or plain text than a text note, and has better syntax highlighting.
Saved Search + Stores the information about a search (the search text, criteria, etc.) + for later use. Can be used for quick filtering of a large amount of notes, + for example. The search can easily be triggered.
Relation Map + Allows easy creation of notes and relations between them. Can be used + for mainly relational data such as a family tree.
Note Map + Displays the relationships between the notes, whether via relations or + their hierarchical structure.
Render Note + Used in Scripting, + it displays the HTML content of another note. This allows displaying any + kind of content, provided there is a script behind it to generate it.
Book + +

Displays the children of the note either as a grid, a list, or for a more + specialized case: a calendar.

+

Generally useful for easy reading of short notes.

+
Mermaid Diagrams + Displays diagrams such as bar charts, flow charts, state diagrams, etc. + Requires a bit of technical knowledge since the diagrams are written in + a specialized format.
Canvas + Allows easy drawing of sketches, diagrams, handwritten content. Uses the + same technology behind excalidraw.com.
Web View + Displays the content of an external web page, similar to a browser.
Mind Map + Easy for brainstorming ideas, by placing them in a hierarchical layout.
Geo Map + Displays the children of the note as a geographical map, one use-case + would be to plan vacations. It even has basic support for tracks. Notes + can also be created from it.
File + Represents an uploaded file such as PDFs, images, video or audio files.
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Code_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Code_image.png new file mode 100644 index 000000000..7520e45c1 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Code_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_File_image.png new file mode 100644 index 000000000..18ce5beff Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Mermaid Diagrams_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Mermaid Diagrams_image.png new file mode 100644 index 000000000..381504c06 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Mermaid Diagrams_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Relation Map_relation-map-.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Relation Map_relation-map-.gif new file mode 100644 index 000000000..8ff234f4e Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Relation Map_relation-map-.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Relation Map_relation-map-.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Relation Map_relation-map-.png new file mode 100644 index 000000000..fb97d0e99 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Relation Map_relation-map-.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Text_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Text_image.png new file mode 100644 index 000000000..278d44dbc Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/1_Text_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_File_image.png new file mode 100644 index 000000000..04478a3ad Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Mermaid Diagrams_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Mermaid Diagrams_image.png new file mode 100644 index 000000000..ac8b0cf4c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Mermaid Diagrams_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Text_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Text_image.png new file mode 100644 index 000000000..8a68dcb5a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/2_Text_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/3_File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/3_File_image.png new file mode 100644 index 000000000..498813236 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/3_File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/4_File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/4_File_image.png new file mode 100644 index 000000000..3dd5cebb8 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/4_File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/5_File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/5_File_image.png new file mode 100644 index 000000000..af5bdfd5b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/5_File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/6_File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/6_File_image.png new file mode 100644 index 000000000..14044ba95 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/6_File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html new file mode 100644 index 000000000..430c7ed66 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Canvas.html @@ -0,0 +1,7 @@ +

Available since Trilium v0.52.

+

Canvas notes use the Excalidraw library to allow handwritten notes with + mouse, pen or touch on an infinite canvas. It also supports basic diagramming, + text and graphics input.

+

+ grafik +

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Canvas_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Canvas_image.png new file mode 100644 index 000000000..9259c84d5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Canvas_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Code.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Code.html new file mode 100644 index 000000000..95e10fd24 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Code.html @@ -0,0 +1,53 @@ +

Trilium supports creating "code" notes, i.e. notes which contain some + sort of formal code - be it programming language (C++, JavaScript), structured + data (JSON, XML) or other types of codes (CSS etc.).

+

This can be useful for a few things:

+ +

For shorter snippets of code that can be embedded in Text notes, + see Code blocks.

+

+ +

+

Adjusting the language of a code note

+

In the Ribbon, look for the Note type selector + and click it to reveal the possible note types. Inside of it there will + be a section called Code, select any one of the languages.

+

+ +

+

Adjusting the list of languages

+

Trilium supports syntax highlighting for many languages, but by default + displays only some of them. The supported languages can be adjusted by + going to Options, then Code Notes and + looking for the Available MIME types in the dropdown section. Simply + check any of the items to add them to the list, or un-check them to remove + them from the list.

+

Note that the list of languages is not immediately refreshed, you'd have + to manually refresh the application.

+

The list of languages is also shared with the Code blocks feature + of Text notes.

+

Color schemes

+

Since Trilium 0.94.0 the colors of code notes can be customized by going  + Options → Code Notes and looking for the Appearance section.

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Code_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Code_image.png new file mode 100644 index 000000000..f3ebaf673 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Code_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html new file mode 100644 index 000000000..658fe8d99 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections.html @@ -0,0 +1,20 @@ +

A Book Note in Trilium is a special type of note designed + to display the contents of its child notes sequentially, creating a linear, + book-like reading experience. This format is particularly useful for viewing + multiple smaller notes in a cohesive, continuous manner.

+

+ +

+

In the example above, the "node.js" note on the left panel contains several + child notes. The right panel displays the content of these child notes + as a single continuous document.

+

Features

+

The Book Note format compiles the contents of all child notes into one + continuous view. This makes it ideal for reading extensive information + broken into smaller, manageable segments.

+

It uses the Note List mechanism + to display the child notes, allowing the use of any of the view types (grid, + list, calendar).

+

To adjust the view type, see the dedicated Book tab in the  + Ribbon.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections_image.png new file mode 100644 index 000000000..ba4e1dd7a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Collections_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/File.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/File.html new file mode 100644 index 000000000..104d8dd6a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/File.html @@ -0,0 +1,138 @@ +

The File note type can be used to attach various external files + such as images, videos or PDF documents.

+

Uploading a file

+

Since these files come from an external source, it is not possible to + create a File note type directly:

+ +

Supported file types

+

PDFs

+
+ +
+

PDFs can be browsed directly from Trilium.

+

Interaction:

+ +

Images

+
+ +
+

Interaction:

+ +

Videos

+
+ +
+

Video files can be added in as well. The file is streamed directly, so + when accessing the note from a server it doesn't have to download the entire + video to start playing it.

+ +

Audio

+
+ +
+

Adding a supported audio file will reveal a basic audio player that can + be used to play it.

+

Interactions:

+ +

Text files

+
+ +
+

Files that are identified as containing text will show a preview of their + content. One common use case for this type of file is to embed text files + whose content is not necessarily of interest to the user, such as third-party + libraries or generated content, that can then be downloaded if needed.

+

Note that generally text files will be imported as + either Text or  + Code notes. To bypass this behavior and create a File note + type, use the Import into note feature and uncheck Import HTML, Markdown and TXT as text notes, + as well as Import recognized code files as code notes

+

Since one of the use cases for having files instead of notes is to display + large files, the content preview is limited to a relatively small amount + of characters. To view the full file, consider opening it in an external + application.

+

Unknown file types

+
+ +
+

If the file could not be identified as any of the supported file types + from above, it will be treated as an unknown file. In this case, all the + default interactions will be available such as downloading or opening the + file externally, but there will be no preview of the content.

+

Interaction

+ +

Relation with other notes

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/File_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/File_image.png new file mode 100644 index 000000000..0f01d19d9 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/File_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html new file mode 100644 index 000000000..44850ab53 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html @@ -0,0 +1,67 @@ +
+ +
+

Trilium supports Mermaid, which adds support for various diagrams such + as flowchart, sequence diagram, class diagram, state diagram, pie charts, + etc., all using a text description of the chart instead of manually drawing + the diagram.

+

For the official documentation of Mermaid.js see mermaid.js.org/intro/.

+

Layouts

+

Depending on the chart being edited and user preference, there are two + layouts supported by the Mermaid note type:

+ +

It's possible to switch between the two layouts at any time by pressing + the + icon in the Floating buttons area.

+

Interaction

+ +

Errors in the diagram

+

If there is an error in the source code, the error will be displayed in + an information pane.

+

During the state of an error, the diagram will no longer be rendered and + the previously working diagram will remain in the preview section.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html new file mode 100644 index 000000000..6ea404077 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout.html @@ -0,0 +1,26 @@ +

Mermaid supports a different layout engine which supports slightly more + complex diagrams, called the Eclipse Layout Kernel (ELK). + Trilium has support for these as well, but it's not enabled by default.

+

In order to activate ELK for any diagram, insert the following YAML frontmatter + right at the beginning of the diagram:

---
+config:
+  layout: elk
+---
+ + + + + + + + + + + + + +
With ELK offWith ELK on
+ + + +
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout_ELK off.svg b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout_ELK off.svg new file mode 100644 index 000000000..a6a8a0125 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout_ELK off.svg @@ -0,0 +1 @@ +

Guarantee

User attributes

Master data

Exchange Rate

Profit Centers

Vendor Partners

Work Situation

Customer

Profit Centers

Guarantee

A

B

C

Interfaces for B
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout_ELK on.svg b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout_ELK on.svg new file mode 100644 index 000000000..1a400331d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams/ELK layout_ELK on.svg @@ -0,0 +1 @@ +

A

B

C

Guarantee

User attributes

Master data

Exchange Rate

Profit Centers

Vendor Partners

Work Situation

Customer

Profit Centers

Guarantee

Interfaces for B
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams_image.png new file mode 100644 index 000000000..c0cc4cd31 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html new file mode 100644 index 000000000..48766db0c --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html @@ -0,0 +1,39 @@ +
+ +
+

The mindmap allows for easy jotting down of ideas and storing them in + a hierarchical fashion.

+

Terminology

+ +

Interaction

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mind Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mind Map_image.png new file mode 100644 index 000000000..9e4481862 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Mind Map_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html new file mode 100644 index 000000000..9c567f670 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html @@ -0,0 +1,12 @@ +
+ +
+

A Note map is a note type which displays a standalone version of the feature + of the same name: Note Map (Link map, Tree map).

+

Once created, the note map will display the relations between notes. Only + the notes that are part of the parent of the note map will be displayed + (including their children).

+

The labels mapIncludeRelation and mapExcludeRelation, + if set, filter the note map to include only the specified relations or + to exclude the specified relations, respectively.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map_image.png new file mode 100644 index 000000000..2ba7707df Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Note Map_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html new file mode 100644 index 000000000..957acc574 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html @@ -0,0 +1,75 @@ +

Relation map is a type of Note which + visualizes notes and their relations. + See an example:

+

Development process demo

+

This is a basic example how you can create simple diagram using relation + maps:

+

+ +

+

And this is how you can create it:

+

+ +

+

We start completely from scratch by first creating new note called "Development + process" and changing its type to "Relation map". After that we create + new notes one by one and place them by clicking into the map. We also drag + relationsbetween notes and name them. That's all!

+

Items on the map - "Specification", "Development", "Testing" and "Demo" + are actually notes which have been created under "Development process" + note - you can click on them and write some content. Connections between + notes are called "relations".

+

Family demo

+

This is more complicated demo using some advanced concepts. Resulting + diagram is here:

+

+ +

+

This is how you get to it:

+

+ +

+

There are several steps here:

+ +

Relation definitions mentioned above come from "Person template" note + which is assigned to any child of "My Family Tree" relation note. You can + play with the whole thing in the demo notes.

+

Details

+

You can specify which relations should be displayed with comma delimited + names of relations in displayRelations label.

+

Alternatively, you can specify comma delimited list of relation names + in hideRelations which will display all relations, except for + the ones defined in the label.

+

See also

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map_relation-map-.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map_relation-map-.gif new file mode 100644 index 000000000..836685514 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map_relation-map-.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map_relation-map-.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map_relation-map-.png new file mode 100644 index 000000000..86ea6477f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Relation Map_relation-map-.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html new file mode 100644 index 000000000..0d8f4200a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html @@ -0,0 +1,40 @@ +
+ +
+

Render Note is used in Scripting. + It works by displaying the HTML of a Code note, + via an attribute.

+

Creating a render note

+
    +
  1. Create a Code note + with the HTML language, with what needs to be displayed (for example <p>Hello world.</p>).
  2. +
  3. Create a Render Note.
  4. +
  5. Assign the renderNote relation to + point at the previously created code note.
  6. +
+

Dynamic content

+

A static HTML is generally not enough for Scripting. The next step is to automatically + change parts of the note using JavaScript.

+

For a simple example, we are going to create a render note that displays + the current date in a field.

+

To do so, first create an HTML code note with the following content:

<h1>Current date & time</h1>
+The current date & time is <span class="date"></span>
+

Now we need to add the script. Create another Code, but this time of JavaScript (frontend) + language. Make sure the newly created note is a direct child of the HTML + note created previously; with the following content:

const $dateEl = api.$container.find(".date");
+$dateEl.text(new Date());
+

Now create a render note at any place and set its ~renderNote relation + to point to the HTML note. When the render note is accessed it will display:

+
+

Current date & time +
The current date & time is Sun Apr 06 2025 15:26:29 GMT+0300 (Eastern + European Summer Time)

+
+

Examples

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Render Note_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Render Note_image.png new file mode 100644 index 000000000..75e246c44 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Render Note_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html new file mode 100644 index 000000000..6d6794743 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html @@ -0,0 +1,15 @@ +

Trilium allows you to save common searches as notes within the note tree. + The search results will appear as sub-notes under these "saved search" + notes. Here is an example of how it works:

+
+ +
+ +

Location

+

By default, saved searches are stored in the day note. However, you can + designate a different note to store saved searches by marking it with the #searchHome label. + Additionally, for workspaces, you + can use the #workspaceSearchHome label to specify a storage + location for saved searches within that workspace.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Saved Search_saved-search.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Saved Search_saved-search.gif new file mode 100644 index 000000000..72864f1cc Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Saved Search_saved-search.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html new file mode 100644 index 000000000..b09ee1395 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text.html @@ -0,0 +1,187 @@ +

The default note type in Trilium, text notes allow for rich formatting, + tables, images, admonitions and a handful of other features.

+

Formatting bars

+

Most of the interaction with text notes is done via the built-in toolbars. + Depending on preference, there are two different layouts:

+ +

Fore more information see Formatting toolbar.

+

Features and formatting

+

Here's a list of various features supported by text notes:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dedicated articleFeature
General formatting + +
    +
  • Headings (section titles, paragraph)
  • +
  • Font size
  • +
  • Bold, italic, underline, strike-through
  • +
  • Superscript, subscript
  • +
  • Font color & background color
  • +
  • Remove formatting
  • +
+
Lists + +
    +
  • Bulleted lists
  • +
  • Numbered lists
  • +
  • To-do lists
  • +
+
Block quotes & admonitions + +
    +
  • Block quotes
  • +
  • Admonitions
  • +
+
Tables + +
    +
  • Basic tables
  • +
  • Merging cells
  • +
  • Styling tables and cells.
  • +
  • Table captions
  • +
+
Developer-specific formatting + +
    +
  • Inline code
  • +
  • Code blocks
  • +
  • Keyboard shortcuts
  • +
+
Footnotes + +
    +
  • Footnotes
  • +
+
Images + +
    +
  • Images
  • +
+
Links + +
    +
  • External links
  • +
  • Internal Trilium links
  • +
+
Include Note + +
    +
  • Include note
  • +
+
Insert buttons + +
    +
  • Symbols
  • +
  • Math Equations +
  • +
  • Mermaid diagrams
  • +
  • Horizontal ruler
  • +
  • Page break
  • +
+
Other features + + +
Premium features + + +
+
+ +

Read-Only vs. Editing Mode

+

Text notes are usually opened in edit mode. However, they may open in + read-only mode if the note is too big or the note is explicitly marked + as read-only. For more information, see Read-Only Notes.

+

Keyboard shortcuts

+

There are numerous keyboard shortcuts to format the text without having + to use the mouse. For a reference of all the key combinations, see  + Keyboard Shortcuts. In addition, see Markdown-like formatting as an + alternative to the keyboard shortcuts.

+

Technical details

+

For the text editing functionality, Trilium uses a commercial product + (with an open-source base) called CKEditor. + This brings the benefit of having a powerful WYSIWYG (What You See Is What + You Get) editor.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Images_image.png new file mode 100644 index 000000000..32f99c37c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Lists_image.png new file mode 100644 index 000000000..1282f27ec Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Tables_image.png new file mode 100644 index 000000000..5cf2cc519 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/10_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/11_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/11_Tables_image.png new file mode 100644 index 000000000..cde63c9ac Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/11_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/12_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/12_Tables_image.png new file mode 100644 index 000000000..9c512ee53 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/12_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Block quotes & admonitions.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Block quotes & admonitions.png new file mode 100644 index 000000000..175c661f7 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Block quotes & admonitions.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Bookmarks_plus.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Bookmarks_plus.png new file mode 100644 index 000000000..84183c1e8 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Bookmarks_plus.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Developer-specific formatt.png new file mode 100644 index 000000000..9580128a2 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Footnotes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Footnotes_image.png new file mode 100644 index 000000000..64c876e33 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Footnotes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Formatting toolbar_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Formatting toolbar_image.png new file mode 100644 index 000000000..bc6bd96c4 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Formatting toolbar_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_General formatting_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_General formatting_image.png new file mode 100644 index 000000000..295d3c809 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_General formatting_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Images_image.png new file mode 100644 index 000000000..a4e23ef9a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Insert buttons_image.png new file mode 100644 index 000000000..7ae8c13cc Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Insert buttons_plus.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Insert buttons_plus.png new file mode 100644 index 000000000..723ca82d7 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Insert buttons_plus.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Lists_image.png new file mode 100644 index 000000000..fba0cc85c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Math Equations_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Math Equations_image.png new file mode 100644 index 000000000..e81487085 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Math Equations_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Other features_image.png new file mode 100644 index 000000000..6618b1375 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Tables_image.png new file mode 100644 index 000000000..4dacba1e3 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/1_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Block quotes & admonitions.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Block quotes & admonitions.png new file mode 100644 index 000000000..afc26f32c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Block quotes & admonitions.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Developer-specific formatt.png new file mode 100644 index 000000000..295d3c809 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Formatting toolbar_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Formatting toolbar_image.png new file mode 100644 index 000000000..c7d879eba Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Formatting toolbar_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_General formatting_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_General formatting_image.png new file mode 100644 index 000000000..aa65a36f0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_General formatting_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Images_image.png new file mode 100644 index 000000000..08a40b0d0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Insert buttons_image.png new file mode 100644 index 000000000..66cd278a0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Lists_image.png new file mode 100644 index 000000000..ee7a6bdea Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Other features_image.png new file mode 100644 index 000000000..e6cd79c22 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Tables_image.png new file mode 100644 index 000000000..5cc9f0b7b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/2_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Developer-specific formatt.png new file mode 100644 index 000000000..67c4c43fe Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Formatting toolbar_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Formatting toolbar_image.png new file mode 100644 index 000000000..3270223e2 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Formatting toolbar_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_General formatting_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_General formatting_image.png new file mode 100644 index 000000000..d19a5e7a0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_General formatting_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Images_image.png new file mode 100644 index 000000000..297d49ee5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Insert buttons_image.png new file mode 100644 index 000000000..b6b417931 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Lists_image.png new file mode 100644 index 000000000..32992762a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Other features_image.png new file mode 100644 index 000000000..c3cead392 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Tables_image.png new file mode 100644 index 000000000..092a053e5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/3_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Developer-specific formatt.png new file mode 100644 index 000000000..ef28ed50d Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_General formatting_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_General formatting_image.png new file mode 100644 index 000000000..7d1208b10 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_General formatting_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Images_image.png new file mode 100644 index 000000000..9f8ecc326 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Insert buttons_image.png new file mode 100644 index 000000000..614c755b2 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Lists_image.png new file mode 100644 index 000000000..8369a03c6 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Other features_image.png new file mode 100644 index 000000000..3645073c6 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Tables_image.png new file mode 100644 index 000000000..eaf4d9694 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/4_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Developer-specific formatt.png new file mode 100644 index 000000000..c0cf731a5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Images_image.png new file mode 100644 index 000000000..2e37305ca Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Insert buttons_image.png new file mode 100644 index 000000000..1221e39b9 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Lists_image.png new file mode 100644 index 000000000..ed6f4c37c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Other features_image.png new file mode 100644 index 000000000..ee7a6bdea Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Tables_image.png new file mode 100644 index 000000000..5df4b16ce Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/5_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Developer-specific formatt.png new file mode 100644 index 000000000..ddc7e16e7 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Images_image.png new file mode 100644 index 000000000..f8c5cf48f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Insert buttons_image.png new file mode 100644 index 000000000..28711b3cb Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Lists_image.png new file mode 100644 index 000000000..0ab30524b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Other features_image.png new file mode 100644 index 000000000..4c702d538 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Tables_image.png new file mode 100644 index 000000000..3394d4661 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/6_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Images_image.png new file mode 100644 index 000000000..731df83bb Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Insert buttons_image.png new file mode 100644 index 000000000..68028bba0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Lists_image.png new file mode 100644 index 000000000..3caf2d880 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Tables_image.png new file mode 100644 index 000000000..4b7670285 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/7_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Images_image.png new file mode 100644 index 000000000..0167e759b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Insert buttons_image.png new file mode 100644 index 000000000..20581dfa7 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Lists_image.png new file mode 100644 index 000000000..4a17f481c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Tables_image.png new file mode 100644 index 000000000..cde63c9ac Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/8_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Images_image.png new file mode 100644 index 000000000..8fa28fbf9 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Lists_image.png new file mode 100644 index 000000000..2473cd310 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Tables_image.png new file mode 100644 index 000000000..099b25357 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/9_Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html new file mode 100644 index 000000000..6f16fc214 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.html @@ -0,0 +1,65 @@ +

Block quotes

+

As the name suggests, block quotes can be useful to cite one or more paragraphs.

+

To create a block quote, press + from the Formatting toolbar. + It's also possible to type >, followed by a space to create + one (but only if the cursor is at the beginning of a line).

+

Inside the quote block, other block items can be inserted such as tables, + images, or even other block quotes or admonitions.

+

Admonitions

+

Admonitions are a way to highlight information to the reader. Other names + for it include call-outs and info/warning/alert boxes.

+
+ +
+

From a functional point of view, admonitions act very similarly to a block + quote, just with different styling. This includes the ability to insert + other elements in it such as headings, tables, images, etc.

+

Inserting a new admonition

+

In the Formatting toolbar:

+

+ +

+

It's possible to insert an admonition simply by typing:

+ +

In addition to that, it's also possible to type !!!  + followed by any text, case in which a default admonition type will appear + (note) with the entered text inside it.

+

Interaction

+

By design, admonitions act very similar to block quotes.

+ +

Inside an admonition:

+ +

Types of admonitions

+

There are currently five types of admonitions: Note, Tip, Important, Caution, Warning.

+

These types were inspired by GitHub's support for this feature and there + are currently no plans for adjusting it or allowing the user to customize + them.

+

Markdown support

+

See Supported syntax.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.png new file mode 100644 index 000000000..ee95e6653 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Block quotes & admonitions.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Bookmarks.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Bookmarks.html new file mode 100644 index 000000000..8e1e9979f --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Bookmarks.html @@ -0,0 +1,29 @@ +

Bookmarks allows creating links to + a certain part of a note, such as referencing a particular heading.

+

Technically, bookmarks are HTML anchors.

+

This feature was introduced in TriliumNext 0.94.0.

+

Interaction

+ +

Limitations

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Bookmarks_plus.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Bookmarks_plus.png new file mode 100644 index 000000000..b2dc917a6 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Bookmarks_plus.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-t.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-t.png new file mode 100644 index 000000000..dee799386 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-t.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html new file mode 100644 index 000000000..6f0462213 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Content language & Right-to-le.html @@ -0,0 +1,15 @@ +

+ +

+

A language hint can be provided for text notes. This option informs the + browser or the desktop application about the language the note is written + in (for example this might help with spellchecking), and it also determines + whether the text is displayed from right-to-left for languages such as + Arabic, Hebrew, etc.

+

Setting the language

+

To set the language of the content, go to “Basic Properties” and look + for the “Language” field.

+

Adjusting the list of languages

+

By default there will be no language configured, they can be configured + by going to settings or by selecting the “Configure languages” item when + setting the language.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html new file mode 100644 index 000000000..853088334 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote.html @@ -0,0 +1,17 @@ +
+ +
+

When editing a document that becomes too large, you can split it into + sub-notes:

+
    +
  1. Select the desired text and cut it to the clipboard.
  2. +
  3. Create a new sub-note and name it.
  4. +
  5. Paste the content from the clipboard into the sub-note.
  6. +
+

Trilium can automate this process. Select some text within the note, and + in the selection toolbar, click the scissors icon for the "cut & pasted + selection to sub-note" action. The heading is automatically detected and + the new sub-note is named accordingly. You can also assign a keyboard shortcut + for this action. This functionality is available through the block toolbar + icon.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote_cut-to-subn.gif b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote_cut-to-subn.gif new file mode 100644 index 000000000..b71afd0bd Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Cut to subnote_cut-to-subn.gif differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatt.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatt.png new file mode 100644 index 000000000..6ae0fd87a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatt.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html new file mode 100644 index 000000000..be60556c4 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html @@ -0,0 +1,42 @@ +

Inline code

+

Inline code formats text using a monospace font to indicate technical + content in a sentence such as code, paths, etc.

+

+ +

+

Example of inline code being used to illustrate file system paths as well + as shell commands (git in this case).

+

To insert an inline code:

+ +

Code blocks

+

Code blocks display a snippet of code as a dedicated block:

+

+ +

+

A code block with JavaScript syntax highlight enabled.

+

Note that these are not meant for very large portions of code. Use the + dedicated Code note type + instead.

+

See the dedicated documentation for more information: Code blocks +

+

Keyboard shortcuts

+

This allows marking a portion of text as a shortcut key.

+

+ +

+

To apply this style, press the + button in + group from the Formatting toolbar. + On the floating toolbar, the buttons appear when selecting a text.

+

Alternatively, press the Ctrl+Alt+K combination + to apply keyboard shortcut formatting to the current text selection.

+

The formatting can be removed by pressing again the button (from the UI + or from the keyboard), or by using the + Remove formatting button.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/1_Code blocks_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/1_Code blocks_image.png new file mode 100644 index 000000000..ef28ed50d Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/1_Code blocks_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/2_Code blocks_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/2_Code blocks_image.png new file mode 100644 index 000000000..6cd7f4b4e Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/2_Code blocks_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html new file mode 100644 index 000000000..87ce90c0a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html @@ -0,0 +1,92 @@ +

+ +

+

The code blocks feature allows entering pieces of code in text notes.

+

Note that this feature is meant for generally small snippets of code. + For larger files such as an entire log, see the Code note type instead.

+

Inserting a code block

+ +

Syntax highlighting & color schemes

+

Since TriliumNext v0.90.12, Trilium will try to offer syntax highlighting + to the code block. Note that the syntax highlighting mechanism is slightly + different than the one in Code notes + as different technologies are involved.

+

Interaction:

+ +

Note that when editing a text note, syntax highlighting is automatically + disabled if the code block is too big (somewhere around 500 lines). This + value is currently not configurable. For Read-Only Notes, this limitation is + not applied.

+

In order to configure this new feature, a section has been added in Options + → Appearance to control the syntax highlighting. There the color scheme + can be chosen, from a builtin selection of themes from Highlight.js.

+ + +

Migrating from existing syntax highlight plugins

+

If you are already using a syntax highlighting plugin such as the Trilium-SyntaxHighlightWidget we + are basing off of, it is important to disable that plugin before upgrading + in order for it not to conflict with our implementation.

+

Should you encounter any issues after the migration, try running Trilium + in safe mode.

+

Changing the language of a code block

+

Simply click anywhere inside the code block and press again the code block + button in the Formatting toolbar: +
+ +

+

Adjusting the list of languages

+

The code blocks feature shares the list of languages with the  + Code note type.

+

The supported languages can be adjusted by going to Options, then Code Notes and + looking for the Available MIME types in the dropdown section. Simply + check any of the items to add them to the list, or uncheck them to remove + them from the list.

+

Note that the list of languages is not immediately refreshed, you'd have + to manually refresh the application.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks_image.png new file mode 100644 index 000000000..cabd7f48a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html new file mode 100644 index 000000000..dc63ed511 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes.html @@ -0,0 +1,21 @@ +
+ +
+

Footnotes are a good place to insert references to a paragraph or details + that are displayed at the bottom of the note.

+

Interaction

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes_image.png new file mode 100644 index 000000000..8c69b7fdd Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Footnotes_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html new file mode 100644 index 000000000..72e18f740 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html @@ -0,0 +1,39 @@ +

Trilium allows two different editing experiences for text notes, based + on your preference.

+

The type of formatting toolbar can be changed by going to Options and then looking for the  + Text Notes section. In it, look for the Formatting toolbar category.

+

Floating

+

The floating bar is a more minimalist option, in which the formatting + is hidden behind two different popups.

+

Block-level popup

+

The first popup is the block-level popup. This will appear to the left + of the current paragraph you are currently editing, as a sequence of dots: +
+ +

+

Clicking this popup will reveal the formatting options that are specific + to the entire paragraph, such as setting a heading, lists, tables, etc.

+

+ +

+

Inline popup

+

The inline popup appears automatically when selecting a text:

+

+ +

+

All the options here apply only to the selected portion of text, such + as changing the font size, or making the text bold.

+

Fixed

+

The fixed formatting offers a more traditional editing paradigm, usually + useful if a lot of formatting is needed.

+

All the options are combined into a single toolbar that will appear as + part of the Ribbon.

+

+ +

+

By default, if the toolbar does not fit on the screen, the rest of the + options will be grouped into a single option at the end. It is possible + to display items on multiple lines by checking the corresponding option + in the Formatting toolbar section.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar_image.png new file mode 100644 index 000000000..85578b78e Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html new file mode 100644 index 000000000..8ee8f6989 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting.html @@ -0,0 +1,94 @@ +

Headings

+
+ +
+

Trilium provides headings to define sections within text. Headings are + numbered from 2 to 6.

+

The reason why Heading 1 is missing from the list is that it is being + reserved for the title of note.

+

To turn a heading back into a normal text, select Paragraph from + the list.

+

Apart from using the UI, it is also possible to quickly insert headings + using the Markdown-like shortcuts:

+ +

Font size

+
+ +
+

One way to highlight a portion of text is to increase the size of the + font.

+

To do so, select some text and choose an option from the Font size selector + (as pictured to the right).

+

Unlike other text editors such as Microsoft Word, the font size is relative + (i.e. “Tiny”, “Small” instead of a number like 12).

+

Avoid using this feature just to simply make all text bigger. In that + case it's generally better to adjust the font size for all notes in  + Options or by zooming.

+

Bold, italic, underline, strike-through

+
+ +
+

Text can be formatted as Bold, Italic, Underline + or Strike-through via the dedicated buttons in the formatting + toolbar.

+

This formatting can be easily removed using the Remove formatting item.

+

The following keyboard shortcuts can be used here:

+ +

Alternatively, Markdown-like formatting can be used:

+ +

Superscript, subscript

+

This allows writing superscript or subscript text.

+

This is mostly useful for units of measure (e.g. cm3 for cubic centimeters) + and chemical notations (e.g. NaHCO3)

+

For mathematical formulas, prefer the Math Equations feature + instead.

+

Font color and background color

+
+ +
+

Selected text can be colored with one of the predefined colors from a + palette or any color can be selected using the color picker.

+

Once there is at least one color defined in the document, it will appear + in the list for easy reuse.

+

When selecting a foreground or a background color, consider the contrast + if switching between a dark theme or a light theme.

+

To remove either the background or foreground color of a text, select + the corresponding formatting button and press Remove color or use + the Remove formatting toolbar item.

+

Remove formatting

+

The + Remove formatting button is a quick way to eliminate the general + formatting styling of a particular text.

+

Simply select the text and press the button to remove the formatting (bold, + italic, colors, sizes, etc.). If the text does not have any removable formatting, + the button will appear disabled.

+

Note that heading styles are not taken into consideration, these must + be manually changed back to a paragraph according to the Headings section.

+

When pasting content that comes with undesired formatting, an alternative + to pasting and then removing formatting is pasting as plain text via Ctrl+Shift+V.

+

Support for Markdown

+

When exported to Markdown, + most of the general formatting is maintained such as headings, bold, italic, + underline, etc.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting_image.png new file mode 100644 index 000000000..1d1cfb3ea Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/General formatting_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html new file mode 100644 index 000000000..b492c7cc0 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html @@ -0,0 +1,32 @@ +
+ +
+

Similar to the Table of contents, + but instead of headings this feature will list highlighted text from a + text note and allow easy navigation to them. The list will be displayed + in the Right Sidebar, + provided there is at least one highlighted text.

+

Highlighted text is defined as:

+ +

Interaction

+ +

Global configuration

+

It's possible to toggle the display of each category of highlighted text + (as defined above) in the highlights list by going to Text Notes settings + and looking for the Highlights List section.

+

Per-note configuration

+

To suppress the display of highlighted text for one specific note, use  + Attributes to add the #hideHighlightWidget label.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list_image.png new file mode 100644 index 000000000..2115d49ba Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html new file mode 100644 index 000000000..3ac99f8af --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html @@ -0,0 +1,106 @@ +

Trilium supports storing and displaying images. Supported formats are + JPEG, PNG and GIF.

+

An image can be uploaded in the form of note's attachment or + as a standalone note placed into the + note tree. Its reference can be copied into a text note, in order + to display it in the text itself.

+

Uploading images

+

To add an image to the note, simply drag it from file explorer onto the + note editor inside Trilium and the image will be uploaded.

+

+ +

+

Alternatively you can click on block toolbar and then on "Insert image":

+

+ +

+

You can also copy and paste an image from web - the image will be (asynchronously) + downloaded and embedded.

+

Configuring the images

+

Clicking on an image will reveal a popup with multiple options: +
+ +

+

Alignment

+

The first set of options configure the alignment are, in order:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IconOptionPreviewDescription
+ + Inline + + As the name suggests, the name can be put inside a paragraph and moved + around similarly as if it was a block of text. Use drag & drop or cut-paste + to move it around.
+ + Centered image + + The image will be displayed as a block and centered, not allowing text + in either the left or right of it.
+ + Wrap text + + The image will be displayed to the left or the right of the text.
+ + Block align + + Similarly to Centered image, the image will be displayed as a + block and aligned either to the left or to the right, but not allowing + text to flow on either of its sides.
+
+ +

Compression

+

Since Trilium isn't really meant to be primary storage for image data, + it attempts to compress and resize (with pretty aggressive settings) uploaded + images before storing them to the database. You may then notice some quality + degradation. Basic quality settings is available in Options → Other.

+

If you want to save images in their original resolution, it is recommended + to save them as attachment to note (look for the contextual menu in  + Note buttons → Import files).

+

Aligning images side-by-side

+

There are generally two ways to display images side by side:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/1_Image references_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/1_Image references_image.png new file mode 100644 index 000000000..d6ca4aa80 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/1_Image references_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html new file mode 100644 index 000000000..c9b26fc84 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html @@ -0,0 +1,31 @@ +
+ +
+

Image references are an easy way to embed the preview of another note + type into a Text note.

+

Supported note types

+ +

Steps

+
    +
  1. Go to one of the supported notes (listed above) and look for the + button in the Floating buttons area.
  2. +
  3. Go to a Text note + and use the Paste function to insert the reference to that note.
  4. +
+

Interaction

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references_image.png new file mode 100644 index 000000000..a54daef4a Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images_image.png new file mode 100644 index 000000000..938a0d2b3 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Images_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html new file mode 100644 index 000000000..84adc92de --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html @@ -0,0 +1,8 @@ +

Text notes can "include" another note as a read-only widget. This can + be useful for e.g. including a dynamically generated chart (from scripts + & "render HTML" note) or other more advanced use cases.

+

Including a note

+

In the Formatting toolbar, + look for the + button. There is also a keyboard shortcut defined for it but it is not + allocated by default.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note_image.png new file mode 100644 index 000000000..6fb41a445 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html new file mode 100644 index 000000000..d74b7f43b --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons.html @@ -0,0 +1,77 @@ +

Press the + button in the Formatting toolbar to + reveal special inserable items and blocks such as symbols, Math expressions + and separators.

+

Bookmarks

+

See the dedicated Bookmarks section.

+

Emoji

+
+ +
+

This feature allows inserting Unicode emoji characters. Simply select + a category and a desired emoji to insert it.

+

Emojis can also be searched by their English name and the skin tone can + be selected via a combo box to the right.

+

There is also the possibility of inserting emojis directly by typing : followed + by a name of an emoji, triggering the display of a list of emojis. Simply + use the arrow keys to select one and press Enter to insert it.

+ + +

Symbols

+
+ +
+

Pressing the + button will reveal a popup window displaying a list of characters that + are generally more difficult to insert directly from the keyboard, such + as a subset of emojis, quotation characters, etc.

+

Interaction:

+ +

Math equations

+

See the dedicated Math Equations page.

+

Mermaid diagram

+

Press the + button to create an inline Mermaid diagram.

+

This feature is quite similar to the Mermaid Diagrams note + types and is meant as an alternative to it for simple diagrams. For more + complex diagrams, use the Include Note feature + for a dedicated Mermaid note.

+
+ +
+ +

Horizontal ruler

+

This feature will display a horizontal line, generally useful to separate + different sections of the text. To do so, press the + button in the Formatting toolbar.

+ +

Alternatively, it's possible to insert a horizontal ruler by typing ---.

+

Page break

+
+ +
+

Page breaks provide a way to force the next paragraph or block (table, + image, etc.) to be displayed onto the next page when printing (either to + a real printer to when exporting to PDF).

+

Page breaks are marked in the editor with the words Page break, + but they will not actually be shown when printed.

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons_image.png new file mode 100644 index 000000000..b2bdcc520 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons_plus.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons_plus.png new file mode 100644 index 000000000..5cd65f1e1 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Insert buttons_plus.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html new file mode 100644 index 000000000..f26061d1c --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Keyboard shortcuts.html @@ -0,0 +1,443 @@ +

Trilium-specific shortcuts

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionPCMac
Bring up inline formatting toolbar (arrow keys , to + navigate, Enter to apply)Alt+F10 + +F10 +
Bring up block formatting toolbarAlt+F10 + +F10 +
Create external link + Ctrl+K + +K +
Create internal (note) link + Ctrl+L + +L +
Inserts current date and time at caret positionAlt+T +T 
Increase paragraph indentationTab + +
Decrease paragraph indentationShift + Tab + + +
Mark selected text as keyboard shortcut + Ctrl + Alt + K + + + K +
Insert Math Equations + Ctrl + M + + M +
Move blocks (lists, paragraphs, etc.) upCtrl+ + 
Alt+ + + +
Move blocks (lists, paragraphs, etc.) downCtrl+ + + +
Alt+ + + +
+
+ +

Common shortcuts

+ +

Content editing

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionPCMac
Insert a hard break (a new paragraph)Enter +  
Insert a soft break (a <br> element)Shift+Enter + ⇧Enter +
Copy selected contentCtrl+C + ⌘C +
Paste contentCtrl+V + ⌘V +
Paste content as plain textCtrl+Shift+V + ⌘⇧V +
UndoCtrl+Z + ⌘Z +
RedoCtrl+Y, Ctrl+Shift+Z + ⌘Y, ⌘⇧Z +
Bold textCtrl+B + ⌘B +
Change text caseShift+F3 + ⇧F3 (may require Fn)
Create linkCtrl+K + ⌘K +
Move out of a link←←, →→ +  
Move out of an inline code style←←, →→ +  
Select allCtrl+A + ⌘A +
Find in the documentCtrl+F + ⌘F +
Copy text formattingCtrl+Shift+C + ⌘⇧C +
Paste text formattingCtrl+Shift+V + ⌘⇧V +
Italic textCtrl+I + ⌘I +
Strikethrough textCtrl+Shift+X + ⌘⇧X +
Underline textCtrl+U + ⌘U +
Revert autoformatting actionBackspace +  
+
+ +

Interacting with blocks

+

Blocks are images, tables, blockquotes, annotations.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionPCMac
Insert a new paragraph directly after a widgetEnter +  
Insert a new paragraph directly before a widgetShift+Enter + ⇧Enter +
Move the caret to allow typing directly before a widget, +  
Move the caret to allow typing directly after a widget, +  
After entering a nested editable, move the selection to the closest ancestor + widget. For example: move from an image caption to the whole image widget.Tab then Esc +  
+
+

Specifically for lists:

+
+ + + + + + + + + + + + + + + + + + + + +
ActionPCMac
Increase list item indent +  
Decrease list item indentShift+ + ⇧⇥ +
+
+

In tables:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionPCMac
Move the selection to the next cell +  
Move the selection to the previous cellShift+ + ⇧⇥ +
Insert a new table row (when in the last cell of a table) +  
Navigate through the table, , , +  
+
+ +

General UI shortcuts

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionPCMac
Close contextual balloons, dropdowns, and dialogsEsc +  
Open the accessibility help dialogAlt+0 + ⌥0 +
Move focus between form fields (inputs, buttons, etc.), Shift+ + , ⇧⇥ +
Move focus to the toolbar, navigate between toolbarsAlt+F10 + ⌥F10 (may require Fn)
Navigate through the toolbar or menu bar, , , +  
Navigate to the next focusable field or an element outside the editorTab, Shift+Tab +  
Execute the currently focused button. Executing buttons that interact + with the editor content moves the focus back to the content.Enter, Space +  
Move focus in and out of an active dialog windowCtrl+F6 + ⌘F6 (may require Fn)
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html new file mode 100644 index 000000000..ab4d227e1 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html @@ -0,0 +1,35 @@ +

There are two types of links:

+ +

Pasting links

+ +

In-place linking

+

Trilium also provides "inline" linking - type @ and you'll + see an autocomplete, just type few characters from the desired note title, + press enter and you have a link.

+

Note map

+

Trilium provides a visualisation of incoming and outgoing links for a + particular note. See note map for + details.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png new file mode 100644 index 000000000..03fdc6792 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/1_External links_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png new file mode 100644 index 000000000..72b2415d5 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/2_External links_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links.html new file mode 100644 index 000000000..e296eef5a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links.html @@ -0,0 +1,38 @@ +

An external link is a standard web link targeting for example a website. + For example, https://en.wikipedia.org/wiki/South_China_Sea is + an external link to a Wikipedia page.

+

To create a link without a custom text:

+ +

To create a link with a custom text:

+ +

Once a link is inserted:

+ +

You can follow external link by either double clicking (will open new + tab/window) it or right clicking on them and choosing "Open in new tab".

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links_image.png new file mode 100644 index 000000000..87c31b000 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/External links_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.html new file mode 100644 index 000000000..f4070a1b5 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.html @@ -0,0 +1,33 @@ +

Unlike external notes, internal links (links to other notes) can be created + at the current position by :

+
    +
  1. Pressing Ctrl + L or the + button from the Formatting toolbar.
  2. +
  3. Filling in the desired note to link. It's also possible to create notes + from this dialog by typing a non-existing note title and selecting Create and link child note.
  4. +
+

There are two link types, adjustable when creating the link to the note:

+
    +
  1. link title mirrors the note's current title +
      +
    1. This is sometimes also called "reference link".
    2. +
    3. Title of such links cannot be changed, instead it is always mirroring + the title of linked note.
    4. +
    5. The icon of the note is also displayed.
    6. +
    7. The link title will automatically update if the title of the note is changed.
    8. +
    +
  2. +
  3. link title can be changed arbitrarily +
      +
    1. This is the traditional hyperlink, where the text of the link can be different + to the note title.
    2. +
    +
  4. +
+

Once an internal link is created:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png new file mode 100644 index 000000000..1bd071c53 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Links/Internal (reference) links.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html new file mode 100644 index 000000000..50dfcf4a2 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists.html @@ -0,0 +1,98 @@ +

There are three types of lists supported by text notes:

+ +

For bulleted and numbered lists, it's possible to configure an alternative + marker such as squares or Roman numbering by pressing the + icon. For numbered lists, it's also possible to specify the number to + start at or whether to count in reverse order.

+

Keyboard interaction

+ +

Headings, code blocks within lists

+

It possible to add content-level blocks such as headings, code blocks, + tables within lists, as follows:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 + + First, create a list.
2 + + Press Enter to create a new list item.
3 + + Press Backspace to get rid of the bullet point. Notice the cursor position.
4 + + At this point, insert any desired block-level item such as a code block.
5 + + To continue with a new bullet point, press Enter until the cursor moves + to a new blank position.
6 + + Press Enter once more to create the new bullet.
+
+

The same principle applies to all three list types (bullet, numbered and + to-do).

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists_image.png new file mode 100644 index 000000000..30a9511b0 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Lists_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html new file mode 100644 index 000000000..165093de0 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Markdown-like formatting.html @@ -0,0 +1,66 @@ +

Markdown-like formatting allows inserting some basic formatting by typing + the Markdown equivalent. Note that this does not mean that Text notes supports Markdown, + these are just some convenience shortcuts.

+

To import more complex formatting into text notes, consider using the + Import from Markdown + function. For fully-fleged Markdown notes imports, consider using the + dedicated import function.

+ +

If auto-formatting is not desirable, press Ctrl + Z to + revert the text to its original form.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html new file mode 100644 index 000000000..dd41d19ab --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations.html @@ -0,0 +1,34 @@ +
+ +
+

Within text notes, it's possible to enter mathematical equations using + the + button from the Formatting toolbar (generally + found under the Insert buttons).

+

If inserting equations frequently, using the Ctrl+M keyboard + shortcut can be more comfortable. Alternatively, type $$ or \[ to + trigger the popup directly.

+

There is currently no quick way to insert an equation, such as surrounding + it with $ or pressing Ctrl+M on an already + typed-out equation.

+

The mathematical expression must be written in the TeX format. There is + no visual editor for the math equations, only a preview. 

+

Enabling Display mode will render the equation slightly bigger + (especially if using big operators such as summation, or fractions) and + center it. Display mode equations will act as blocks (i.e. like paragraphs, + or tables) and can be inserted for example in lists. Non-display equations + can be part of the text.

+

Supported math features

+

Technically we are using the KaTeX library which allows for a subset of + the TeX format. To see the full list of supported features, consult the + Supported Functionsand the Support Table from + the official documentation.

+

Markdown support

+

Math equations will be preserved when exporting to or importing from Markdown, + surrounded by \( characters for inline math expressions, and $\) for + display mode.

+

If you notice any issue with the Markdown import/export for equations, + feel free to report it while providing + the equation that causes issues.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations_image.png new file mode 100644 index 000000000..ffd51f4fa Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Math Equations_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html new file mode 100644 index 000000000..fe16dc603 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features.html @@ -0,0 +1,51 @@ +

Indentation

+
+ +
+

Paragraphs can be indented to the right using the  button from the  + Formatting toolbar.

+ +

Markdown import

+

If the clipboard contains Markdown text, it can be easily imported into + text notes. Simply copy a Markdown-formatted text and press the + to insert its visual representation.

+

Note that this only works with raw Markdown (e.g. # Heading 1 to + generate a heading) and not the visual representation of the Markdown (e.g. + as in the preview pane of an application). In that case, simply use the + paste function which already accepts HTML-formatted content.

+

This is mostly useful for snippets of text, for entire Markdown documents + use the dedicated Markdown import/export + function.

+

If accessing Trilium with a web browser, the Markdown import action will + ask for the content to be inserted into a dedicated screen since it does + not have access to the clipboard.

+

Cut to subnote

+

The + button will create a child note with the selected text. For more information, + see Cut to subnote.

+

Find and replace

+
+ +
+

The + button will open the editor's dedicated search and replace functionality.

+

Alternatively, the Ctrl+F combination can be pressed + to show the dialog.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features_image.png new file mode 100644 index 000000000..63ff048a3 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Other features_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features.html new file mode 100644 index 000000000..8b3a9e8ac --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features.html @@ -0,0 +1,18 @@ +

The text editor we are using for Text notes + is called CKEditor and it's a commercial product. The core components are + open-source, however they offer quite a few features that + require a commercial license in order to be used.

+

We have reached out to the CKEditor team in order to obtain a license + in order to have some of these extra features and they have agreed, based + on a signed agreement.

+

How the license works

+

The license key is stored in the application and it enables the use of + the previously described premium features. The license key has an expiration + date which means that the features can become disabled if using an older + version of the application for extended periods of time.

+

Can I opt out of these features?

+

At this moment there is no way to disable these features, apart from manually + modifying the source code. If this is a problem, let us know.

+

If you have the possibility of rebuilding the source code (e.g. if a package + maintainer), then modify VITE_CKEDITOR_KEY in apps/client/.env to + be GPL.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png new file mode 100644 index 000000000..b2dd17dfa Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/1_Text Snippets_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.html new file mode 100644 index 000000000..ca453511a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands.html @@ -0,0 +1,34 @@ +
+ +
+ +

Slash commands is a feature of Text notes + which allows easily accessing commonly used commands simply by using the + keyboard, without having to remember dedicated Keyboard Shortcuts.

+

Interaction

+ +

Integration with other features

+

Apart from the common set of commands, some features are specially integrated + with the slash commands:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png new file mode 100644 index 000000000..b46c1a4c6 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Slash Commands_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.html new file mode 100644 index 000000000..54e7ea03d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets.html @@ -0,0 +1,53 @@ +
+ +
+ +

Text Snippets are closely related to Templates, + but instead of defining the content of an entire note, text snippets are + pieces of formatted text that can easily be inserted in a text note.

+

Creating a text snippet

+

In the Note Tree: 

+
    +
  1. Right click a note where to place the text snippet.
  2. +
  3. Select Insert child note.
  4. +
  5. Select Text snippet.
  6. +
+

Afterwards, simply type in the content of the note the desired text. The + text can be formatted in the same manner as a normal text note.

+

The title of the note will become the title of the template. Optionally, + a description can be added in the Promoted Attributes section.

+

Inserting a snippet

+

Once a snippet is created, there are two options to insert it:

+
    +
  1. From the Formatting toolbar, + by looking for the + button.
  2. +
  3. Using Slash Commands:  +
      +
    1. To look for a specific template, start typing the name of the template + (its title).
    2. +
    3. To look for all the templates, type template.
    4. +
    +
  4. +
+ +

Limitations

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png new file mode 100644 index 000000000..90b8fbe95 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Premium features/Text Snippets_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html new file mode 100644 index 000000000..e1f806133 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html @@ -0,0 +1,32 @@ +
+ +
+

The table of contents appears in the Right Sidebar automatically + when there are multiple headings in a text note.

+

Interaction

+ +

Global configuration

+

In Text Notes options, + look for the Table of Contents section and configure the minimum + amount of headings that need to be present in the current note in order + for the table of contents to show:

+ +

Per-note configuration

+

Use Attributes to + configure the table of contents for a particular note:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents_image.png new file mode 100644 index 000000000..ff11c558c Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html new file mode 100644 index 000000000..feee331e6 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables.html @@ -0,0 +1,148 @@ +

Tables are a powerful feature for Text notes, + since editing them is generally easy.

+
+ +
+

To create a table, simply press the table button and select with the mouse + the desired amount of columns and rows, as indicated in the adjacent figure.

+

Formatting toolbar

+

When a table is selected, a special formatting toolbar will appear:

+ + +

Navigating a table

+ +

Resizing cells

+ +

Inserting new rows and new columns

+ +

Merging cells

+

To merge two or more cells together, simply select them via drag & + drop and press the + button from the formatting toolbar.

+

More options are available by pressing the arrow next to it:

+ +

Table properties

+
+ +
+

The table properties can be accessed via the + button and allows for the following adjustments:

+ +

The table will immediately update to reflect the changes, but the Save button + must be pressed for the changes to persist.

+

Cell properties

+
+ +
+

Similarly to table properties, the + button opens a popup which adjusts the styling of one or more cells (based + on the user's selection).

+

The following options can be adjusted:

+ +

The cell will immediately update to reflect the changes, but the Save button + must be pressed for the changes to persist.

+

Caption

+

Press the + button to insert a caption or a text description of the table, which is + going to be displayed above the table.

+

Tables with invisible borders

+

Tables can be set to have invisible borders in order to allow for basic + layouts (columns, grids) of text or images without + the distraction of their border:

+
    +
  1. First insert a table with the desired number of columns and rows.
  2. +
  3. Select the entire table.
  4. +
  5. In Table properties, set: +
      +
    1. Style to Single +
    2. +
    3. Color to transparent +
    4. +
    5. Width to 1px.
    6. +
    +
  6. +
  7. In Cell Properties, set the same as on the previous step.
  8. +
+

Markdown import/export

+

Simple tables are exported in GitHub-flavored Markdown format (e.g. a + series of | items). If the table is found to be more complex + (it contains HTML elements, has custom sizes or images), the table is converted + to a HTML one instead.

+

Generally formatting loss should be minimal when exported to Markdown + due to the fallback to HTML formatting.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables_image.png new file mode 100644 index 000000000..63a9efa85 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text/Tables_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text_image.png new file mode 100644 index 000000000..6e2befad8 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Text_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Web View.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Web View.html new file mode 100644 index 000000000..c8cb12d29 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types/Web View.html @@ -0,0 +1,26 @@ +

Configuration

+

A webview needs to know which URL to render, and it can be provided by + setting the webViewSrc label, + such as:

#webViewSrc="https://www.wikipedia.org"
+

Web view on the server vs. Electron

+

When accessing Trilium via a browser instead of the desktop application, + the web view will still try to render the content of the desired webpage. + However, since it's running in a browser there are quite a few limitations + as opposed to the desktop one.

+

More specifically, quite a few websites oppose being embedded in another + website (technically they have a non-permisive X-Frame-Options header). + This is not bypassable by Trilium so the page will simply fail to render.

+

You can diagnose this by right clicking the Trilium web page → Inspect + (element) and looking in the “Console” tab for errors such as:

+ +

There are a few websites that do render such as wikipedia.org.

+

Do note that we are also applying some sandboxing constraints on the server + side, so if you have any issues other than the unresolvable X-Frame-Options described + above, feel free to report them.

+

On the desktop side, a different technology is used which bypasses the + constraints of an iframe (webview).

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types_image.png new file mode 100644 index 000000000..d10e03765 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Note Types_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Quick Start.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Quick Start.html new file mode 100644 index 000000000..be555159e --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Quick Start.html @@ -0,0 +1,32 @@ +

Choose the setup

+

Local only desktop/laptop - Allows a single instance on + a desktop and will save the notes locally on that desktop.

+
    +
  1. Desktop installation +
  2. +
+

Server with web only access - Installs the application + on the server and allows access from any web browser on any device, including + mobile.

+
    +
  1. Server installation +
  2. +
  3. Mobile frontend (optional)
  4. +
  5. PikaPods managed hosting +
  6. +
+

Combination of server and desktop/laptop - Install the + application on both a server, for web access and data synchronisation, + and desktop instance(s). This allows all the data to be stored on the server + and either accessed from the web browser, or the desktop application. The + desktop application will sync and store the data locally so that it can + be used when offline.

+
    +
  1. Server installation +
  2. +
  3. Mobile frontend (optional)
  4. +
  5. Desktop installation +
  6. +
  7. Synchronization +
  8. +
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting.html new file mode 100644 index 000000000..9d8077cad --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting.html @@ -0,0 +1,48 @@ +

Trilium supports creating Code notes, + i.e. notes which allow you to store some programming code and highlight + it. Special case is JavaScript code notes which can also be executed inside + Trilium which can in conjunction with Script API provide + extra functionality.

+

Scripting

+

To go further I must explain basic architecture of Trilium - in its essence + it is a classic web application - it has these two main components:

+ +

So we have frontend and backend, each with their own set of responsibilities, + but their common feature is that they both run JavaScript code. Add to + this the fact, that we're able to create JavaScript [[code notes]] and + we're onto something.

+

Use cases

+ +

Action handler

+

Saving the note to the database is backend's responsibility, so we immediately + pass control to the backend and ask it to create a note. Once this is done, + we show the newly created note so that the user can set the task title + and maybe some attributes.

+

Script execution

+

So we have a script which will add the button to the toolbar. But how + can we execute it? One possibility is to click on "play" icon (marked by + red circle). The problem with this is that this UI change is time bound + by Trilium runtime so when we restart Trilium, button won't be there.

+

We need to execute it every time Trilium starts up, but we probably don't + want to have to manually click on play button on every start up.

+

The solution is marked by red circle at the bottom - this note has label #run=frontendStartup - + this is one of the "system" labels which Trilium understands. As you might + guess, this will cause all such labeled script notes to be executed once + Trilium frontend starts up.

+

(#run=frontendStartup does not work for Mobile frontend - + if you want to have scripts running there, give the script #run=mobileStartup label)

+

More showcases

+

You can see more scripting with explanation in Advanced Showcases.

+

Events

+

See Events.

+

Script API

+

See Script API.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html new file mode 100644 index 000000000..a3c74131e --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html @@ -0,0 +1,13 @@ +

It's possible to create custom widget in three possible locations where + you can display your custom content.

+

Positions are:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html new file mode 100644 index 000000000..273dbaae6 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html @@ -0,0 +1,91 @@ +

This guide will walk you through creating a basic widget inside Trilium. + By following these steps, you'll learn how to build a simple UI element + that interacts with the user.

+

Step 1: The Basic Widget Structure

+

To start, we'll create the most basic widget possible. Here's a simple + example:

class MyWidget extends api.BasicWidget {
+    get position() { return 1; }
+    get parentWidget() { return "left-pane"; }
+    
+    doRender() {
+        this.$widget = $("");
+        return this.$widget;
+    }
+}
+
+module.exports = new MyWidget();
+

To implement this widget:

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

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 has + the #widget attribute.

+

Step 2: Adding an UI Element

+

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

const template = ``;
+
+class MyWidget extends api.BasicWidget {
+    get position() {return 1;}
+    get parentWidget() {return "left-pane"}
+
+    doRender() {
+        this.$widget = $(template);
+        return this.$widget;
+    }
+}
+
+module.exports = new MyWidget();
+

After making this change, reload Trilium. You should now see a button + in the top-left corner of the left pane.

+

Step 3: Styling the Widget

+

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 = ``;
+

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

class MyWidget extends api.BasicWidget {
+    get position() { return 1; }
+    get parentWidget() { return "left-pane"; }
+    
+    doRender() {
+        this.$widget = $(template);
+        this.cssBlock(`#my-widget {
+            position: absolute;
+            bottom: 40px;
+            left: 60px;
+            z-index: 1;
+        }`);
+        return this.$widget;
+    }
+}
+
+module.exports = new MyWidget();
+

After reloading Trilium, the button should now appear at the bottom left + of the left pane, alongside other action buttons.

+

Step 4: Adding User Interaction

+

Let’s make the button interactive by showing a message when it’s clicked. + We'll use the api.showMessage method from the Script API.

class MyWidget extends api.BasicWidget {
+    get position() { return 1; }
+    get parentWidget() { return "left-pane"; }
+    
+    doRender() {
+        this.$widget = $(template);
+        this.cssBlock(`#my-widget {
+            position: absolute;
+            bottom: 40px;
+            left: 60px;
+            z-index: 1;
+        }`);
+        this.$widget.find("button").on("click", () => api.showMessage("Hello World!"));
+        return this.$widget;
+    }
+}
+
+module.exports = new MyWidget();
+

Reload the application one last time. When you click the button, a "Hello + World!" message should appear, confirming that your widget is fully functional.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html new file mode 100644 index 000000000..c627056c8 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html @@ -0,0 +1,88 @@ + +

Create a Code note + of type JS frontend and give it a #widget label.

/*
+ * This defines a custom widget which displays number of words and characters in a current text note.
+ * To be activated for a given note, add label 'wordCount' to the note, you can also make it inheritable and thus activate it for the whole subtree.
+ * 
+ * See it in action in "Books" and its subtree.
+ */
+const TPL = `<div style="padding: 10px; border-top: 1px solid var(--main-border-color); contain: none;">
+    <strong>Word count: </strong>
+    <span class="word-count"></span>
+
+    &nbsp;
+
+    <strong>Character count: </strong>
+    <span class="character-count"></span>
+</div`;
+
+class WordCountWidget extends api.NoteContextAwareWidget {
+    get position() { return 100; } // higher value means position towards the bottom/right
+    
+    get parentWidget() { return 'center-pane'; }
+    
+    doRender() {
+        this.$widget = $(TPL);
+        this.$wordCount = this.$widget.find('.word-count');
+        this.$characterCount = this.$widget.find('.character-count');
+        return this.$widget;
+    }
+    
+    async refreshWithNote(note) {
+        if (note.type !== 'text' || !note.hasLabel('wordCount')) { 
+            // show widget only on text notes and when marked with 'wordCount' label
+            this.toggleInt(false); // hide
+            
+            return;
+        }
+        
+        this.toggleInt(true); // display
+        
+        const {content} = await note.getNoteComplement();
+        
+        const text = $(content).text(); // get plain text only
+        
+        const counts = this.getCounts(text);
+
+        this.$wordCount.text(counts.words);
+        this.$characterCount.text(counts.characters);
+    }
+    
+    getCounts(text) {
+        const chunks = text
+            .split(/[\s-+:,/\\]+/)
+            .filter(chunk => chunk !== '');
+        
+        let words;
+        
+        if (chunks.length === 1 && chunks[0] === '') {
+            words = 0;
+        }
+        else {
+            words = chunks.length;
+        }
+        
+        const characters = chunks.join('').length;
+        
+        return {words, characters};
+    }
+    
+    async entitiesReloadedEvent({loadResults}) {
+        if (loadResults.isNoteContentReloaded(this.noteId)) {
+            this.refresh();
+        }
+    }
+}
+
+module.exports = new WordCountWidget();
+

After you make changes it is necessary to restart Trilium so + that the layout can be rebuilt.

+

At the bottom of the note you can see the resulting widget:

+
+ +
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget_image.png new file mode 100644 index 000000000..2f1e5e5fd Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html new file mode 100644 index 000000000..f8b02d626 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Events.html @@ -0,0 +1,130 @@ +

Script notes can be triggered by + events. Note that these are backend events and thus relation need to point + to the "JS backend" code note.

+

Global events

+

Global events are attached to the script note via label. Simply create + e.g. "run" label with some of these values and script note will be executed + once the event occurs.

+
+ + + + + + + + + + + + + + + + + + + + + +
LabelDescription
run + +

Defines on which events script should run. Possible values are:

+
    +
  • frontendStartup - when Trilium frontend starts up (or is refreshed), + but not on mobile.
  • +
  • mobileStartup - when Trilium frontend starts up (or is refreshed), + on mobile.
  • +
  • backendStartup - when Trilium backend starts up
  • +
  • hourly - run once an hour. You can use additional label runAtHour to + specify at which hour, on the back-end.
  • +
  • daily - run once a day, on the back-end
  • +
+
runOnInstance + Specifies that the script should only run on a particular Trilium instance.
runAtHour + On which hour should this run. Should be used together with #run=hourly. + Can be defined multiple times for more runs during the day.
+
+ +

Entity events

+

Other events are bound to some entity, these are defined as relations - + meaning that script is triggered only if note has this script attached + to it through relations (or it can inherit it).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RelationDescription
runOnNoteCreation + executes when note is created on backend. Use this relation if you want + to run the script for all notes created under a specific subtree. In that + case, create it on the subtree root note and make it inheritable. A new + note created within the subtree (any depth) will trigger the script.
runOnChildNoteCreation + executes when new note is created under the note where this relation is + defined
runOnNoteTitleChange + executes when note title is changed (includes note creation as well)
runOnNoteContentChange + executes when note content is changed (includes note creation as well).
runOnNoteChange + executes when note is changed (includes note creation as well). Does not + include content changes
runOnNoteDeletion + executes when note is being deleted
runOnBranchCreation + executes when a branch is created. Branch is a link between parent note + and child note and is created e.g. when cloning or moving note.
runOnBranchChange + executes when a branch is updated. (since v0.62)
runOnBranchDeletion + executes when a branch is deleted. Branch is a link between parent note + and child note and is deleted e.g. when moving note (old branch/link is + deleted).
runOnAttributeCreation + executes when new attribute is created for the note which defines this + relation
runOnAttributeChange + executes when the attribute is changed of a note which defines this relation. + This is triggered also when the attribute is deleted
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html new file mode 100644 index 000000000..c6911fb88 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Downloading responses from Goo.html @@ -0,0 +1,37 @@ +

This tutorial showcases a basic integration with Google Forms, where we + are able to download the responses of a form using the “Link to Sheets" + functionality.

+

Note that the link will be publicly accessible to everyone (however the + link is in a hard-to-guess format such as https://docs.google.com/spreadsheets/d/e/2PACX-1vTA8NU2_eZFhc8TFadCZPreBfvP7un8IHd6J0SchrLLw3ueGmntNZjwRmsH2ZRcp1pJYDAzMz1FmFaj/pub?output=csv). + Make sure you are not accidentally publishing sensitive information.

+

Obtaining the CSV link

+
    +
  1. Open the Google Forms in a browser.
  2. +
  3. Select the “Responses” tab and click on “Link to Sheets”.
  4. +
  5. Select “Create a new spreadsheet” and press “Create”.
  6. +
  7. In Google Sheets, select File → Share → Publish to web.
  8. +
  9. In the “Publish to the web” screen, make sure the “Link” tab is selected + and instead of “Web page”, select “Comma-separated values (.csv)”.
  10. +
  11. Copy the given link which will be used for the upcoming script.
  12. +
+

Creating the script

+

Create a “JS Frontend” script:

const CSV_URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTiwooLV2whjCSVa49dJ99p_G3_qhqHHRqttMjYCJVfLXVdTgUSNJu5K0rpqmaHYF2k7Vofi3o7gW82/pub?output=csv";
+
+async function fetchData() {
+    try {
+        const response = await fetch(CSV_URL);
+        return await response.text();
+    } catch (e) {
+        api.showError(e.message);
+    }
+}
+
+const data = await fetchData();
+console.log(data);
+// Do something with the data.
+

Note that the data will be received as a string and there is no library + to do the CSV parsing for us. To do a very simple parsing of CSV:

const content = data
+	.split("\n")
+	.slice(1)
+	.map((row) => row.split(","));
+

This will return the data as an array of arrays.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html new file mode 100644 index 000000000..aae9e6f6f --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html @@ -0,0 +1,126 @@ +

In this example we are going to extend the functionality of Task Manager showcase (which comes + by default with Trilium) by adding a button in the Launch Bar  ( + ) to create a new task automatically and open it.

+

Creating the note

+
    +
  1. First, create a new Code note + type with the JS frontend language.
  2. +
  3. Define the #run=frontendStartup label in Attributes.
  4. +
+

Content of the script

+

Copy-paste the following script:

api.addButtonToToolbar({
+	title: "New task",
+    icon: "task",
+    shortcut: "alt+n",
+    action: async () => {
+    	const taskNoteId = await api.runOnBackend(() => {
+        	const todoRootNote = api.getNoteWithLabel("taskTodoRoot");
+            const resp = api.createTextNote(todoRootNote.noteId, "New task", "")           
+            return resp.note.noteId;
+        });
+        
+        await api.waitUntilSynced();
+        await api.activateNewNote(taskNoteId);
+    }
+});
+

Testing the functionality

+

Since we set the script to be run on start-up, all we need to do is to + refresh the application.

+

Understanding how the script works

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
api.addButtonToToolbar({
+	title: "New task",
+    icon: "task",
+    shortcut: "alt+n",
+    action: async () => {
+    	// [...]
+    }
+});
+
+

This uses the Front-end API to create + a icon in the Launch Bar, + by specifying:

+
    +
  • A title
  • +
  • A corresponding boxicons icon (without the bx- prefix).
  • +
  • Optionally, a keyboard shortcut to assign to it.
  • +
  • The action, which will be executed when the button is pressed.
  • +
+
const taskNoteId = await api.runOnBackend(() => {
+    // Shown below.           
+    return resp.note.noteId;
+});
+
+
    +
  • This portion of code is actually executed on the server (backend) and + not on the client (i.e. browser). +
      +
    • The reason is that the creating notes is the responsibility of the server.
    • +
    +
  • +
  • Here we can also see that it is possible to return results from the server + execution and read them in the client (taskNoteId).
  • +
+
const todoRootNote = api.getNoteWithLabel("taskTodoRoot");
+
+
    +
  • Here we identify a note with the label #taskTodoRoot. + This is how the Task Manager showcase + knows where to place all the different tasks.
  • +
  • Normally this might return a null value if no such note could + be identified, but error handling is outside the scope of this example. 
  • +
+
const resp = api.createTextNote(todoRootNote.noteId, "New task", "")
+
+
    +
  • We create a new child note within the to-do root note (first argument) + with the title “New task" (second argument) and no content by default (third + argument).
  • +
+
await api.waitUntilSynced();
+
+
    +
  • Back on the client, since we created a new note on the server, we now + need to wait for the change to be reflected in the client.
  • +
+
await api.activateNewNote(taskNoteId);
+
+
    +
  • Since we know the ID of the newly + created note, all we have to do now is to show this note to the user.
  • +
+
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button_i.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button_i.png new file mode 100644 index 000000000..cff2c36af Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button_i.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes .png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes .png new file mode 100644 index 000000000..a26050356 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes .png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html new file mode 100644 index 000000000..c76d5d93a --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Examples/Using promoted attributes to c.html @@ -0,0 +1,40 @@ +

A good use case of promoted attributes is to easily define the various + parameters a script might need, for example an input and output note if + it's processing data, or a checkbox to define a particular change in behavior + for the script.

+

+ +

+

Using check boxes to toggle flags

+

Instead of asking the user to modify a boolean value in the script, it's + much more intuitive to use a checkbox for it as a promoted attribute.

+

To do so, first define the promoted attribute:

#label:groupByExtension="promoted,alias=Group by extension,single,boolean"
+

Then use it:

const byExtension = api.currentNote.getLabelValue("groupByExtension") === "true";
+if (byExtension) {
+	// Do something.
+}
+

This will work equally well in both front-end and back-end scripts.

+

Using relations to select notes

+

One common use case for a script is to read data from another note and + perhaps output its result in another note. To do so we need to define the + following promoted attributes:

#relation:input="promoted,alias=Input,single" #relation:output="promoted,alias=Output,single"
+

Once we have this, we can add some basic error handling to ensure that + the fields are completed by the user:

const inputNoteId = api.currentNote.getRelationValue("input");
+if (!inputNoteId) {
+	api.showError("Missing input.");
+    return;
+}
+
+const outputNoteId = api.currentNote.getRelationValue("output");
+if (!outputNoteId) {
+    api.showError("Missing output.");
+    return;
+}
+

Note that here we are using api.showError which is only available + for frontend notes. If you are writing a backend note, simply remove api.showError but + the user will no feedback on why the script did not execute properly.

+

Afterwards we can simply read the note and do something with it:

const note = api.getNote(inputNoteId);
+if (!note) {
+	return;
+}
+const content = note.getContent().toString("utf-8");
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html new file mode 100644 index 000000000..1113d7587 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html @@ -0,0 +1,83 @@ +

Frontend API

+

The frontend api supports two styles, regular scripts that are run with + the current app and note context, and widgets that export an object to + Trilium to be used in the UI. In both cases, the frontend api of Trilium + is available to scripts running in the frontend context as global variable api. + The members and methods of the api can be seen on the Script API page.

+

Scripts

+

Scripts don't have any special requirements. They can be run at will using + the execute button in the UI or they can be configured to run at certain + times using Attributes on the note + containing the script.

+

Global Events

+

This attribute is called #run and it can have any of the following + values:

+ +

Entity Events

+

These events are triggered by certain relations to + other notes. Meaning that the script is triggered only if the note has + this script attached to it through relations (or it can inherit it).

+ +

Widgets

+

Conversely to scripts, widgets do have some specific requirements in order + to work. A widget must:

+ +

parentWidget

+ +

Tutorial

+

For more information on building widgets, take a look at Widget Basics.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API.html new file mode 100644 index 000000000..25b181b48 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API.html @@ -0,0 +1,19 @@ +

For script code notes, Trilium offers + an API that gives them access to various features of the application.

+

There are two APIs:

+ +

In both cases, the API resides in a global variable, api, + that can be used anywhere in the script.

+

For example, to display a message to the user the following front-end + script can be used:

api.showMessage("Hello world.");
+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.dat b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.dat new file mode 100644 index 000000000..e69de29bb diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.dat b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.dat new file mode 100644 index 000000000..e69de29bb diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/1_Custom app-wide CSS_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/1_Custom app-wide CSS_image.png new file mode 100644 index 000000000..97b8fc11d Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/1_Custom app-wide CSS_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/2_Custom app-wide CSS_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/2_Custom app-wide CSS_image.png new file mode 100644 index 000000000..582152fe7 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/2_Custom app-wide CSS_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html new file mode 100644 index 000000000..f54e2f9e9 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html @@ -0,0 +1,66 @@ +

Step 1. Find a place to place the themes

+

Organization is an important aspect of managing a knowledge base. When + developing a new theme or importing an existing one it's a good idea to + keep them into one place.

+

As such, the first step is to create a new note to gather all the themes.

+

+ +

+

Step 2. Create the theme

+ + + + + + + + + + + + + + + + + + + + + +
+ + Themes are code notes with a special attribute. Start by creating a new + code note.
+ + Then change the note type to a CSS code.
+ + In the Owned Attributes section define the #appTheme attribute + to point to any desired name. This is the name that will show up in the + appearance section in settings.
+ +

Step 3. Define the theme's CSS

+

As a very simple example we will change the background color of the launcher + pane to a shade of blue.

+

To alter the different variables of the theme:

:root {
+	--launcher-pane-background-color: #0d6efd;
+}
+

Step 4. Activating the theme

+

Refresh the application (Ctrl+Shift+R is a good way to do so) and go to + settings. You should see the newly created theme:

+

+ +

+

Afterwards the application will refresh itself with the new theme:

+

+ +

+

Do note that the theme will be based off of the legacy theme. To override + that and base the theme on the new TriliumNext theme, see: Theme base (legacy vs. next) +

+

Step 5. Making changes

+

Simply go back to the note and change according to needs. To apply the + changes to the current window, press Ctrl+Shift+R to + refresh.

+

It's a good idea to keep two windows, one for editing and the other one + for previewing the changes.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_1_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_1_.png new file mode 100644 index 000000000..81a9d35c8 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_1_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_2_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_2_.png new file mode 100644 index 000000000..d35262149 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_2_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_3_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_3_.png new file mode 100644 index 000000000..743d51c8f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_3_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_4_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_4_.png new file mode 100644 index 000000000..4f9583c7b Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_4_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_5_.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_5_.png new file mode 100644 index 000000000..f2e63f1ec Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_5_.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_Cr.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_Cr.png new file mode 100644 index 000000000..94afbf424 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme_Cr.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html new file mode 100644 index 000000000..8e27cd82b --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS.html @@ -0,0 +1,53 @@ +

It is possible to provide a CSS file to be used regardless of the theme + set by the user.

+ + + + + + + + + + + + + + + + + + + + + +
+ + Start by creating a new note and changing the note type to CSS
+ + In the ribbon, press the “Owned Attributes” section and type #appCss.
+ + Type the desired CSS. +
+
Generally it's a good idea to append !important for the styles + that are being changed, in order to prevent other
+ +

Seeing the changes

+

Adding a new app CSS note or modifying an existing one does not + immediately apply changes. To see the changes, press Ctrl+Shift+R to refresh + the page first.

+

Example use-case: customizing the printing stylesheet

+

When printing a document or exporting as PDF, it is possible to adjust + the style by creating a CSS note that uses the @media selector.

+

For example, to change the font of the document from the one defined by + the theme or the user to a serif one:

@media print {
+
+	body {
+
+        --main-font-family: serif !important;
+
+        --detail-font-family: var(--main-font-family) !important;
+
+    }
+
+}
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS_image.png new file mode 100644 index 000000000..dc6dcbefe Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Custom app-wide CSS_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html new file mode 100644 index 000000000..bcd4ddad7 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme.html @@ -0,0 +1,20 @@ +

By default, any custom theme will be based on the legacy light theme. + To use the TriliumNext theme instead, add the #appThemeBase=next attribute + onto the existing theme. The appTheme attribute must also be + present.

+

+ +

+

The appThemeBase label can be set to one of the following values:

+ +

Overrides

+

Do note that the TriliumNext theme has a few more overrides than the legacy + theme, so you might need to suffix !important if the style changes + are not applied.

:root {
+	--launcher-pane-background-color: #0d6efd !important;
+}
\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme_i.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme_i.png new file mode 100644 index 000000000..e397c87dc Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Customize the Next theme_i.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html new file mode 100644 index 000000000..c9a4d0275 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Theme development/Reference.html @@ -0,0 +1,154 @@ +

Detecting mobile vs. desktop

+

The mobile layout is different than the one on the desktop. Use body.mobile and body.desktop to + differentiate between them.

body.mobile #root-widget {
+	/* Do something on mobile */
+}
+
+body.desktop #root-widget {
+	/* Do something on desktop */
+}
+

Do note that there is also a “tablet mode” in the mobile layout. For that + particular case media queries are required:

@media (max-width: 991px) {
+
+    #launcher-pane {
+
+        /* Do something on mobile layout */
+
+    }
+
+}
+
+
+
+@media (min-width: 992px) {
+
+    #launcher-pane {
+
+        /* Do something on mobile tablet + desktop layout */
+
+    }
+
+}
+

Detecting horizontal vs. vertical layout

+

The user can select between vertical layout (the classical one, where + the launcher bar is on the left) and a horizontal layout (where the launcher + bar is on the top and tabs are full-width).

+

Different styles can be applied by using classes at body level:

body.layout-vertical #left-pane {
+	/* Do something */
+}
+
+body.layout-horizontal #center-pane {
+	/* Do something else */	
+}
+

The two different layouts use different containers (but they are present + in the DOM regardless of the user's choice), for example #horizontal-main-container and #vertical-main-container can + be used to customize the background of the content section.

+

Detecting platform (Windows, macOS) or Electron

+

It is possible to add particular styles that only apply to a given platform + by using the classes in body:

+ + + + + + + + + + + + + +
WindowsmacOS
<br>body.platform-win32 {<br> background: red;<br>}<br> + <br>body.platform-darwin {<br> background: red;<br>}<br> +
+

It is also possible to only apply a style if running under Electron (desktop + application):

body.electron {
+	background: blue;
+}
+

Native title bar

+

It's possible to detect if the user has selected the native title bar + or the custom title bar by querying against body:

body.electron.native-titlebar {
+	/* Do something */
+}
+
+body.electron:not(.native-titlebar) {
+	/* Do something else */
+}
+

Native window buttons

+

When running under Electron with native title bar off, a feature was introduced + to use the platform-specific window buttons such as the semaphore on macOS.

+

See Native title bar buttons by eliandoran · Pull Request #702 · TriliumNext/Notes for + the original implementation of this feature, including screenshots.

+

On Windows

+

The colors of the native window button area can be adjusted using a RGB + hex color:

body {
+	--native-titlebar-foreground: #ffffff;
+	--native-titlebar-background: #ff0000;
+}
+

It is also possible to use transparency at the cost of reduced hover colors + using a RGBA hex color:

body {
+	--native-titlebar-background: #ff0000aa;
+}
+

Note that the value is read when the window is initialized and then it + is refreshed only when the user changes their light/dark mode preference.

+

On macOS

+

On macOS the semaphore window buttons are enabled by default when the + native title bar is disabled. The offset of the buttons can be adjusted + using:

body {
+    --native-titlebar-darwin-x-offset: 12;
+    --native-titlebar-darwin-y-offset: 14 !important;
+}
+

Background/transparency effects on Windows (Mica)

+

Windows 11 offers a special background/transparency effect called Mica, + which can be enabled by themes by setting the --background-material variable + at body level:

body.electron.platform-win32 {
+	--background-material: tabbed; 
+}
+

The value can be either tabbed (especially useful for the horizontal + layout) or mica (ideal for the vertical layout).

+

Do note that the Mica effect is applied at body level and the + theme needs to make the entire hierarchy (semi-)transparent in order for + it to be visible. Use the TrilumNext theme as an inspiration.

+

Note icons, tab workspace accent color

+

Theme capabilities are small adjustments done through CSS variables that + can affect the layout or the visual aspect of the application.

+

In the tab bar, to display the icons of notes instead of the icon of the + workspace:

:root {
+	--tab-note-icons: true;
+}
+

When a workspace is hoisted for a given tab, it is possible to get the + background color of that workspace, for example to apply a small strip + on the tab instead of the whole background color:

.note-tab .note-tab-wrapper {
+    --tab-background-color: initial !important;
+}
+
+.note-tab .note-tab-wrapper::after {
+    content: "";
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    height: 3px;
+    background-color: var(--workspace-tab-background-color);
+}
+

Custom fonts

+

Currently the only way to include a custom font is to use Custom resource providers. + Basically import a font into Trilium and assign it #customResourceProvider=fonts/myfont.ttf and + then import the font in CSS via /custom/fonts/myfont.ttf. Use ../../../custom/fonts/myfont.ttf if + you run your Trilium server on a different path than /.

+

Dark and light themes

+

A light theme needs to have the following CSS:

:root {
+	--theme-style: light;
+}
+

if the theme is dark, then --theme-style needs to be dark.

+

If the theme is auto (e.g. supports both light or dark based on prefers-color-scheme) + it must also declare (in addition to setting --theme-style to + either light or dark):

:root {
+
+    --theme-style-auto: true;
+
+}
+

This will affect the behavior of the Electron application by informing + the operating system of the color preference (e.g. background effects will + appear correct on Windows).

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html new file mode 100644 index 000000000..77d1aa2dc --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting.html @@ -0,0 +1,61 @@ +

As Trilium is currently in beta, encountering bugs is to be expected.

+

General Quick Fix

+

The first step in troubleshooting is often a restart.

+

If you experience an UI issue, the frontend may have entered an inconsistent + state. Reload the application by pressing Ctrl + R. + This will reload the frontend.

+

If the issue persists or appears to be a backend problem, restart the + entire application. For the desktop (Electron) build, simply close and + reopen the window. If you're using a Docker build, restart the container.

+

Broken Note Crashes Trilium

+

Certain problems, such as rendering a note with a faulty script, can cause + Trilium to crash. If Trilium attempts to reload the problematic note upon + restart, it will continue to crash.

+

To resolve this, use the TRILIUM_START_NOTE_ID environment + variable to reset the open tabs to a single specified note ID (e.g., root). + In Linux, you can set it as follows:

TRILIUM_START_NOTE_ID=root ./trilium
+

Broken Script Prevents Application Startup

+

If a custom script causes Triliumto crash, and it is set as a startup + script or in an active custom widget, + start Triliumin "safe mode" to prevent any custom scripts from executing:

TRILIUM_SAFE_MODE=true ./trilium
+

Depending on your Trilium distribution, you may have pre-made scripts + available: trilium-safe-mode.bat and trilium-safe-mode.sh.

+

Once Trilium starts, locate and fix or delete the problematic note.

+

Sync and Consistency Checks

+

Trilium periodically verifies the logical consistency of the database + (e.g., ensuring every note has a parent). If inconsistencies are detected, + you will be notified via the UI.

+

In such cases, file a bug report and attach an anonymized database if + necessary.

+

Restoring Backup

+

Trilium makes regular automatic backups. If issues become severe, you + can restore from a backup.

+

Forgotten Password

+

If you forget your password:

+ +

Access the database file in the + data directory. Open the document.db file with an SQLite + client (e.g., DB Browser) and execute + the following queries:

UPDATE options SET value = '77/twC5O00cuQgNC63VK32qOKKYwj21ev3jZDXoytVU=' WHERE name = 'passwordVerificationSalt';
+UPDATE options SET value = '710BMasZCAgibzIc07X4P9Q4TeBd4ONnqJOho+pWcBM=' WHERE name = 'passwordDerivedKeySalt';
+UPDATE options SET value = 'Eb8af1/T57b89lCRuS97tPEl4CwxsAWAU7YNJ77oY+s=' WHERE name = 'passwordVerificationHash';
+UPDATE options SET value = 'QpC8XoiYYeqHPtHKRtbNxfTHsk+pEBqVBODYp0FkPBa22tlBBKBMigdLu5GNX8Uu' WHERE name = 'encryptedDataKey';
+

After executing the changes, commit/write the changes. This sets the password to "password," allowing you to log in again. +

+

For pre-existing protected notes (now unrecoverable), consider deleting + them or exporting the unprotected notes. Then, delete document.db and + start fresh.

+

If you continue using the existing document file, change your password + (Options -> Change Password).

+

Reporting Bugs

+

Reporting bugs is highly valuable. Here are some tips:

+ \ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html new file mode 100644 index 000000000..1ae7334bf --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html @@ -0,0 +1,29 @@ +

+ +

+

In certain scenarios, understanding the structure of a database is crucial + for troubleshooting issues. However, sharing your actual database file + with personal notes is not advisable. To address this, Trilium offers a + feature to anonymize the database. This feature can be accessed via Menu + -> Options -> Advanced tab.

+

This feature creates a copy of your database with all sensitive data removed. + Specifically, it strips out note titles, contents, revisions, history, + and some non-system attributes while retaining the overall structure and + metadata, such as modification dates. After anonymization, the database + undergoes a vacuuming process to + ensure no sensitive data remnants remain in the file. The anonymized database + is saved in the anonymized directory within the data directory, + making it safe to share with bug reports.

+

This will create a copy of your document and remove all sensitive data + (currently note titles, contents, revisions, history and some of the options, + and non-system attributes) while leaving all structure and metadata (e.g. + date of last change). After this is done, the database is VACUUMed to + make sure there's no stale sensitive data in the document file. The resulting + file is stored in anonymized directory (placed in the data directory). + You can safely attach it to a bug report.

+

Command Line Anonymization

+

If your database is corrupted to + the point where Trilium cannot start, the anonymization process can still + be executed via the command line:

node src/anonymize.js
+

Run this command from the directory containing Trilium's source files, + typically found in the resources/app directory for desktop builds.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database_image.png new file mode 100644 index 000000000..fb640c0c9 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html new file mode 100644 index 000000000..362ec507b --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html @@ -0,0 +1,45 @@ +

It's important to provide all available error logs together with bug reports. + This page will show you how to do it.

+

Backend logs

+

Open data directory, go to log subdirectory + and find the latest log file, e.g. trilium-2022-12-14.log. + You can attach the whole file to the bug report (preferable) or open it + and copy-paste only the last lines / lines you believe are relevant.

+

If you have trouble finding it the log files, there's also an in-app option + in top-left menu button -> Advanced -> Show backend log.

+

Frontend logs

+

To provide frontend logs, we need to open the Developer Console. Often + the easiest way is to press Ctrl-Shift-I which + should work in most browsers (and desktop app). Make sure that the error + producing action happened right before you copy&paste the errors, the + console is cleared on app restart.

+

If that doesn't work, then:

+ +

+ +

+

Once you have Dev Tools open, click on "Console" tab:

+

+ +

+

Copy-paste (or screenshot) the logs. It's better to provide not just errors, + but the whole log, which might provide context while analyzing the bug.

+

Providing sensitive data

+

If you don't feel comfortable attaching the logs or anything sensitive + to the public GitHub issues, feel free to contact the devs in our Matrix + support channel.

+

Use this email to also provide anything which could assist in analysing + the bug - e.g. files/images/ZIPs being imported or anonymized database.

+

Exporting note subtree for reproduction

+

Often times, bugs manifest themselves in specific notes and having them + would greatly ease reproduction and fixing.

+

In such case, please export the relevant note subtree by right-clicking + it on the left tree, choosing Export - HTML as ZIP:

+

+ +

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_error-logs-expo.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_error-logs-expo.png new file mode 100644 index 000000000..65abe4999 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_error-logs-expo.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_error-logs-fire.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_error-logs-fire.png new file mode 100644 index 000000000..a6c45bb43 Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_error-logs-fire.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_image.png b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_image.png new file mode 100644 index 000000000..62a034e3f Binary files /dev/null and b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs_image.png differ diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html new file mode 100644 index 000000000..1eace412d --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Refreshing the application.html @@ -0,0 +1,3 @@ +

Some changes to the application will not take effect immediately and as + such it might require to manually reload or refresh the application.

+

To do so, simply press Ctrl+Shift+R.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html new file mode 100644 index 000000000..4af29831e --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Reporting issues.html @@ -0,0 +1,3 @@ +

Go to Issues · TriliumNext/Notes and + press “New issue”.

+

If you are reporting a bug, select “Bug Report” and fill in the details.

\ No newline at end of file diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html new file mode 100644 index 000000000..0799b33f1 --- /dev/null +++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html @@ -0,0 +1,13 @@ +

Synchronization can sometimes take a long amount of time in order to compute + the items that require update. When running behind a reverse proxy, the + request can time out.

+

The solution is to increase the timeout at proxy level.

+

Nginx

+

Add the following to the configuration file:

proxy_connect_timeout 300;
+proxy_send_timeout 300;
+proxy_read_timeout 300;
+send_timeout 300;
+

And restart the server.

+

See Nginx Proxy Setup for + more information about the Nginx setup.

+

If it still doesn't work, try increasing the timeout.

\ No newline at end of file diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 70b90a5af..f115bc124 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1395,6 +1395,13 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "DvdZhoQZY9Yd", + "isInheritable": false, + "position": 60 } ], "format": "markdown", @@ -1650,6 +1657,56 @@ "dataFileName": "Multiple selection_image.png" } ] + }, + { + "isClone": false, + "noteId": "DvdZhoQZY9Yd", + "notePath": [ + "pOsGYCXsbNQG", + "gh7bpGYxajRS", + "Vc8PjrjAGuOp", + "oPVyFC7WL2Lp", + "DvdZhoQZY9Yd" + ], + "title": "Keyboard shortcuts", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-keyboard", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "yTjUdsOi4CIE", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ZjLYv08Rp3qC", + "isInheritable": false, + "position": 40 + } + ], + "format": "markdown", + "dataFileName": "Keyboard shortcuts.md", + "attachments": [] } ] }, diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md index 24014253c..edd0470e0 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.md @@ -22,4 +22,8 @@ You can easily rearrange the note tree by dragging and dropping notes, as demons You can also move notes using the familiar cut and paste functions available in the context menu, or with the associated keyboard [shortcuts](../Keyboard%20Shortcuts.md): `CTRL-C` ( [copy](../Notes/Cloning%20Notes.md)), Ctrl + X (cut) and Ctrl + V (paste). -See Note Tree Menu for more information. \ No newline at end of file +See Note tree contextual menu for more information. + +## Keyboard shortcuts + +The note tree comes with multiple keyboard shortcuts to make editing faster, consult the dedicated Keyboard shortcuts section. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.md new file mode 100644 index 000000000..faec3ac7a --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Keyboard shortcuts.md @@ -0,0 +1,17 @@ +# Keyboard shortcuts +The Note Tree comes with multiple keyboard shortcuts to make editing faster: + +* Opening notes: + * Click to open the note in the current tab. + * Ctrl+Click or Middle click to open the note in a new tab. + * Ctrl+Right click to open the note in Quick edit. +* Navigation within the tree: + * Up and Down to navigate between notes. + * Left to collapse a note, or Right to expand it. +* Clipboard management: + * Ctrl+C to copy a note. + * Ctrl+X to cut a note. + * Ctrl+V to paste it somewhere. +* For Multiple selection: + * Alt+Clickto add a single note to the current selection. + * Shift+Clickto select a range of notes, starting from the current note (the highlighted one) to the one that is being clicked. \ No newline at end of file