From ac270aecb6069df715b5e85cd2a9b8124d890359 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Fri, 4 Apr 2025 09:15:36 +0200 Subject: [PATCH 01/69] deps: upgrade to express 5.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit our code is already compliant with v5, and is not affected by the breaking changes described here: https://expressjs.com/en/guide/migrating-5.html I ran their codemod command, and it did not find anything – so I also double-checked by manually checking for all of the described changed topics in the migration guide. with this change npm will still print a warning, due to `@triliumnext/express-partial-content@"1.0.1"`, which needs to be updated to v5 as well --- package-lock.json | 441 +++++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 187 insertions(+), 256 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bb7e57f6..7243a42ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "electron-window-state": "5.0.3", "escape-html": "1.0.3", "eslint-linter-browserify": "9.24.0", - "express": "4.21.2", + "express": "5.1.0", "express-openid-connect": "^2.17.1", "express-rate-limit": "7.5.0", "express-session": "1.18.1", @@ -6172,43 +6172,22 @@ } }, "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -6552,12 +6531,6 @@ "node": ">=10" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -6901,36 +6874,23 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node": ">=18" } }, "node_modules/body-parser/node_modules/http-errors": { @@ -6949,23 +6909,28 @@ "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/body-parser/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "node_modules/body-parser/node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } }, "node_modules/boolbase": { "version": "1.0.0", @@ -8120,9 +8085,9 @@ "license": "MIT" }, "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" @@ -9325,16 +9290,6 @@ "node": ">=6" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/detect-hover": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-hover/-/detect-hover-1.0.3.tgz", @@ -10995,45 +10950,41 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", "license": "MIT", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 18" }, "funding": { "type": "opencollective", @@ -11129,22 +11080,22 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "node_modules/express/node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6.6.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/express/node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 0.8" } }, "node_modules/express/node_modules/http-errors": { @@ -11163,11 +11114,28 @@ "node": ">= 0.8" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "node_modules/express/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } }, "node_modules/ext-list": { "version": "2.2.2", @@ -11490,38 +11458,22 @@ } }, "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" }, "engines": { "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -13245,6 +13197,12 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "license": "MIT" }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, "node_modules/is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -14618,10 +14576,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "license": "MIT", + "engines": { + "node": ">=18" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -14690,6 +14651,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -16440,10 +16402,13 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } }, "node_modules/path-type": { "version": "2.0.0", @@ -17161,12 +17126,12 @@ "license": "Apache-2.0" }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -17263,14 +17228,14 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", - "iconv-lite": "0.4.24", + "iconv-lite": "0.6.3", "unpipe": "1.0.0" }, "engines": { @@ -17293,18 +17258,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/raw-loader": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", @@ -18156,6 +18109,22 @@ "points-on-path": "^0.2.1" } }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/rrweb-cssom": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", @@ -18404,48 +18373,31 @@ "optional": true }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 18" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { + "node_modules/send/node_modules/fresh": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -18467,18 +18419,6 @@ "node": ">= 0.8" } }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -18547,18 +18487,18 @@ "license": "MIT" }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", "license": "MIT", "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 18" } }, "node_modules/session-file-store": { @@ -20720,15 +20660,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", diff --git a/package.json b/package.json index 8c0e67994..5f453cfea 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "electron-window-state": "5.0.3", "escape-html": "1.0.3", "eslint-linter-browserify": "9.24.0", - "express": "4.21.2", + "express": "5.1.0", "express-openid-connect": "^2.17.1", "express-rate-limit": "7.5.0", "express-session": "1.18.1", From ba02070b7c05dce3d0ef1577efc653bdfa1db46e Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Sun, 6 Apr 2025 16:59:34 +0200 Subject: [PATCH 02/69] deps: upgrade @triliumnext/express-partial-content to 1.1.0 now we have full express 5 compatibility --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7243a42ba..cda118609 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@braintree/sanitize-url": "7.1.1", "@electron/remote": "2.1.2", "@highlightjs/cdn-assets": "11.11.1", - "@triliumnext/express-partial-content": "1.0.1", + "@triliumnext/express-partial-content": "1.1.0", "archiver": "7.0.1", "async-mutex": "0.5.0", "autocomplete.js": "0.38.1", @@ -4511,12 +4511,12 @@ } }, "node_modules/@triliumnext/express-partial-content": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@triliumnext/express-partial-content/-/express-partial-content-1.0.1.tgz", - "integrity": "sha512-WQipyCd3AHnKRhkMGUjgvi75L8kRjCyvCituvtdkNt5GLUQeHRyMwEokYJ8uoBgPoJNPLPCjXV1Ig0WE37N7KA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@triliumnext/express-partial-content/-/express-partial-content-1.1.0.tgz", + "integrity": "sha512-VAV4P9JUDmkVRX/Au8qLBQEBU+TdpNi0orfRizfG31sQNphzznAjGBL3R8DY0xwwEReIjD0X6uxi23hjRD1fAg==", "license": "MIT", "peerDependencies": { - "express": "^4.16.4" + "express": "^4.16.4 || ^5.1.0" } }, "node_modules/@tweenjs/tween.js": { diff --git a/package.json b/package.json index 5f453cfea..5e8574df3 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@braintree/sanitize-url": "7.1.1", "@electron/remote": "2.1.2", "@highlightjs/cdn-assets": "11.11.1", - "@triliumnext/express-partial-content": "1.0.1", + "@triliumnext/express-partial-content": "1.1.0", "archiver": "7.0.1", "async-mutex": "0.5.0", "autocomplete.js": "0.38.1", From 9fb04b256da7016af324e910bd396f313ee916b6 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 6 Apr 2025 22:55:24 +0300 Subject: [PATCH 03/69] feat(docs): document supported syntax --- docs/User Guide/!!!meta.json | 79 +++++++++---------- .../Import & Export/Markdown.md | 13 ++- .../app/doc_notes/en/User Guide/!!!meta.json | 79 +++++++++---------- .../Import & Export/Markdown.html | 22 +++++- 4 files changed, 102 insertions(+), 91 deletions(-) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index fe08afb95..9cc7a0824 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1933,39 +1933,39 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bxs-dock-right", + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "BFvAtE74rbP6", + "value": "AxshuNRegLAv", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "AxshuNRegLAv", + "value": "luNhaphA37EO", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "luNhaphA37EO", + "value": "3seOhtN8uLIY", "isInheritable": false, "position": 40 }, { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", + "type": "label", + "name": "iconClass", + "value": "bx bxs-dock-right", "isInheritable": false, - "position": 50 + "position": 10 } ], "format": "markdown", @@ -3642,6 +3642,13 @@ "value": "bx bxl-markdown", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "NwBbFdNZ9h7O", + "isInheritable": false, + "position": 60 } ], "format": "markdown", @@ -4624,46 +4631,39 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-highlight", + "type": "relation", + "name": "internalLink", + "value": "RnaPdbciOfeq", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "BFvAtE74rbP6", + "value": "XpOYSgsLkTJy", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "RnaPdbciOfeq", + "value": "zEY4DaJG4YT5", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "_optionsTextNotes", + "value": "BFvAtE74rbP6", "isInheritable": false, "position": 40 }, { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", + "type": "label", + "name": "iconClass", + "value": "bx bx-highlight", "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 60 + "position": 10 } ], "format": "markdown", @@ -5100,37 +5100,30 @@ { "type": "relation", "name": "internalLink", - "value": "XpOYSgsLkTJy", + "value": "RnaPdbciOfeq", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "_optionsTextNotes", + "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 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "RnaPdbciOfeq", - "isInheritable": false, - "position": 50 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md index 50d10235d..de502a143 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.md @@ -1,5 +1,5 @@ # Markdown -Trilium Notes supports importing Markdown restricted to the [CommonMark specification](https://spec.commonmark.org/current/) (where [tables are not supported](https://github.com/TriliumNext/Notes/issues/2026)) +Trilium supports Markdown for both import and export, while trying to keep compatibility as high as possible. ## Import @@ -38,4 +38,13 @@ If you want to export just single note without its subtree, you can do it from N ### 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. \ No newline at end of file +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 + +* [GitHub-Flavored Markdown](https://github.github.com/gfm/) is the main syntax that Trilium is following. +* Images are supported. 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 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. +* Admonitions are supported using GitHub's format. +* Links are supported. “Reference links” (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 are supported using `$` and `$$` syntaxes. \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 356b29b42..880c537f6 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1933,39 +1933,39 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bxs-dock-right", + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "BFvAtE74rbP6", + "value": "AxshuNRegLAv", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "AxshuNRegLAv", + "value": "luNhaphA37EO", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "luNhaphA37EO", + "value": "3seOhtN8uLIY", "isInheritable": false, "position": 40 }, { - "type": "relation", - "name": "internalLink", - "value": "3seOhtN8uLIY", + "type": "label", + "name": "iconClass", + "value": "bx bxs-dock-right", "isInheritable": false, - "position": 50 + "position": 10 } ], "format": "html", @@ -3642,6 +3642,13 @@ "value": "bx bxl-markdown", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "NwBbFdNZ9h7O", + "isInheritable": false, + "position": 60 } ], "format": "html", @@ -4624,46 +4631,39 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-highlight", + "type": "relation", + "name": "internalLink", + "value": "RnaPdbciOfeq", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "BFvAtE74rbP6", + "value": "XpOYSgsLkTJy", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "RnaPdbciOfeq", + "value": "zEY4DaJG4YT5", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "_optionsTextNotes", + "value": "BFvAtE74rbP6", "isInheritable": false, "position": 40 }, { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", + "type": "label", + "name": "iconClass", + "value": "bx bx-highlight", "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "XpOYSgsLkTJy", - "isInheritable": false, - "position": 60 + "position": 10 } ], "format": "html", @@ -5100,37 +5100,30 @@ { "type": "relation", "name": "internalLink", - "value": "XpOYSgsLkTJy", + "value": "RnaPdbciOfeq", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "_optionsTextNotes", + "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 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "RnaPdbciOfeq", - "isInheritable": false, - "position": 50 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html index fa4063b4f..22d071fdf 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html @@ -13,9 +13,8 @@

Markdown

-

Trilium Notes supports importing Markdown restricted to the CommonMark specification (where - tables are not supported)

+

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 @@ -57,6 +56,23 @@

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

+
    +
  • GitHub-Flavored Markdown is + the main syntax that Trilium is following.
  • +
  • Images are supported. 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 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.
  • +
  • Admonitions are + supported using GitHub's format.
  • +
  • Links are supported. “Reference links” (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 are supported using $ and $$ syntaxes.
  • +
From b7566ad97940110eff188ec641269b5b577c191c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 6 Apr 2025 23:06:21 +0300 Subject: [PATCH 04/69] feat(docs): hiding note list --- docs/User Guide/!!!meta.json | 7 +++++++ .../Basic Concepts and Features/Notes/Note List.md | 4 ++++ src/public/app/doc_notes/en/User Guide/!!!meta.json | 7 +++++++ .../Basic Concepts and Features/Notes/Note List.html | 3 +++ 4 files changed, 21 insertions(+) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 9cc7a0824..664124542 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -2700,6 +2700,13 @@ "value": "bx bxs-grid", "isInheritable": false, "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 70 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md index d2fea88f5..3d6981247 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md @@ -1,6 +1,10 @@ # Note List When a note has one or more child notes, they will be listed at the end of the note for easy navigation. +## Hide the note list for a given note + +If the note list is not desireable for a particular note, simply apply the `hideChildrenOverview` [label](../../Advanced%20Usage/Attributes.md). + ## View types By default, the notes will be displayed in a grid, however there are also some other view types available. diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 880c537f6..8337c6710 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -2700,6 +2700,13 @@ "value": "bx bxs-grid", "isInheritable": false, "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 70 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html index c55f564d8..f0f4681f6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html @@ -15,6 +15,9 @@

When a note has one or more child notes, they will be listed at the end of the note for easy navigation.

+

Hide the note list for a given note

+

If the note list is not desireable for a particular note, simply apply + the hideChildrenOverview label.

View types

By default, the notes will be displayed in a grid, however there are also some other view types available.

From cdf9fa5b4a0ede8d3b61eaffdae1cddafafbf6eb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 09:47:15 +0300 Subject: [PATCH 05/69] feat(docs): attribute reference (wip) --- docs/User Guide/!!!meta.json | 210 ++++-- .../User Guide/Advanced Usage/Attributes.md | 35 - .../Attributes/Attribute Reference.md | 44 ++ .../app/doc_notes/en/User Guide/!!!meta.json | 210 ++++-- .../User Guide/Advanced Usage/Attributes.html | 64 +- .../Attributes/Attribute Reference.html | 624 ++++++++++++++++++ .../doc_notes/en/User Guide/navigation.html | 3 + 7 files changed, 994 insertions(+), 196 deletions(-) create mode 100644 docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 664124542..aaef302a1 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -6843,55 +6843,6 @@ "isInheritable": false, "position": 10 }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "p9kXRFAkwN4o", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "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": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 80 - }, { "type": "relation", "name": "internalLink", @@ -7042,6 +6993,167 @@ "dataFileName": "Promoted Attributes_promot.png" } ] + }, + { + "isClone": false, + "noteId": "Ucmcs8SfrYdD", + "notePath": [ + "pOsGYCXsbNQG", + "tC7s2alapj8V", + "zEY4DaJG4YT5", + "Ucmcs8SfrYdD" + ], + "title": "Attribute Reference", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "p9kXRFAkwN4o", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "J5Ex1ZrMbyJ6", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "47ZrP6FNuoG8", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "l0tKav7yLHGF", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "vZWERwf8U3nx", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WFGzWeUK6arS", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "d3fAXQ2diepH", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MgibgPcfeuGz", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help_YKWqdJhzi2VY", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 210 + }, + { + "type": "relation", + "name": "internalLink", + "value": "HcABDtFCkbFN", + "isInheritable": false, + "position": 220 + } + ], + "format": "markdown", + "dataFileName": "Attribute Reference.md", + "attachments": [] } ] }, diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes.md b/docs/User Guide/User Guide/Advanced Usage/Attributes.md index b1db8bdd2..b93cd8f3b 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes.md @@ -20,41 +20,6 @@ Labels are also searchable, enhancing note retrieval. ### Common Labels for Advanced Configuration -* `disableVersioning`: Disables automatic versioning, ideal for large, unimportant notes like script libraries -* `versioningLimit`: Used to limit the number of revisions for a single note -* `calendarRoot`: Marks the note as the root for [day notes](Advanced%20Showcases/Day%20Notes.md). Only one note should carry this label -* `archived`: Hides notes from default search results and dialogs -* `excludeFromExport`: Excludes notes and their subtrees from export operations -* `run`: Specifies events to trigger scripts (e.g., `frontendStartup`, `hourly`) -* `runAtHour`: Defines specific hours for scripts to run, used with `#run=hourly` -* `disableInclusion`: Prevents a script from being included in parent script executions -* `sorted`: Automatically sorts child notes alphabetically by title -* `top`: Keeps the note at the top of its parent's list, useful with `sorted` -* `hidePromotedAttributes`: Hides certain attributes in the note's display -* `readOnly`: Sets the note to read-only mode, applicable to text and code notes -* `autoReadOnlyDisabled`: Disables automatic read-only mode for large notes -* `appCss`: Marks CSS notes used to modify Trilium’s appearance -* `appTheme`: Marks full CSS themes available in Trilium's options -* `cssClass`: Adds a CSS class to the note's representation in the tree -* `iconClass`: Adds a CSS class to the note's icon, useful for distinguishing notes visually. See Note Icons. -* `pageSize`: Specifies the number of items per page in note listings -* `customRequestHandler` **and** `customResourceProvider`: Refer to Custom Request Handler -* `widget`: Marks a note as a custom widget, added to Trilium's component tree -* `workspace` **and related attributes**: See Workspace for more details -* `searchHome`: Specifies the parent for new search notes -* `inbox`: Designates a default location for new notes created via the sidebar -* `sqlConsoleHome`: Default location for SQL console notes -* `bookmarked` **and** `bookmarkFolder`: See Bookmarks -* `share:[…]`: See Sharing -* `keyboardShortcut`: Assigns a keyboard shortcut to open the note -* `displayRelations` **and** `hideRelations`: Manages the display of note relations -* `titleTemplate`: See Default Note Title -* `template`: Makes the note available as a template -* `toc`: Controls the visibility of the table of contents -* `color`: Defines the color of the note in the tree and links -* `hideChildrenOverview`: Hides child notes in the parent note's editor -* `viewType`: Sets the view of child notes (grid or list) - ## Relations Relations define connections between notes, similar to links. diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md new file mode 100644 index 000000000..fe9b8dec7 --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md @@ -0,0 +1,44 @@ +# Attribute Reference +## Labels + +
LabelDescription
disableVersioningDisables automatic creation of Note Revisions. Useful for e.g. large, but unimportant notes - e.g. large JS libraries used for scripting.
calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
excludeFromExportNotes (with their sub-tree) won't be included when exporting.
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.
  • daily - run once a day
runOnInstanceDefine which trilium instance should run this on. Default to all instances.
runAtHourOn which hour should this run. Should be used together with #run=hourly. Can be defined multiple times for more runs during the day.
disableInclusionScripts 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
sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
topIf sorted is applied to the parent note, keeps given note on top in its parent.
hidePromotedAttributesHide Promoted Attributes on this note.
readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
autoReadOnlyDisabledtext/code notes can be set automatically into read mode when they are too large. You can disable this behavior on per-note basis by adding this label to the note
appCssmarks CSS notes which are loaded into the Trilium application and can thus be used to modify Trilium's looks.
appThememarks CSS notes which are full Trilium themes and are thus available in Trilium options.
appThemeBaseSet 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.
cssClassvalue of this label is then added as CSS class to the node representing given note in the tree. This can be useful for advanced theming. Can be used in template notes.
iconClassvalue 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.
pageSizenumber of items per page in note listing
customRequestHandlerSee Custom Request Handler.
customResourceProviderSee Custom Resource Providers.
widgetmarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
workspacemarks this note as a workspace which allows easy hoisting
workspaceIconClassdefines box icon CSS class which will be used in tab when hoisted to this note
workspaceTabBackgroundColorCSS color used in the note tab when hoisted to this note
workspaceCalendarRootDefines per-workspace calendar root
workspaceTemplateThis note will appear in the selection of available template when creating new note, but only when hoisted into a workspace containing this template
searchHomenew search notes will be created as children of this note
workspaceSearchHomenew search notes will be created as children of this note when hoisted to some ancestor of this workspace note
inboxdefault 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.
workspaceInboxdefault inbox location for new notes when hoisted to some ancestor of this workspace note
sqlConsoleHomedefault location of SQL Console notes
bookmarkFoldernote with this label will appear in bookmarks as folder (allowing access to its children)
shareHiddenFromTreethis note is hidden from left navigation tree, but still accessible with its URL
shareExternalLinknote will act as a link to an external website in the share tree
shareAliasdefine an alias using which the note will be available under https://your_trilium_host/share/[your_alias]
shareOmitDefaultCssdefault share page CSS will be omitted. Use when you make extensive styling changes.
shareRootmarks note which is served on /share root.
shareDescriptiondefine text to be added to the HTML meta tag for description
shareRawnote will be served in its raw format, without HTML wrapper
shareDisallowRobotIndexingwill forbid robot indexing of this note by setting the X-Robots-Tag: noindex HTTP header.
shareCredentialsrequire 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.
shareIndexnote with this label will list all roots of shared notes
displayRelationscomma delimited names of relations which should be displayed. All other ones will be hidden.
hideRelationscomma delimited names of relations which should be hidden. All other ones will be displayed.
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')}
  • ${parentNote.title} to mirror the parent's template.
templateThis note will appear in the selection of available template when creating new note
tocControls 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.
colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
executeButtonTitle of the button which will execute the current code note
executeDescriptionLonger description of the current code note displayed together with the execute button
excludeFromNoteMapNotes with this label will be hidden from the Note Map.
newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
hideHighlightWidgetHide Highlight List widget
printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
+ +## Relations + +
LabelDescription
runOnNoteCreationexecutes 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.
runOnChildNoteCreationexecutes when new note is created under the note where this relation is defined
runOnNoteTitleChangeexecutes when note title is changed (includes note creation as well)
runOnNoteContentChangeexecutes when note content is changed (includes note creation as well).
runOnNoteChangeexecutes when note is changed (includes note creation as well). Does not include content changes
runOnNoteDeletionexecutes when note is being deleted
runOnBranchCreationexecutes 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.
runOnBranchChangeexecutes when a branch is updated.
runOnBranchDeletionexecutes 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).
runOnAttributeCreationexecutes when new attribute is created for the note which defines this relation
runOnAttributeChangeexecutes when the attribute is changed of a note which defines this relation. This is triggered also when the attribute is deleted
templatenote'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.
inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
renderNotenotes 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_relationtarget of this relation will be executed and rendered as a widget in the sidebar
shareCssCSS 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.
shareJsJavaScript 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.
shareTemplateEmbedded 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.
shareFaviconFavicon 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.
+ +* `disableVersioning`: Disables automatic versioning, ideal for large, unimportant notes like script libraries +* `versioningLimit`: Used to limit the number of revisions for a single note +* `calendarRoot`: Marks the note as the root for Day Notes. Only one note should carry this label. +* `excludeFromExport`: Excludes notes and their subtrees from export operations +* `run`: Specifies events to trigger scripts (e.g., `frontendStartup`, `hourly`) +* `runAtHour`: Defines specific hours for scripts to run, used with `#run=hourly` +* `disableInclusion`: Prevents a script from being included in parent script executions +* `sorted`: Automatically sorts child notes alphabetically by title +* `top`: Keeps the note at the top of its parent's list, useful with `sorted` +* `hidePromotedAttributes`: Hides certain attributes in the note's display +* `readOnly`: Sets the note to read-only mode, applicable to text and code notes +* `autoReadOnlyDisabled`: Disables automatic read-only mode for large notes +* `appCss`: Marks CSS notes used to modify Trilium’s appearance +* `appTheme`: Marks full CSS themes available in Trilium's options +* `cssClass`: Adds a CSS class to the note's representation in the tree +* `iconClass`: Adds a CSS class to the note's icon, useful for distinguishing notes visually. See Note Icons. +* `pageSize`: Specifies the number of items per page in note listings +* `customRequestHandler` **and** `customResourceProvider`: Refer to Custom Request Handler +* `widget`: Marks a note as a custom widget, added to Trilium's component tree +* `workspace` **and related attributes**: See Workspace for more details +* `searchHome`: Specifies the parent for new search notes +* `inbox`: Designates a default location for new notes created via the sidebar +* `sqlConsoleHome`: Default location for SQL console notes +* `bookmarked` **and** `bookmarkFolder`: See Bookmarks +* `share:[…]`: See Sharing +* `keyboardShortcut`: Assigns a keyboard shortcut to open the note +* `displayRelations` **and** `hideRelations`: Manages the display of note relations +* `titleTemplate`: See Default Note Title +* `template`: Makes the note available as a template +* `toc`: Controls the visibility of the table of contents +* `color`: Defines the color of the note in the tree and links +* `hideChildrenOverview`: Hides child notes in the parent note's editor +* `viewType`: Sets the view of child notes (grid or list) + +## Relations \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 8337c6710..f93682260 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -6843,55 +6843,6 @@ "isInheritable": false, "position": 10 }, - { - "type": "relation", - "name": "internalLink", - "value": "l0tKav7yLHGF", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "p9kXRFAkwN4o", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "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": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 80 - }, { "type": "relation", "name": "internalLink", @@ -7042,6 +6993,167 @@ "dataFileName": "Promoted Attributes_promot.png" } ] + }, + { + "isClone": false, + "noteId": "Ucmcs8SfrYdD", + "notePath": [ + "pOsGYCXsbNQG", + "tC7s2alapj8V", + "zEY4DaJG4YT5", + "Ucmcs8SfrYdD" + ], + "title": "Attribute Reference", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "p9kXRFAkwN4o", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "J5Ex1ZrMbyJ6", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "47ZrP6FNuoG8", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "l0tKav7yLHGF", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "vZWERwf8U3nx", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WFGzWeUK6arS", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "d3fAXQ2diepH", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MgibgPcfeuGz", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help_YKWqdJhzi2VY", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 210 + }, + { + "type": "relation", + "name": "internalLink", + "value": "HcABDtFCkbFN", + "isInheritable": false, + "position": 220 + } + ], + "format": "html", + "dataFileName": "Attribute Reference.html", + "attachments": [] } ] }, diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html index 64aa70ee8..77e8d336b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html @@ -38,69 +38,7 @@

Labels are also searchable, enhancing note retrieval.

Common Labels for Advanced Configuration

    -
  • disableVersioning: Disables automatic versioning, ideal for - large, unimportant notes like script libraries
  • -
  • versioningLimit: Used to limit the number of revisions for - a single note
  • -
  • calendarRoot: Marks the note as the root for day notes. - Only one note should carry this label
  • -
  • archived: Hides notes from default search results and dialogs
  • -
  • excludeFromExport: Excludes notes and their subtrees from - export operations
  • -
  • run: Specifies events to trigger scripts (e.g., frontendStartup, hourly)
  • -
  • runAtHour: Defines specific hours for scripts to run, used - with #run=hourly -
  • -
  • disableInclusion: Prevents a script from being included in - parent script executions
  • -
  • sorted: Automatically sorts child notes alphabetically by - title
  • -
  • top: Keeps the note at the top of its parent's list, useful - with sorted -
  • -
  • hidePromotedAttributes: Hides certain attributes in the note's - display
  • -
  • readOnly: Sets the note to read-only mode, applicable to - text and code notes
  • -
  • autoReadOnlyDisabled: Disables automatic read-only mode for - large notes
  • -
  • appCss: Marks CSS notes used to modify Trilium’s appearance
  • -
  • appTheme: Marks full CSS themes available in Trilium's options
  • -
  • cssClass: Adds a CSS class to the note's representation in - the tree
  • -
  • iconClass: Adds a CSS class to the note's icon, useful for - distinguishing notes visually. See Note Icons.
  • -
  • pageSize: Specifies the number of items per page in note - listings
  • -
  • customRequestHandler and customResourceProvider: - Refer to Custom Request Handler -
  • -
  • widget: Marks a note as a custom widget, added to Trilium's - component tree
  • -
  • workspace and related attributes: See  - Workspace for more details
  • -
  • searchHome: Specifies the parent for new search notes
  • -
  • inbox: Designates a default location for new notes created - via the sidebar
  • -
  • sqlConsoleHome: Default location for SQL console notes
  • -
  • bookmarked and bookmarkFolder: - See Bookmarks -
  • -
  • share:[…]: See Sharing -
  • -
  • keyboardShortcut: Assigns a keyboard shortcut to open the - note
  • -
  • displayRelations and hideRelations: - Manages the display of note relations
  • -
  • titleTemplate: See Default Note Title -
  • -
  • template: Makes the note available as a template
  • -
  • toc: Controls the visibility of the table of contents
  • -
  • color: Defines the color of the note in the tree and links
  • -
  • hideChildrenOverview: Hides child notes in the parent note's - editor
  • -
  • viewType: Sets the view of child notes (grid or list)
  • +
  •  

Relations

Relations define connections between notes, similar to links.

diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html new file mode 100644 index 000000000..a821012af --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html @@ -0,0 +1,624 @@ + + + + + + + + Attribute Reference + + + +
+

Attribute Reference

+ +
+

Labels

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelDescription
disableVersioning + Disables automatic creation of Note Revisions. + Useful for e.g. large, but unimportant notes - e.g. large JS libraries + used for scripting.
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 + Notes (with their sub-tree) won't be included when exporting.
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.
  • +
  • daily - run once a day
  • +
+
runOnInstance + Define which trilium instance should run this on. Default to all instances.
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.
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.
readOnly + Marks a note to be always be read-only, + if it's a supported note (text, code, mermaid).
autoReadOnlyDisabled + text/code notes can be set automatically into read mode when they are + too large. You can disable this behavior on per-note basis by adding this + label to the note
appCss + marks CSS notes which are loaded into the Trilium application and can + thus be used to modify Trilium's looks.
appTheme + marks CSS notes which are full Trilium themes and are thus available in + Trilium options.
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 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 + number of items per page in note listing
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.
workspace + marks this note as a workspace which allows easy hoisting
workspaceIconClass + defines box icon CSS class which will be used in tab when hoisted to this + note
workspaceTabBackgroundColor + CSS color used in the note tab when hoisted to this note
workspaceCalendarRoot + Defines per-workspace calendar root
workspaceTemplate + This note will appear in the selection of available template when creating + new note, but only when hoisted into a workspace containing this template
searchHome + new search notes will be created as children of this note
workspaceSearchHome + new search notes will be created as children of this note when hoisted + to some ancestor of this workspace note
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.
workspaceInbox + default inbox location for new notes when hoisted to some ancestor of + this workspace note
sqlConsoleHome + default location of SQL Console notes
bookmarkFolder + note with this label will appear in bookmarks as folder (allowing access + to its children)
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
shareDisallowRobotIndexing + will forbid robot indexing of this note by setting the X-Robots-Tag: noindex HTTP + header.
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
displayRelations + comma delimited names of relations which should be displayed. All other + ones will be hidden.
hideRelations + comma delimited names of relations which should be hidden. All other ones + will be displayed.
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')} +
  • +
  • ${parentNote.title} to mirror the parent's template.
  • +
+
template + This note will appear in the selection of available template when creating + new note
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 + Hide Highlight List widget
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.
+
+

Relations

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelDescription
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.
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
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.
+
+

 

+
    +
  • disableVersioning: Disables automatic versioning, ideal for + large, unimportant notes like script libraries
  • +
  • versioningLimit: Used to limit the number of revisions for + a single note
  • +
  • calendarRoot: Marks the note as the root for Day Notes. Only one + note should carry this label.
  • +
  • excludeFromExport: Excludes notes and their subtrees from + export operations
  • +
  • run: Specifies events to trigger scripts (e.g., frontendStartup, hourly)
  • +
  • runAtHour: Defines specific hours for scripts to run, used + with #run=hourly +
  • +
  • disableInclusion: Prevents a script from being included in + parent script executions
  • +
  • sorted: Automatically sorts child notes alphabetically by + title
  • +
  • top: Keeps the note at the top of its parent's list, useful + with sorted +
  • +
  • hidePromotedAttributes: Hides certain attributes in the note's + display
  • +
  • readOnly: Sets the note to read-only mode, applicable to + text and code notes
  • +
  • autoReadOnlyDisabled: Disables automatic read-only mode for + large notes
  • +
  • appCss: Marks CSS notes used to modify Trilium’s appearance
  • +
  • appTheme: Marks full CSS themes available in Trilium's options
  • +
  • cssClass: Adds a CSS class to the note's representation in + the tree
  • +
  • iconClass: Adds a CSS class to the note's icon, useful for + distinguishing notes visually. See Note Icons.
  • +
  • pageSize: Specifies the number of items per page in note + listings
  • +
  • customRequestHandler and customResourceProvider: + Refer to Custom Request Handler +
  • +
  • widget: Marks a note as a custom widget, added to Trilium's + component tree
  • +
  • workspace and related attributes: See  + Workspace for more details
  • +
  • searchHome: Specifies the parent for new search notes
  • +
  • inbox: Designates a default location for new notes created + via the sidebar
  • +
  • sqlConsoleHome: Default location for SQL console notes
  • +
  • bookmarked and bookmarkFolder: + See Bookmarks +
  • +
  • share:[…]: See Sharing +
  • +
  • keyboardShortcut: Assigns a keyboard shortcut to open the + note
  • +
  • displayRelations and hideRelations: + Manages the display of note relations
  • +
  • titleTemplate: See Default Note Title +
  • +
  • template: Makes the note available as a template
  • +
  • toc: Controls the visibility of the table of contents
  • +
  • color: Defines the color of the note in the tree and links
  • +
  • hideChildrenOverview: Hides child notes in the parent note's + editor
  • +
  • viewType: Sets the view of child notes (grid or list)
  • +
+

Relations

+
+
+ + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/navigation.html b/src/public/app/doc_notes/en/User Guide/navigation.html index cd5b57d63..c24239bde 100644 --- a/src/public/app/doc_notes/en/User Guide/navigation.html +++ b/src/public/app/doc_notes/en/User Guide/navigation.html @@ -338,6 +338,9 @@
  • Promoted Attributes
  • +
  • Attribute Reference +
  • Templates From 72f0bc32df341259aaf4c2463f3e113f2592dc4e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 11:16:10 +0300 Subject: [PATCH 06/69] feat(docs): reorganize scripting notes and finalize attribute reference --- docs/User Guide/!!!meta.json | 972 +++++++++++------- .../Advanced Showcases/Task Manager.md | 2 +- .../Advanced Showcases/Weight Tracker.md | 2 +- .../User Guide/Advanced Usage/Attributes.md | 5 +- .../Attributes/Attribute Reference.md | 46 +- .../Trilium instance.md | 19 + .../Advanced Usage/Custom Request Handler.md | 2 +- .../Advanced Usage/Default Note Title.md | 18 +- .../User Guide/Advanced Usage/Sharing.md | 16 +- .../User Guide/Advanced Usage/Templates.md | 2 +- ...space_image.png => 1_Workspaces_image.png} | Bin .../Navigation/Note Hoisting.md | 2 +- .../Navigation/Workspace.md | 24 - .../Navigation/Workspaces.md | 16 + ...rkspace_image.png => Workspaces_image.png} | Bin .../Notes/Note List.md | 5 +- .../UI Elements/Launch Bar.md | 2 +- .../UI Elements/Ribbon.md | 4 +- .../User Guide/Note Types/Code/Events.md | 29 - .../User Guide/Note Types/Saved Search.md | 2 +- docs/User Guide/User Guide/Scripting.md | 6 +- .../Code => Scripting}/Custom Widgets.md | 0 .../{ => Custom Widgets}/Widget Basics.md | 6 +- .../Custom Widgets/Word count widget.md | 6 +- .../Word count widget_image.png | Bin .../User Guide/User Guide/Scripting/Events.md | 14 + .../User Guide/Scripting/Frontend Basics.md | 4 +- .../Code => Scripting}/Script API.md | 0 .../Scripting/Script API/Backend API.md | 0 .../Script API/Frontend API/FNote.md | 0 docs/User Guide/User Guide/Troubleshooting.md | 2 +- .../app/doc_notes/en/User Guide/!!!meta.json | 972 +++++++++++------- .../Advanced Showcases/Task Manager.html | 4 +- .../Advanced Showcases/Weight Tracker.html | 2 +- .../User Guide/Advanced Usage/Attributes.html | 13 +- .../Attributes/Attribute Reference.html | 371 ++----- .../Trilium instance.html | 37 + .../Custom Request Handler.html | 2 +- .../Advanced Usage/Default Note Title.html | 32 +- .../User Guide/Advanced Usage/Sharing.html | 100 +- .../User Guide/Advanced Usage/Templates.html | 2 +- ...space_image.png => 1_Workspaces_image.png} | Bin .../Navigation/Note Hoisting.html | 2 +- .../Navigation/Workspace.html | 62 -- .../Navigation/Workspaces.html | 96 ++ ...rkspace_image.png => Workspaces_image.png} | Bin .../Notes/Note List.html | 13 +- .../UI Elements/Launch Bar.html | 2 +- .../UI Elements/Ribbon.html | 3 + .../User Guide/Note Types/Code/Events.html | 66 -- .../User Guide/Note Types/Saved Search.html | 2 +- .../en/User Guide/User Guide/Scripting.html | 6 +- .../Code => Scripting}/Custom Widgets.html | 2 +- .../{ => Custom Widgets}/Widget Basics.html | 12 +- .../Custom Widgets/Word count widget.html | 8 +- .../Word count widget_image.png | Bin .../User Guide/Scripting/Events.html | 149 +++ .../User Guide/Scripting/Frontend Basics.html | 4 +- .../Code => Scripting}/Script API.html | 2 +- .../Scripting/Script API/Backend API.html | 19 + .../Script API/Frontend API/FNote.html | 19 + .../User Guide/Troubleshooting.html | 2 +- .../doc_notes/en/User Guide/navigation.html | 49 +- 63 files changed, 1878 insertions(+), 1381 deletions(-) create mode 100644 docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.md rename docs/User Guide/User Guide/Basic Concepts and Features/Navigation/{1_Workspace_image.png => 1_Workspaces_image.png} (100%) delete mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.md create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md rename docs/User Guide/User Guide/Basic Concepts and Features/Navigation/{Workspace_image.png => Workspaces_image.png} (100%) delete mode 100644 docs/User Guide/User Guide/Note Types/Code/Events.md rename docs/User Guide/User Guide/{Note Types/Code => Scripting}/Custom Widgets.md (100%) rename docs/User Guide/User Guide/Scripting/{ => Custom Widgets}/Widget Basics.md (91%) rename docs/User Guide/User Guide/{Note Types/Code => Scripting}/Custom Widgets/Word count widget.md (88%) rename docs/User Guide/User Guide/{Note Types/Code => Scripting}/Custom Widgets/Word count widget_image.png (100%) create mode 100644 docs/User Guide/User Guide/Scripting/Events.md rename docs/User Guide/User Guide/{Note Types/Code => Scripting}/Script API.md (100%) create mode 100644 docs/User Guide/User Guide/Scripting/Script API/Backend API.md create mode 100644 docs/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.md create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html rename src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/{1_Workspace_image.png => 1_Workspaces_image.png} (100%) delete mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html rename src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/{Workspace_image.png => Workspaces_image.png} (100%) delete mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Events.html rename src/public/app/doc_notes/en/User Guide/User Guide/{Note Types/Code => Scripting}/Custom Widgets.html (94%) rename src/public/app/doc_notes/en/User Guide/User Guide/Scripting/{ => Custom Widgets}/Widget Basics.html (86%) rename src/public/app/doc_notes/en/User Guide/User Guide/{Note Types/Code => Scripting}/Custom Widgets/Word count widget.html (91%) rename src/public/app/doc_notes/en/User Guide/User Guide/{Note Types/Code => Scripting}/Custom Widgets/Word count widget_image.png (100%) create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Events.html rename src/public/app/doc_notes/en/User Guide/User Guide/{Note Types/Code => Scripting}/Script API.html (94%) create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index aaef302a1..b4f83e5be 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1427,6 +1427,13 @@ "value": "bx bx-dots-horizontal", "isInheritable": false, "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_optionsAppearance", + "isInheritable": false, + "position": 220 } ], "format": "markdown", @@ -2655,58 +2662,58 @@ { "type": "relation", "name": "internalLink", - "value": "GTwFsgaA0lCt", + "value": "zEY4DaJG4YT5", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "BlN9DFI679QC", + "value": "GTwFsgaA0lCt", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "iPIMuisry3hd", + "value": "BlN9DFI679QC", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "6f9hih2hXXZk", + "value": "iPIMuisry3hd", "isInheritable": false, "position": 40 }, { "type": "relation", "name": "internalLink", - "value": "W8vYD3Q1zjCR", + "value": "6f9hih2hXXZk", "isInheritable": false, "position": 50 }, { "type": "relation", "name": "internalLink", - "value": "xWbu3jpNWapp", + "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 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 70 } ], "format": "markdown", @@ -3296,7 +3303,7 @@ "wArbEsdSae6g", "9sRHySam5fXb" ], - "title": "Workspace", + "title": "Workspaces", "notePosition": 90, "prefix": null, "isExpanded": false, @@ -3323,10 +3330,17 @@ "value": "bx bx-door-open", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "l0tKav7yLHGF", + "isInheritable": false, + "position": 40 } ], "format": "markdown", - "dataFileName": "Workspace.md", + "dataFileName": "Workspaces.md", "attachments": [ { "attachmentId": "V4TIsmtBh8P7", @@ -3334,7 +3348,7 @@ "role": "image", "mime": "image/jpg", "position": 10, - "dataFileName": "Workspace_image.png" + "dataFileName": "Workspaces_image.png" }, { "attachmentId": "vZSH2mOKzWBx", @@ -3342,7 +3356,7 @@ "role": "image", "mime": "image/jpg", "position": 10, - "dataFileName": "1_Workspace_image.png" + "dataFileName": "1_Workspaces_image.png" } ] }, @@ -3636,6 +3650,13 @@ "type": "text", "mime": "text/markdown", "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "NwBbFdNZ9h7O", + "isInheritable": false, + "position": 10 + }, { "type": "label", "name": "shareAlias", @@ -3649,13 +3670,6 @@ "value": "bx bxl-markdown", "isInheritable": false, "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NwBbFdNZ9h7O", - "isInheritable": false, - "position": 60 } ], "format": "markdown", @@ -5239,162 +5253,6 @@ "position": 10, "dataFileName": "1_Code_image.png" } - ], - "dirFileName": "Code", - "children": [ - { - "isClone": false, - "noteId": "GLks18SNjxmC", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "GLks18SNjxmC" - ], - "title": "Script API", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "script-api", - "isInheritable": false, - "position": 10 - } - ], - "format": "markdown", - "dataFileName": "Script API.md", - "attachments": [] - }, - { - "isClone": false, - "noteId": "GPERMystNGTB", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "GPERMystNGTB" - ], - "title": "Events", - "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": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "events", - "isInheritable": false, - "position": 30 - } - ], - "format": "markdown", - "dataFileName": "Events.md", - "attachments": [] - }, - { - "isClone": false, - "noteId": "MgibgPcfeuGz", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "MgibgPcfeuGz" - ], - "title": "Custom Widgets", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "custom-widget", - "isInheritable": false, - "position": 20 - } - ], - "format": "markdown", - "dataFileName": "Custom Widgets.md", - "attachments": [], - "dirFileName": "Custom Widgets", - "children": [ - { - "isClone": false, - "noteId": "YNxAqkI5Kg1M", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "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": "markdown", - "dataFileName": "Word count widget.md", - "attachments": [ - { - "attachmentId": "JhM9NWfebzPi", - "title": "image.png", - "role": "image", - "mime": "image/png", - "position": 10, - "dataFileName": "Word count widget_image.png" - } - ] - } - ] - } ] }, { @@ -6848,14 +6706,14 @@ "name": "internalLink", "value": "OFXdgB2nNk1F", "isInheritable": false, - "position": 90 + "position": 20 }, { "type": "relation", "name": "internalLink", "value": "bwZpz2ajCEwO", "isInheritable": false, - "position": 100 + "position": 30 }, { "type": "label", @@ -6870,6 +6728,13 @@ "value": "bx bx-list-check", "isInheritable": false, "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Ucmcs8SfrYdD", + "isInheritable": false, + "position": 120 } ], "format": "markdown", @@ -7010,145 +6875,215 @@ "type": "text", "mime": "text/html", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "p9kXRFAkwN4o", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 70 - }, { "type": "relation", "name": "internalLink", "value": "l0tKav7yLHGF", "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WFGzWeUK6arS", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MgibgPcfeuGz", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_help_YKWqdJhzi2VY", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 200 + "position": 10 }, { "type": "relation", "name": "internalLink", "value": "bwZpz2ajCEwO", "isInheritable": false, - "position": 210 + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "vZWERwf8U3nx", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WFGzWeUK6arS", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "J5Ex1ZrMbyJ6", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "d3fAXQ2diepH", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MgibgPcfeuGz", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 130 }, { "type": "relation", "name": "internalLink", "value": "HcABDtFCkbFN", "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pKK96zzmvBGf", + "isInheritable": false, "position": 220 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AlhDUqhENtH7", + "isInheritable": false, + "position": 230 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 240 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 250 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help_YKWqdJhzi2VY", + "isInheritable": false, + "position": 260 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iRwzGnHPzonm", + "isInheritable": false, + "position": 270 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BCkXAVs63Ttv", + "isInheritable": false, + "position": 280 + }, + { + "type": "relation", + "name": "internalLink", + "value": "47ZrP6FNuoG8", + "isInheritable": false, + "position": 290 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 300 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GPERMystNGTB", + "isInheritable": false, + "position": 310 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AxshuNRegLAv", + "isInheritable": false, + "position": 320 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 330 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-book-bookmark", + "isInheritable": false, + "position": 340 } ], "format": "markdown", @@ -7351,13 +7286,6 @@ "type": "text", "mime": "text/markdown", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 10 - }, { "type": "relation", "name": "internalLink", @@ -7365,13 +7293,6 @@ "isInheritable": false, "position": 20 }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 30 - }, { "type": "relation", "name": "internalLink", @@ -7392,6 +7313,27 @@ "value": "bx bx-share-alt", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "6f9hih2hXXZk", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WOcw2SLH6tbX", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Qjt68inQ2bRj", + "isInheritable": false, + "position": 70 } ], "format": "markdown", @@ -7991,7 +7933,7 @@ "47ZrP6FNuoG8" ], "title": "Default Note Title", - "notePosition": 130, + "notePosition": 140, "prefix": null, "isExpanded": false, "type": "text", @@ -8004,19 +7946,26 @@ "isInheritable": false, "position": 10 }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 20 - }, { "type": "label", "name": "shareAlias", "value": "default-note-title", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "habiZ3HU8Kw8", + "isInheritable": false, + "position": 50 } ], "format": "markdown", @@ -8032,7 +7981,7 @@ "wX4HbRucYSDD" ], "title": "Database", - "notePosition": 150, + "notePosition": 160, "prefix": null, "isExpanded": false, "type": "text", @@ -8283,7 +8232,7 @@ "Gzjqa934BdH4" ], "title": "Configuration (config.ini or environment variables)", - "notePosition": 160, + "notePosition": 170, "prefix": null, "isExpanded": false, "type": "text", @@ -8299,7 +8248,38 @@ ], "format": "markdown", "dataFileName": "Configuration (config.ini or e.md", - "attachments": [] + "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": "markdown", + "dataFileName": "Trilium instance.md", + "attachments": [] + } + ] }, { "isClone": false, @@ -8310,7 +8290,7 @@ "ivYnonVFBxbQ" ], "title": "Bulk actions", - "notePosition": 170, + "notePosition": 180, "prefix": null, "isExpanded": false, "type": "text", @@ -8337,7 +8317,7 @@ "4FahAwuGTAwC" ], "title": "Note source", - "notePosition": 180, + "notePosition": 190, "prefix": null, "isExpanded": false, "type": "text", @@ -8450,7 +8430,7 @@ "1YeN2MzFUluU" ], "title": "Technologies used", - "notePosition": 190, + "notePosition": 200, "prefix": null, "isExpanded": false, "type": "text", @@ -8599,7 +8579,7 @@ "m1lbrzyKDaRB" ], "title": "Note ID", - "notePosition": 200, + "notePosition": 210, "prefix": null, "isExpanded": false, "type": "text", @@ -8633,7 +8613,7 @@ "0vTSyvhPTAOz" ], "title": "Internal API", - "notePosition": 210, + "notePosition": 220, "prefix": null, "isExpanded": false, "type": "text", @@ -8805,54 +8785,6 @@ "dataFileName": "Frontend Basics.md", "attachments": [] }, - { - "isClone": false, - "noteId": "SynTBQiBsdYJ", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "SynTBQiBsdYJ" - ], - "title": "Widget Basics", - "notePosition": 30, - "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": "markdown", - "dataFileName": "Widget Basics.md", - "attachments": [] - }, { "isClone": false, "noteId": "es8OU2GuguFU", @@ -9008,6 +8940,284 @@ ] } ] + }, + { + "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": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CdNpE2pqjmI6", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "shareAlias", + "value": "events", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "c5xB8m4g2IY6", + "isInheritable": false, + "position": 30 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-rss", + "isInheritable": false, + "position": 20 + } + ], + "format": "markdown", + "dataFileName": "Events.md", + "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": "markdown", + "dataFileName": "Custom Widgets.md", + "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": "markdown", + "dataFileName": "Word count widget.md", + "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": "markdown", + "dataFileName": "Widget Basics.md", + "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": "label", + "name": "shareAlias", + "value": "script-api", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Script API.md", + "attachments": [], + "dirFileName": "Script API", + "children": [ + { + "isClone": false, + "noteId": "Q2z6av6JZVWm", + "notePath": [ + "pOsGYCXsbNQG", + "CdNpE2pqjmI6", + "GLks18SNjxmC", + "Q2z6av6JZVWm" + ], + "title": "Frontend API", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [], + "format": "markdown", + "attachments": [], + "dirFileName": "Frontend API", + "children": [ + { + "isClone": false, + "noteId": "habiZ3HU8Kw8", + "notePath": [ + "pOsGYCXsbNQG", + "CdNpE2pqjmI6", + "GLks18SNjxmC", + "Q2z6av6JZVWm", + "habiZ3HU8Kw8" + ], + "title": "FNote", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [], + "format": "markdown", + "dataFileName": "FNote.md", + "attachments": [] + } + ] + }, + { + "isClone": false, + "noteId": "MEtfsqa5VwNi", + "notePath": [ + "pOsGYCXsbNQG", + "CdNpE2pqjmI6", + "GLks18SNjxmC", + "MEtfsqa5VwNi" + ], + "title": "Backend API", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [], + "format": "markdown", + "dataFileName": "Backend API.md", + "attachments": [] + } + ] } ] } diff --git a/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.md b/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.md index c7f03b730..f1ec27a4b 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.md +++ b/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.md @@ -15,7 +15,7 @@ New tasks are created in the TODO note which has `~child:template` [relation](.. ### Attributes -Task template defines several [promoted attributes](../Attributes/Promoted%20Attributes.md) - todoDate, doneDate, tags, location. Importantly it also defines `~runOnAttributeChange` relation - [event](../../Note%20Types/Code/Events.md) handler which is run on attribute change. This [script](../../Scripting.md) 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. +Task template defines several [promoted attributes](../Attributes/Promoted%20Attributes.md) - todoDate, doneDate, tags, location. Importantly it also defines `~runOnAttributeChange` relation - [event](../../Scripting/Events.md) handler which is run on attribute change. This [script](../../Scripting.md) 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 diff --git a/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.md b/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.md index eb077ddd2..303812e16 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.md +++ b/docs/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.md @@ -1,7 +1,7 @@ # Weight Tracker ![](Weight%20Tracker_image.png) -The `Weight Tracker` is a [Script API](../../Note%20Types/Code/Script%20API.md) showcase present in the [demo notes](../Database.md). +The `Weight Tracker` is a [Script API](../../Scripting/Script%20API.md) showcase present in the [demo notes](../Database.md). By adding `weight` as a [promoted attribute](../Attributes/Promoted%20Attributes.md) in the [template](../Templates.md) from which [day notes](Day%20Notes.md) are created, you can aggregate the data and plot weight change over time. diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes.md b/docs/User Guide/User Guide/Advanced Usage/Attributes.md index b93cd8f3b..9e61ff648 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes.md @@ -20,6 +20,8 @@ Labels are also searchable, enhancing note retrieval. ### Common Labels for Advanced Configuration +See the corresponding section in Attribute Reference for a comprehensive list of attributes. + ## Relations Relations define connections between notes, similar to links. @@ -31,8 +33,7 @@ Relations define connections between notes, similar to links. ### Common Relations -* **Event-based Relations**: Such as `runOnNoteCreation` or `runOnNoteChange`, which trigger scripts on specific actions -* **Other Relations**: Include `template`, `renderNote`, `widget`, and sharing-related relations +See the corresponding section in Attribute Reference for a comprehensive list of relations. ## Multiplicity diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md index fe9b8dec7..1edca7486 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md @@ -1,44 +1,14 @@ -# Attribute Reference +# Attribute Reference ## Labels -
    LabelDescription
    disableVersioningDisables automatic creation of Note Revisions. Useful for e.g. large, but unimportant notes - e.g. large JS libraries used for scripting.
    calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
    archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
    excludeFromExportNotes (with their sub-tree) won't be included when exporting.
    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.
    • daily - run once a day
    runOnInstanceDefine which trilium instance should run this on. Default to all instances.
    runAtHourOn which hour should this run. Should be used together with #run=hourly. Can be defined multiple times for more runs during the day.
    disableInclusionScripts 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
    sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
    topIf sorted is applied to the parent note, keeps given note on top in its parent.
    hidePromotedAttributesHide Promoted Attributes on this note.
    readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
    autoReadOnlyDisabledtext/code notes can be set automatically into read mode when they are too large. You can disable this behavior on per-note basis by adding this label to the note
    appCssmarks CSS notes which are loaded into the Trilium application and can thus be used to modify Trilium's looks.
    appThememarks CSS notes which are full Trilium themes and are thus available in Trilium options.
    appThemeBaseSet 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.
    cssClassvalue of this label is then added as CSS class to the node representing given note in the tree. This can be useful for advanced theming. Can be used in template notes.
    iconClassvalue 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.
    pageSizenumber of items per page in note listing
    customRequestHandlerSee Custom Request Handler.
    customResourceProviderSee Custom Resource Providers.
    widgetmarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
    workspacemarks this note as a workspace which allows easy hoisting
    workspaceIconClassdefines box icon CSS class which will be used in tab when hoisted to this note
    workspaceTabBackgroundColorCSS color used in the note tab when hoisted to this note
    workspaceCalendarRootDefines per-workspace calendar root
    workspaceTemplateThis note will appear in the selection of available template when creating new note, but only when hoisted into a workspace containing this template
    searchHomenew search notes will be created as children of this note
    workspaceSearchHomenew search notes will be created as children of this note when hoisted to some ancestor of this workspace note
    inboxdefault 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.
    workspaceInboxdefault inbox location for new notes when hoisted to some ancestor of this workspace note
    sqlConsoleHomedefault location of SQL Console notes
    bookmarkFoldernote with this label will appear in bookmarks as folder (allowing access to its children)
    shareHiddenFromTreethis note is hidden from left navigation tree, but still accessible with its URL
    shareExternalLinknote will act as a link to an external website in the share tree
    shareAliasdefine an alias using which the note will be available under https://your_trilium_host/share/[your_alias]
    shareOmitDefaultCssdefault share page CSS will be omitted. Use when you make extensive styling changes.
    shareRootmarks note which is served on /share root.
    shareDescriptiondefine text to be added to the HTML meta tag for description
    shareRawnote will be served in its raw format, without HTML wrapper
    shareDisallowRobotIndexingwill forbid robot indexing of this note by setting the X-Robots-Tag: noindex HTTP header.
    shareCredentialsrequire 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.
    shareIndexnote with this label will list all roots of shared notes
    displayRelationscomma delimited names of relations which should be displayed. All other ones will be hidden.
    hideRelationscomma delimited names of relations which should be hidden. All other ones will be displayed.
    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')}
    • ${parentNote.title} to mirror the parent's template.
    templateThis note will appear in the selection of available template when creating new note
    tocControls 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.
    colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
    keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
    keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
    executeButtonTitle of the button which will execute the current code note
    executeDescriptionLonger description of the current code note displayed together with the execute button
    excludeFromNoteMapNotes with this label will be hidden from the Note Map.
    newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
    hideHighlightWidgetHide Highlight List widget
    printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
    printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
    +> [!TIP] +> Some labels presented here end with a `*`. That means that there are multiple labels with the same prefix, consult the specific page linked in the description of that label for more information. + +
    LabelDescription
    disableVersioningDisables 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.
    versioningLimitLimits the maximum number of Note Revisions for a particular note, overriding the global settings.
    calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
    archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
    excludeFromExportExcludes this note and its children when exporting.
    run, runOnInstance, runAtHourSee Events.
    disableInclusionScripts 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
    sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
    topIf sorted is applied to the parent note, keeps given note on top in its parent.
    hidePromotedAttributesHide Promoted Attributes on this note. Generally useful when defining inherited attributes, but the parent note doesn't need them.
    readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
    autoReadOnlyDisabledDisables automatic read-only mode for the given note.
    appCssMarks 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.
    appThemeMarks CSS notes which are full Trilium themes and are thus available in Trilium options. See Theme development for more information.
    appThemeBaseSet 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.
    cssClassValue 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.
    iconClassvalue 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.
    pageSizeSpecifies the number of items per page in Note List.
    customRequestHandlerSee Custom Request Handler.
    customResourceProviderSee Custom Resource Providers.
    widgetMarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
    searchHomeNew search notes will be created as children of this note (see Saved Search).
    workspace and related attributesSee Workspaces.
    inboxdefault 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.
    sqlConsoleHomeDefault location of SQL Console notes
    bookmarkedIndicates this note is a bookmark.
    bookmarkFolderNote 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, hideRelationsComma 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.

    templateThis note will appear in the selection of available template when creating new note. See Templates for more information.
    tocControls 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.
    colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
    keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
    keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
    executeButtonTitle of the button which will execute the current code note
    executeDescriptionLonger description of the current code note displayed together with the execute button
    excludeFromNoteMapNotes with this label will be hidden from the Note Map.
    newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
    hideHighlightWidgetHides the Highlights list widget
    hideChildrenOverviewHides the Note List for that particular note.
    printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
    printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
    geolocationIndicates the latitude and longitude of a note, to be displayed in a Geo Map.
    calendar:*Defines specific options for the Calendar View.
    viewTypeSets the view of child notes (e.g. grid or list). See Note List for more information.
    ## Relations -
    LabelDescription
    runOnNoteCreationexecutes 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.
    runOnChildNoteCreationexecutes when new note is created under the note where this relation is defined
    runOnNoteTitleChangeexecutes when note title is changed (includes note creation as well)
    runOnNoteContentChangeexecutes when note content is changed (includes note creation as well).
    runOnNoteChangeexecutes when note is changed (includes note creation as well). Does not include content changes
    runOnNoteDeletionexecutes when note is being deleted
    runOnBranchCreationexecutes 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.
    runOnBranchChangeexecutes when a branch is updated.
    runOnBranchDeletionexecutes 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).
    runOnAttributeCreationexecutes when new attribute is created for the note which defines this relation
    runOnAttributeChangeexecutes when the attribute is changed of a note which defines this relation. This is triggered also when the attribute is deleted
    templatenote'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.
    inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
    renderNotenotes 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_relationtarget of this relation will be executed and rendered as a widget in the sidebar
    shareCssCSS 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.
    shareJsJavaScript 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.
    shareTemplateEmbedded 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.
    shareFaviconFavicon 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.
    +> [!TIP] +> Some relations presented here end with a `*`. That means that there are multiple relations with the same prefix, consult the specific page linked in the description of that relation for more information. -* `disableVersioning`: Disables automatic versioning, ideal for large, unimportant notes like script libraries -* `versioningLimit`: Used to limit the number of revisions for a single note -* `calendarRoot`: Marks the note as the root for Day Notes. Only one note should carry this label. -* `excludeFromExport`: Excludes notes and their subtrees from export operations -* `run`: Specifies events to trigger scripts (e.g., `frontendStartup`, `hourly`) -* `runAtHour`: Defines specific hours for scripts to run, used with `#run=hourly` -* `disableInclusion`: Prevents a script from being included in parent script executions -* `sorted`: Automatically sorts child notes alphabetically by title -* `top`: Keeps the note at the top of its parent's list, useful with `sorted` -* `hidePromotedAttributes`: Hides certain attributes in the note's display -* `readOnly`: Sets the note to read-only mode, applicable to text and code notes -* `autoReadOnlyDisabled`: Disables automatic read-only mode for large notes -* `appCss`: Marks CSS notes used to modify Trilium’s appearance -* `appTheme`: Marks full CSS themes available in Trilium's options -* `cssClass`: Adds a CSS class to the note's representation in the tree -* `iconClass`: Adds a CSS class to the note's icon, useful for distinguishing notes visually. See Note Icons. -* `pageSize`: Specifies the number of items per page in note listings -* `customRequestHandler` **and** `customResourceProvider`: Refer to Custom Request Handler -* `widget`: Marks a note as a custom widget, added to Trilium's component tree -* `workspace` **and related attributes**: See Workspace for more details -* `searchHome`: Specifies the parent for new search notes -* `inbox`: Designates a default location for new notes created via the sidebar -* `sqlConsoleHome`: Default location for SQL console notes -* `bookmarked` **and** `bookmarkFolder`: See Bookmarks -* `share:[…]`: See Sharing -* `keyboardShortcut`: Assigns a keyboard shortcut to open the note -* `displayRelations` **and** `hideRelations`: Manages the display of note relations -* `titleTemplate`: See Default Note Title -* `template`: Makes the note available as a template -* `toc`: Controls the visibility of the table of contents -* `color`: Defines the color of the note in the tree and links -* `hideChildrenOverview`: Hides child notes in the parent note's editor -* `viewType`: Sets the view of child notes (grid or list) - -## Relations \ No newline at end of file +
    LabelDescription
    runOn*See Events
    templatenote'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.
    inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
    renderNotenotes 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_relationtarget of this relation will be executed and rendered as a widget in the sidebar
    shareCssCSS 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.
    shareJsJavaScript 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.
    shareTemplateEmbedded 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.
    shareFaviconFavicon 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/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.md b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.md new file mode 100644 index 000000000..6c69aff5e --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.md @@ -0,0 +1,19 @@ +# Trilium instance +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/docs/User Guide/User Guide/Advanced Usage/Custom Request Handler.md b/docs/User Guide/User Guide/Advanced Usage/Custom Request Handler.md index b848fdd8d..60306d76f 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Custom Request Handler.md +++ b/docs/User Guide/User Guide/Advanced Usage/Custom Request Handler.md @@ -53,7 +53,7 @@ Trilium will then find our code note created above and execute it. `api.req`, `a 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](../Note%20Types/Code/Script%20API.md). +Once we pass these checks we will just create the desired note using [Script API](../Scripting/Script%20API.md). ## Custom resource provider diff --git a/docs/User Guide/User Guide/Advanced Usage/Default Note Title.md b/docs/User Guide/User Guide/Advanced Usage/Default Note Title.md index fabf9fef8..1b4e575bf 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Default Note Title.md +++ b/docs/User Guide/User Guide/Advanced Usage/Default Note Title.md @@ -17,14 +17,16 @@ And all children of "2022 Books" will be created with initial title "\[Author na 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. -As an example, imagine you collect server outage incidents and write some notes. It looks like this: +Second variable injected is `parentNote` which gives access to the parent [`FNote`](../Scripting/Script%20API/Frontend%20API/FNote.md). -* Incidents - * 2022-05-09: System crash - * 2022-05-15: Backup delay +See also Templates which provides similar capabilities, including default note's content. -You can automatize the date assignment by assigning a label `#titleTemplate="${now.format('YYYY-MM-DD')}: "` to the parent note "Incidents". Whenever a new child note is created, the title template is evaluated with the injected [now](https://day.js.org/docs/en/display/format) object. +### Examples -Second variable injected is [parentNote](https://triliumnext.github.io/Notes/backend_api/BNote.html), an example could be `#titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works"`. - -See also \[\[[template](Templates.md)\]\] which provides similar capabilities, including default note's content. \ No newline at end of file +* Imagine you collect server outage incidents and write some notes. It looks like this: + * Incidents + * 2022-05-09: System crash + * 2022-05-15: Backup delay + * You can automatize the date assignment by assigning a label `#titleTemplate="${now.format('YYYY-MM-DD')}: "` to the parent note "Incidents". Whenever a new child note is created, the title template is evaluated with the injected [now](https://day.js.org/docs/en/display/format) object. +* To use a parent's attribute in the title of new notes: `#titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works"` +* To mirror the parent's note title: `${parentNote.title}` \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Sharing.md b/docs/User Guide/User Guide/Advanced Usage/Sharing.md index e23c50ee4..17c8aa475 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Sharing.md +++ b/docs/User Guide/User Guide/Advanced Usage/Sharing.md @@ -3,7 +3,7 @@ Trilium allows you to share selected notes as **publicly accessible** read-only ## Prerequisites -To use the sharing feature, you must have a [server installation](../Installation%20%26%20Setup/Server%20Installation.md) of Trilium. This is necessary because the notes will be hosted from the server. +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 @@ -40,7 +40,7 @@ To protect shared notes with a username and password, you can use the `#shareCre The default shared page is basic in design, but you can customize it using your own CSS: -* **Custom CSS**: Link a CSS [code note](../Note%20Types/Code.md) to the shared page by adding a `~shareCss` relation to the note. If you want this style to apply to the entire subtree, make the label inheritable. You can hide the CSS code note from the tree navigation by adding the `#shareHiddenFromTree` label. +* **Custom CSS**: Link a CSS Code note to the shared page by adding a `~shareCss` relation to the note. If you want this style to apply to the entire subtree, make the label inheritable. You can hide the CSS code note from the tree navigation by adding the `#shareHiddenFromTree` label. * **Omitting Default CSS**: For extensive styling changes, use the `#shareOmitDefaultCss` label to avoid conflicts with Trilium's [default stylesheet](../Basic%20Concepts%20and%20Features/Themes.md). ### Adding JavaScript @@ -81,12 +81,6 @@ To customize the favicon for your shared pages, create a relation `~shareFavicon 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. -## Additional Options - -* **Raw Note Sharing**: Use the `#shareRaw` label to share a note without any HTML wrapper. -* **Disallow Robot Indexing**: Add the `#shareDisallowRobotIndexing` label to prevent search engines from indexing the shared page by including a `noindex, follow` meta tag and `X-Robots-Tag: noindex` header. -* **Shared Notes Index**: For text notes with the `#shareIndex` label, the content will display a list of all shared note roots. - ## Limitations While the sharing feature is powerful, it has some limitations: @@ -98,4 +92,8 @@ While the sharing feature is powerful, it has some limitations: * **Protected Notes**: Cannot be shared. * **Include Notes**: Not supported. -Some of these limitations may be addressed in future updates. \ No newline at end of file +Some of these limitations may be addressed in future updates. + +## Attribute reference + +
    AttributeDescription
    shareHiddenFromTreethis note is hidden from left navigation tree, but still accessible with its URL
    shareExternalLinknote will act as a link to an external website in the share tree
    shareAliasdefine an alias using which the note will be available under https://your_trilium_host/share/[your_alias]
    shareOmitDefaultCssdefault share page CSS will be omitted. Use when you make extensive styling changes.
    shareRootmarks note which is served on /share root.
    shareDescriptiondefine text to be added to the HTML meta tag for description
    shareRawNote 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.
    shareCredentialsrequire 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.
    shareIndexNote with this label will list all roots of shared notes.
    \ No newline at end of file diff --git a/docs/User Guide/User Guide/Advanced Usage/Templates.md b/docs/User Guide/User Guide/Advanced Usage/Templates.md index 3604af2db..bd174e0f3 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Templates.md +++ b/docs/User Guide/User Guide/Advanced Usage/Templates.md @@ -23,7 +23,7 @@ To create an instance note through the UI: ![show child note templates](Templates_template-create-.png) -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](../Basic%20Concepts%20and%20Features/Navigation/Workspace.md), you can also mark templates with `#workspaceTemplate` to display them only in the workspace. +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](../Basic%20Concepts%20and%20Features/Navigation/Workspaces.md), 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. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspace_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspaces_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspace_image.png rename to docs/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspaces_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.md index a2238fcd1..a6665943e 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.md @@ -5,4 +5,4 @@ Hoisting is a standard outliner feature which allows you to focus on (or "zoom i In addition to showing only this subtree, this also narrows both full text search and [“jump to note”](Note%20Navigation.md) to just notes present in hoisted subtree. -See also [Workspace](Workspace.md) which extends this feature. \ No newline at end of file +See also [Workspace](Workspaces.md) which extends this feature. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.md deleted file mode 100644 index 32c33349d..000000000 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.md +++ /dev/null @@ -1,24 +0,0 @@ -# Workspace -Workspace is a concept built up on top of [note hoisting](Note%20Hoisting.md). It is based on the idea that a user has several distinct spheres of interest. An example might be "Personal" and "Work", these two spheres are quite distinct and don't interact together. When I focus on Work, I don't really care about personal notes. - -So far workspace consists of these features: - -* [note hoisting](Note%20Hoisting.md) - you can "zoom" into a workspace subtree to focus only on the relevant notes - -* easy entering of workspace:  - - ![](1_Workspace_image.png) - -* visual identification of workspace in tabs: - ![](Workspace_image.png) - - -### How to use workspaces - -Let's say you have identified the workspaces and their subtrees. Define on the root of this subtree following labels: - -* `#workspace` - Marks this note as a workspace, button to enter the workspace is controlled by this -* `#workspaceIconClass` - controls the box icon to be displayed in the tree and tabs, example `bx bx-home`. See [https://boxicons.com/](https://boxicons.com/) -* `#workspaceTabBackgroundColor` - Background color of the tab, use any CSS color format, e.g. "lightblue" or "#ddd". See [https://www.w3schools.com/cssref/css\_colors.asp](https://www.w3schools.com/cssref/css_colors.asp). -* `#workspaceCalendarRoot` - marking a note with this label will define a new per-workspace calendar. If there's no such note, the global calendar will be used. -* `#workspaceTemplate` - This note will appear in the selection of available templates when creating a new note, but only when you are currently hoisted into a workspace containing this template. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md new file mode 100644 index 000000000..d00086c4c --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.md @@ -0,0 +1,16 @@ +# Workspaces +Workspace is a concept built up on top of [note hoisting](Note%20Hoisting.md). It is based on the idea that a user has several distinct spheres of interest. An example might be "Personal" and "Work", these two spheres are quite distinct and don't interact together. When I focus on Work, I don't really care about personal notes. + +So far workspace consists of these features: + +* [note hoisting](Note%20Hoisting.md) - you can "zoom" into a workspace subtree to focus only on the relevant notes +* easy entering of workspace:  + + ![](1_Workspaces_image.png) + +* visual identification of workspace in tabs: + ![](Workspaces_image.png) + +### Configuration + +
    LabelDescription
    workspaceMarks this note as a workspace, button to enter the workspace is controlled by this
    workspaceIconClassdefines box icon CSS class which will be used in tab when hoisted to this note
    workspaceTabBackgroundColorCSS color used in the note tab when hoisted to this note, use any CSS color format, e.g. "lightblue" or "#ddd". See https://www.w3schools.com/cssref/css_colors.asp.
    workspaceCalendarRootMarking a note with this label will define a new per-workspace calendar for Day Notes. If there's no such note, the global calendar will be used.
    workspaceTemplateThis note will appear in the selection of available template when creating new note, but only when hoisted into a workspace containing this template
    workspaceSearchHomenew search notes will be created as children of this note when hoisted to some ancestor of this workspace note
    workspaceInboxdefault inbox location for new notes when hoisted to some ancestor of this workspace note
    \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces_image.png similarity index 100% rename from docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace_image.png rename to docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces_image.png diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md index 3d6981247..0c8273a8b 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.md @@ -1,9 +1,10 @@ # Note List When a note has one or more child notes, they will be listed at the end of the note for easy navigation. -## Hide the note list for a given note +## Configuration -If the note list is not desireable for a particular note, simply apply the `hideChildrenOverview` [label](../../Advanced%20Usage/Attributes.md). +* To hide the note list for a particular note, simply apply the `hideChildrenOverview` [label](../../Advanced%20Usage/Attributes.md). +* For some view types, such as Grid view, only a subset of notes will be displayed and pagination can be used to navigate through all of them for performance reasons. To adjust the number of notes per page, set `pageSize` to the desired number. ## View types diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.md index d3dfd49f8..33fb8a0ed 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.md @@ -56,7 +56,7 @@ Right click either the _Available launchers_ or _Visible launchers_ sections and 2. Optionally, set a `keyboardShortcut` to trigger the launcher. 3. **Custom Widget** - Allows defining a custom widget to be rendered inside the launcher. See [Widget Basics](../../Scripting/Widget%20Basics.md) for more information. + Allows defining a custom widget to be rendered inside the launcher. See [Widget Basics](../../Scripting/Custom%20Widgets/Widget%20Basics.md) for more information. 4. **Spacers** Launchers that create some distance between other launchers for better visual distinction. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.md index 73ff35d1e..b53135131 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.md @@ -61,4 +61,6 @@ This section displays information about the current note: ### Edited notes -This section pops automatically when entering a [day note](../../Advanced%20Usage/Advanced%20Showcases/Day%20Notes.md) and shows the notes that were edited that day. \ No newline at end of file +This section pops automatically when entering a [day note](../../Advanced%20Usage/Advanced%20Showcases/Day%20Notes.md) and shows the notes that were edited that day. + +It is possible to disable this behavior from settings, by going to Appearance settings and looking for the _Ribbon widgets_ section. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Code/Events.md b/docs/User Guide/User Guide/Note Types/Code/Events.md deleted file mode 100644 index ca3336889..000000000 --- a/docs/User Guide/User Guide/Note Types/Code/Events.md +++ /dev/null @@ -1,29 +0,0 @@ -# Events -[Script](../../Scripting.md) 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. - -* `run` - * `frontendStartup` - executes on frontend upon startup - * `mobileStartup` - executes on mobile frontend upon startup - * `backendStartup` - executes on backend upon startup - * `hourly` - executes once an hour on backend - * `daily` - executes once a day on backend - -## Entity events - -Other events are bound to some entity, these are defined as [relations](../../Advanced%20Usage/Attributes.md) - meaning that script is triggered only if note has this script attached to it through relations (or it can inherit it). - -* `runOnNoteCreation` - executes when note is created on backend -* `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) -* `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` (since v0.62) - executes when a branch is changed - either expanded status or prefix are changed. -* `runOnBranchDeletion` - executes when a branch is delete. Branch is a link between parent note and child note and is deleted e.g. when moving note (old branch/link is deleted). -* `runOnChildNoteCreation` - executes when new note is created under _this_ note -* `runOnAttributeCreation` - executes when new attribute is created under _this_ note -* `runOnAttributeChange` - executes when attribute is changed under _this_ note \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Saved Search.md b/docs/User Guide/User Guide/Note Types/Saved Search.md index 80719b210..c2664085f 100644 --- a/docs/User Guide/User Guide/Note Types/Saved Search.md +++ b/docs/User Guide/User Guide/Note Types/Saved Search.md @@ -5,4 +5,4 @@ Trilium allows you to save common searches as notes within the note tree. The se ## 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](../Basic%20Concepts%20and%20Features/Navigation/Workspace.md), you can use the `#workspaceSearchHome` label to specify a storage location for saved searches within that workspace. \ No newline at end of file +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](../Basic%20Concepts%20and%20Features/Navigation/Workspaces.md), 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/docs/User Guide/User Guide/Scripting.md b/docs/User Guide/User Guide/Scripting.md index 09b451e49..bdc76d4a0 100644 --- a/docs/User Guide/User Guide/Scripting.md +++ b/docs/User Guide/User Guide/Scripting.md @@ -1,5 +1,5 @@ # Scripting -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. +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 @@ -34,8 +34,8 @@ You can see more scripting with explanation in Events. +See Events. ## Script API -See Script API. \ No newline at end of file +See Script API. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Code/Custom Widgets.md b/docs/User Guide/User Guide/Scripting/Custom Widgets.md similarity index 100% rename from docs/User Guide/User Guide/Note Types/Code/Custom Widgets.md rename to docs/User Guide/User Guide/Scripting/Custom Widgets.md diff --git a/docs/User Guide/User Guide/Scripting/Widget Basics.md b/docs/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.md similarity index 91% rename from docs/User Guide/User Guide/Scripting/Widget Basics.md rename to docs/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.md index d457ad6ac..ffc5df52a 100644 --- a/docs/User Guide/User Guide/Scripting/Widget Basics.md +++ b/docs/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.md @@ -22,10 +22,10 @@ module.exports = new MyWidget(); To implement this widget: 1. Create a new `JS Frontend` note in Trilium and paste in the code above. -2. Assign the `#widget` [attribute](../Advanced%20Usage/Attributes.md) to the [note](../Basic%20Concepts%20and%20Features/Notes.md). +2. Assign the `#widget` [attribute](../../Advanced%20Usage/Attributes.md) to the [note](../../Basic%20Concepts%20and%20Features/Notes.md). 3. Restart Trilium or reload the window. -To verify that the widget is working, open the developer tools (`Cmd` + `Shift` + `I`) and run `document.querySelector("#my-widget")`. If the element is found, the widget is functioning correctly. If `undefined` is returned, double-check that the [note](../Basic%20Concepts%20and%20Features/Notes.md) has the `#widget` [attribute](../Advanced%20Usage/Attributes.md). +To verify that the widget is working, open the developer tools (`Cmd` + `Shift` + `I`) and run `document.querySelector("#my-widget")`. If the element is found, the widget is functioning correctly. If `undefined` is returned, double-check that the [note](../../Basic%20Concepts%20and%20Features/Notes.md) has the `#widget` [attribute](../../Advanced%20Usage/Attributes.md). ### Step 2: Adding an UI Element @@ -85,7 +85,7 @@ After reloading Trilium, the button should now appear at the bottom left of the ### 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](../Note%20Types/Code/Script%20API.md). +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](../Script%20API.md). ``` class MyWidget extends api.BasicWidget { diff --git a/docs/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget.md b/docs/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.md similarity index 88% rename from docs/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget.md rename to docs/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.md index 2110032fa..d39b328ea 100644 --- a/docs/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget.md +++ b/docs/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.md @@ -1,8 +1,8 @@ # Word count widget > [!TIP] -> This widget is also present in new installations in the Demo Notes. +> This widget is also present in new installations in the Demo Notes. -Create a Code note of type JS frontend and **give it a** `#widget` **label**. +Create a Code note of type JS frontend and **give it a** `#widget` **label**. ``` /* @@ -82,7 +82,7 @@ class WordCountWidget extends api.NoteContextAwareWidget { module.exports = new WordCountWidget(); ``` -After you make changes it is necessary to [restart Trilium](../../../Troubleshooting/Refreshing%20the%20application.md) so that the layout can be rebuilt. +After you make changes it is necessary to [restart Trilium](../../Troubleshooting/Refreshing%20the%20application.md) so that the layout can be rebuilt. At the bottom of the note you can see the resulting widget: diff --git a/docs/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget_image.png b/docs/User Guide/User Guide/Scripting/Custom Widgets/Word count widget_image.png similarity index 100% rename from docs/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget_image.png rename to docs/User Guide/User Guide/Scripting/Custom Widgets/Word count widget_image.png diff --git a/docs/User Guide/User Guide/Scripting/Events.md b/docs/User Guide/User Guide/Scripting/Events.md new file mode 100644 index 000000000..242d1790f --- /dev/null +++ b/docs/User Guide/User Guide/Scripting/Events.md @@ -0,0 +1,14 @@ +# Events +[Script](../Scripting.md) 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
    runOnInstanceSpecifies that the script should only run on a particular Trilium instance.
    runAtHourOn 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](../Advanced%20Usage/Attributes.md) - meaning that script is triggered only if note has this script attached to it through relations (or it can inherit it). + +
    RelationDescription
    runOnNoteCreationexecutes 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.
    runOnChildNoteCreationexecutes when new note is created under the note where this relation is defined
    runOnNoteTitleChangeexecutes when note title is changed (includes note creation as well)
    runOnNoteContentChangeexecutes when note content is changed (includes note creation as well).
    runOnNoteChangeexecutes when note is changed (includes note creation as well). Does not include content changes
    runOnNoteDeletionexecutes when note is being deleted
    runOnBranchCreationexecutes 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.
    runOnBranchChangeexecutes when a branch is updated. (since v0.62)
    runOnBranchDeletionexecutes 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).
    runOnAttributeCreationexecutes when new attribute is created for the note which defines this relation
    runOnAttributeChangeexecutes 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/docs/User Guide/User Guide/Scripting/Frontend Basics.md b/docs/User Guide/User Guide/Scripting/Frontend Basics.md index fe5435548..c76ac9a99 100644 --- a/docs/User Guide/User Guide/Scripting/Frontend Basics.md +++ b/docs/User Guide/User Guide/Scripting/Frontend Basics.md @@ -1,7 +1,7 @@ # Frontend Basics ## 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](../Note%20Types/Code/Script%20API.md) page. +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](Script%20API.md) page. ## Scripts @@ -54,4 +54,4 @@ Conversely to scripts, widgets do have some specific requirements in order to wo ### Tutorial -For more information on building widgets, take a look at [Widget Basics](Widget%20Basics.md). \ No newline at end of file +For more information on building widgets, take a look at [Widget Basics](Custom%20Widgets/Widget%20Basics.md). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Note Types/Code/Script API.md b/docs/User Guide/User Guide/Scripting/Script API.md similarity index 100% rename from docs/User Guide/User Guide/Note Types/Code/Script API.md rename to docs/User Guide/User Guide/Scripting/Script API.md diff --git a/docs/User Guide/User Guide/Scripting/Script API/Backend API.md b/docs/User Guide/User Guide/Scripting/Script API/Backend API.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.md b/docs/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.md new file mode 100644 index 000000000..e69de29bb diff --git a/docs/User Guide/User Guide/Troubleshooting.md b/docs/User Guide/User Guide/Troubleshooting.md index dd150ad02..dad654ff7 100644 --- a/docs/User Guide/User Guide/Troubleshooting.md +++ b/docs/User Guide/User Guide/Troubleshooting.md @@ -21,7 +21,7 @@ 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](Note%20Types/Code/Custom%20Widgets.md), start Triliumin "safe mode" to prevent any custom scripts from executing: +If a custom script causes Triliumto crash, and it is set as a startup script or in an active [custom widget](Scripting/Custom%20Widgets.md), start Triliumin "safe mode" to prevent any custom scripts from executing: ``` TRILIUM_SAFE_MODE=true ./trilium diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index f93682260..a5fbfdeb4 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1427,6 +1427,13 @@ "value": "bx bx-dots-horizontal", "isInheritable": false, "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_optionsAppearance", + "isInheritable": false, + "position": 220 } ], "format": "html", @@ -2655,58 +2662,58 @@ { "type": "relation", "name": "internalLink", - "value": "GTwFsgaA0lCt", + "value": "zEY4DaJG4YT5", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "BlN9DFI679QC", + "value": "GTwFsgaA0lCt", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "iPIMuisry3hd", + "value": "BlN9DFI679QC", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "6f9hih2hXXZk", + "value": "iPIMuisry3hd", "isInheritable": false, "position": 40 }, { "type": "relation", "name": "internalLink", - "value": "W8vYD3Q1zjCR", + "value": "6f9hih2hXXZk", "isInheritable": false, "position": 50 }, { "type": "relation", "name": "internalLink", - "value": "xWbu3jpNWapp", + "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 - }, - { - "type": "relation", - "name": "internalLink", - "value": "zEY4DaJG4YT5", - "isInheritable": false, - "position": 70 } ], "format": "html", @@ -3296,7 +3303,7 @@ "wArbEsdSae6g", "9sRHySam5fXb" ], - "title": "Workspace", + "title": "Workspaces", "notePosition": 90, "prefix": null, "isExpanded": false, @@ -3323,10 +3330,17 @@ "value": "bx bx-door-open", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "l0tKav7yLHGF", + "isInheritable": false, + "position": 40 } ], "format": "html", - "dataFileName": "Workspace.html", + "dataFileName": "Workspaces.html", "attachments": [ { "attachmentId": "V4TIsmtBh8P7", @@ -3334,7 +3348,7 @@ "role": "image", "mime": "image/jpg", "position": 10, - "dataFileName": "Workspace_image.png" + "dataFileName": "Workspaces_image.png" }, { "attachmentId": "vZSH2mOKzWBx", @@ -3342,7 +3356,7 @@ "role": "image", "mime": "image/jpg", "position": 10, - "dataFileName": "1_Workspace_image.png" + "dataFileName": "1_Workspaces_image.png" } ] }, @@ -3636,6 +3650,13 @@ "type": "text", "mime": "text/markdown", "attributes": [ + { + "type": "relation", + "name": "internalLink", + "value": "NwBbFdNZ9h7O", + "isInheritable": false, + "position": 10 + }, { "type": "label", "name": "shareAlias", @@ -3649,13 +3670,6 @@ "value": "bx bxl-markdown", "isInheritable": false, "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "NwBbFdNZ9h7O", - "isInheritable": false, - "position": 60 } ], "format": "html", @@ -5239,162 +5253,6 @@ "position": 10, "dataFileName": "1_Code_image.png" } - ], - "dirFileName": "Code", - "children": [ - { - "isClone": false, - "noteId": "GLks18SNjxmC", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "GLks18SNjxmC" - ], - "title": "Script API", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "text", - "mime": "text/markdown", - "attributes": [ - { - "type": "label", - "name": "shareAlias", - "value": "script-api", - "isInheritable": false, - "position": 10 - } - ], - "format": "html", - "dataFileName": "Script API.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "GPERMystNGTB", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "GPERMystNGTB" - ], - "title": "Events", - "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": "CdNpE2pqjmI6", - "isInheritable": false, - "position": 20 - }, - { - "type": "label", - "name": "shareAlias", - "value": "events", - "isInheritable": false, - "position": 30 - } - ], - "format": "html", - "dataFileName": "Events.html", - "attachments": [] - }, - { - "isClone": false, - "noteId": "MgibgPcfeuGz", - "notePath": [ - "pOsGYCXsbNQG", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "MgibgPcfeuGz" - ], - "title": "Custom Widgets", - "notePosition": 50, - "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", - "KSZ04uQ2D1St", - "6f9hih2hXXZk", - "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" - } - ] - } - ] - } ] }, { @@ -6848,14 +6706,14 @@ "name": "internalLink", "value": "OFXdgB2nNk1F", "isInheritable": false, - "position": 90 + "position": 20 }, { "type": "relation", "name": "internalLink", "value": "bwZpz2ajCEwO", "isInheritable": false, - "position": 100 + "position": 30 }, { "type": "label", @@ -6870,6 +6728,13 @@ "value": "bx bx-list-check", "isInheritable": false, "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Ucmcs8SfrYdD", + "isInheritable": false, + "position": 120 } ], "format": "html", @@ -7010,145 +6875,215 @@ "type": "text", "mime": "text/html", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "p9kXRFAkwN4o", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 70 - }, { "type": "relation", "name": "internalLink", "value": "l0tKav7yLHGF", "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WFGzWeUK6arS", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 150 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MgibgPcfeuGz", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_help_YKWqdJhzi2VY", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 200 + "position": 10 }, { "type": "relation", "name": "internalLink", "value": "bwZpz2ajCEwO", "isInheritable": false, - "position": 210 + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "vZWERwf8U3nx", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WFGzWeUK6arS", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "J5Ex1ZrMbyJ6", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "d3fAXQ2diepH", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MgibgPcfeuGz", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 130 }, { "type": "relation", "name": "internalLink", "value": "HcABDtFCkbFN", "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pKK96zzmvBGf", + "isInheritable": false, "position": 220 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AlhDUqhENtH7", + "isInheritable": false, + "position": 230 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 240 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 250 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help_YKWqdJhzi2VY", + "isInheritable": false, + "position": 260 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iRwzGnHPzonm", + "isInheritable": false, + "position": 270 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BCkXAVs63Ttv", + "isInheritable": false, + "position": 280 + }, + { + "type": "relation", + "name": "internalLink", + "value": "47ZrP6FNuoG8", + "isInheritable": false, + "position": 290 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 300 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GPERMystNGTB", + "isInheritable": false, + "position": 310 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AxshuNRegLAv", + "isInheritable": false, + "position": 320 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 330 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-book-bookmark", + "isInheritable": false, + "position": 340 } ], "format": "html", @@ -7351,13 +7286,6 @@ "type": "text", "mime": "text/markdown", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "WOcw2SLH6tbX", - "isInheritable": false, - "position": 10 - }, { "type": "relation", "name": "internalLink", @@ -7365,13 +7293,6 @@ "isInheritable": false, "position": 20 }, - { - "type": "relation", - "name": "internalLink", - "value": "6f9hih2hXXZk", - "isInheritable": false, - "position": 30 - }, { "type": "relation", "name": "internalLink", @@ -7392,6 +7313,27 @@ "value": "bx bx-share-alt", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "6f9hih2hXXZk", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WOcw2SLH6tbX", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Qjt68inQ2bRj", + "isInheritable": false, + "position": 70 } ], "format": "html", @@ -7991,7 +7933,7 @@ "47ZrP6FNuoG8" ], "title": "Default Note Title", - "notePosition": 130, + "notePosition": 140, "prefix": null, "isExpanded": false, "type": "text", @@ -8004,19 +7946,26 @@ "isInheritable": false, "position": 10 }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 20 - }, { "type": "label", "name": "shareAlias", "value": "default-note-title", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "habiZ3HU8Kw8", + "isInheritable": false, + "position": 50 } ], "format": "html", @@ -8032,7 +7981,7 @@ "wX4HbRucYSDD" ], "title": "Database", - "notePosition": 150, + "notePosition": 160, "prefix": null, "isExpanded": false, "type": "text", @@ -8283,7 +8232,7 @@ "Gzjqa934BdH4" ], "title": "Configuration (config.ini or environment variables)", - "notePosition": 160, + "notePosition": 170, "prefix": null, "isExpanded": false, "type": "text", @@ -8299,7 +8248,38 @@ ], "format": "html", "dataFileName": "Configuration (config.ini or e.html", - "attachments": [] + "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, @@ -8310,7 +8290,7 @@ "ivYnonVFBxbQ" ], "title": "Bulk actions", - "notePosition": 170, + "notePosition": 180, "prefix": null, "isExpanded": false, "type": "text", @@ -8337,7 +8317,7 @@ "4FahAwuGTAwC" ], "title": "Note source", - "notePosition": 180, + "notePosition": 190, "prefix": null, "isExpanded": false, "type": "text", @@ -8450,7 +8430,7 @@ "1YeN2MzFUluU" ], "title": "Technologies used", - "notePosition": 190, + "notePosition": 200, "prefix": null, "isExpanded": false, "type": "text", @@ -8599,7 +8579,7 @@ "m1lbrzyKDaRB" ], "title": "Note ID", - "notePosition": 200, + "notePosition": 210, "prefix": null, "isExpanded": false, "type": "text", @@ -8633,7 +8613,7 @@ "0vTSyvhPTAOz" ], "title": "Internal API", - "notePosition": 210, + "notePosition": 220, "prefix": null, "isExpanded": false, "type": "text", @@ -8805,54 +8785,6 @@ "dataFileName": "Frontend Basics.html", "attachments": [] }, - { - "isClone": false, - "noteId": "SynTBQiBsdYJ", - "notePath": [ - "pOsGYCXsbNQG", - "CdNpE2pqjmI6", - "SynTBQiBsdYJ" - ], - "title": "Widget Basics", - "notePosition": 30, - "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": "es8OU2GuguFU", @@ -9008,6 +8940,284 @@ ] } ] + }, + { + "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": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CdNpE2pqjmI6", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "shareAlias", + "value": "events", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "c5xB8m4g2IY6", + "isInheritable": false, + "position": 30 + }, + { + "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": "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": "text", + "mime": "text/html", + "attributes": [], + "format": "html", + "attachments": [], + "dirFileName": "Frontend API", + "children": [ + { + "isClone": false, + "noteId": "habiZ3HU8Kw8", + "notePath": [ + "pOsGYCXsbNQG", + "CdNpE2pqjmI6", + "GLks18SNjxmC", + "Q2z6av6JZVWm", + "habiZ3HU8Kw8" + ], + "title": "FNote", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [], + "format": "html", + "dataFileName": "FNote.html", + "attachments": [] + } + ] + }, + { + "isClone": false, + "noteId": "MEtfsqa5VwNi", + "notePath": [ + "pOsGYCXsbNQG", + "CdNpE2pqjmI6", + "GLks18SNjxmC", + "MEtfsqa5VwNi" + ], + "title": "Backend API", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [], + "format": "html", + "dataFileName": "Backend API.html", + "attachments": [] + } + ] } ] } diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html index dd9a222e6..cccd12df6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html @@ -36,8 +36,8 @@

    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 + - 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.

    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html index 193cdface..77557868b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html @@ -16,7 +16,7 @@

    -

    The Weight Tracker is a Script API showcase +

    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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html index 77e8d336b..9f715ddee 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html @@ -37,9 +37,8 @@

    Labels are also searchable, enhancing note retrieval.

    Common Labels for Advanced Configuration

    -
      -
    •  
    • -
    +

    See the corresponding section in Attribute Reference for + a comprehensive list of attributes.

    Relations

    Relations define connections between notes, similar to links.

    Uses

    @@ -50,12 +49,8 @@ related to the note
  • Common Relations

    -
      -
    • Event-based Relations: Such as runOnNoteCreation or runOnNoteChange, - which trigger scripts on specific actions
    • -
    • Other Relations: Include template, renderNote, widget, - and sharing-related relations
    • -
    +

    See the corresponding section in Attribute Reference for + a comprehensive list of relations.

    Multiplicity

    Attributes in Trilium can be "multivalued", meaning multiple attributes with the same name can coexist.

    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html index a821012af..ebf750601 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html @@ -14,6 +14,11 @@

    Labels

    +
    @@ -30,9 +35,15 @@ - + + + + + - + - - - - - - - - - - + + this note. Generally useful when defining inherited attributes, but the + parent note doesn't need them. - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - - - + + + + + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + new note. See Templates for + more information. - + + + + + + + + + + + + + + + + +
    disableVersioning Disables automatic creation of Note Revisions. - Useful for e.g. large, but unimportant notes - e.g. large JS libraries - used for scripting.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 @@ -50,35 +61,12 @@
    excludeFromExport Notes (with their sub-tree) won't be included when exporting.Excludes this note and its children when exporting.
    run + run, runOnInstance, runAtHour -

    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.
    • -
    • daily - run once a day
    • -
    -
    runOnInstance - Define which trilium instance should run this on. Default to all instances.
    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.See Events.
    disableInclusion @@ -122,7 +110,8 @@ hidePromotedAttributes Hide Promoted Attributes on - this note.
    readOnly @@ -133,21 +122,23 @@
    autoReadOnlyDisabled text/code notes can be set automatically into read mode when they are - too large. You can disable this behavior on per-note basis by adding this - label to the noteDisables 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.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.Marks CSS notes which are full Trilium themes and are thus available in + Trilium options. See Theme development for + more information.
    appThemeBase @@ -161,9 +152,9 @@
    cssClass value of this label is then added as CSS class to the node representing - given note in the tree. This can be useful for advanced theming. Can be - used in template notes.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 @@ -175,7 +166,8 @@
    pageSize number of items per page in note listingSpecifies the number of items per page in Note List.
    customRequestHandler @@ -190,47 +182,20 @@
    widget marks this note as a custom widget which will be added to the Trilium - component tree. See Custom Widgets for + Marks this note as a custom widget which will be added to the Trilium + component tree. See Custom Widgets for more information.
    workspace - marks this note as a workspace which allows easy hoisting
    workspaceIconClass - defines box icon CSS class which will be used in tab when hoisted to this - note
    workspaceTabBackgroundColor - CSS color used in the note tab when hoisted to this note
    workspaceCalendarRoot - Defines per-workspace calendar root
    workspaceTemplate - This note will appear in the selection of available template when creating - new note, but only when hoisted into a workspace containing this template
    searchHome new search notes will be created as children of this noteNew search notes will be created as children of this note (see  + Saved Search).
    workspaceSearchHome - new search notes will be created as children of this note when hoisted - to some ancestor of this workspace noteworkspace and related attributesSee Workspaces.
    inbox @@ -239,90 +204,35 @@ in the sidebar, notes will be created as child notes in the note marked as with #inbox label.
    workspaceInbox - default inbox location for new notes when hoisted to some ancestor of - this workspace note
    sqlConsoleHome default location of SQL Console notesDefault 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)Note with this label will appear in bookmarks as folder (allowing access + to its children). See Bookmarks for + more information.
    shareHiddenFromTree + share* this note is hidden from left navigation tree, but still accessible with - its URLSee the attribute reference in Sharing.
    shareExternalLink + displayRelations, hideRelations 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
    shareDisallowRobotIndexing - will forbid robot indexing of this note by setting the X-Robots-Tag: noindex HTTP - header.
    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
    displayRelations - comma delimited names of relations which should be displayed. All other - ones will be hidden.
    hideRelations - comma delimited names of relations which should be hidden. All other ones - will be displayed.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 @@ -337,15 +247,18 @@
  • Log for ${now.format('YYYY-MM-DD HH:mm:ss')}
  • -
  • ${parentNote.title} to mirror the parent's template.
  • +
  • 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
    toc @@ -398,7 +311,13 @@
    hideHighlightWidget Hide Highlight List widgetHides the Highlights list widget
    hideChildrenOverview + Hides the Note List for + that particular note.
    printLandscape @@ -411,10 +330,34 @@ 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.

    Relations

    +
    @@ -429,69 +372,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    runOnNoteCreation + runOn* 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 + See Events 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.
    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
    template @@ -550,73 +434,6 @@
    -

     

    -
      -
    • disableVersioning: Disables automatic versioning, ideal for - large, unimportant notes like script libraries
    • -
    • versioningLimit: Used to limit the number of revisions for - a single note
    • -
    • calendarRoot: Marks the note as the root for Day Notes. Only one - note should carry this label.
    • -
    • excludeFromExport: Excludes notes and their subtrees from - export operations
    • -
    • run: Specifies events to trigger scripts (e.g., frontendStartup, hourly)
    • -
    • runAtHour: Defines specific hours for scripts to run, used - with #run=hourly -
    • -
    • disableInclusion: Prevents a script from being included in - parent script executions
    • -
    • sorted: Automatically sorts child notes alphabetically by - title
    • -
    • top: Keeps the note at the top of its parent's list, useful - with sorted -
    • -
    • hidePromotedAttributes: Hides certain attributes in the note's - display
    • -
    • readOnly: Sets the note to read-only mode, applicable to - text and code notes
    • -
    • autoReadOnlyDisabled: Disables automatic read-only mode for - large notes
    • -
    • appCss: Marks CSS notes used to modify Trilium’s appearance
    • -
    • appTheme: Marks full CSS themes available in Trilium's options
    • -
    • cssClass: Adds a CSS class to the note's representation in - the tree
    • -
    • iconClass: Adds a CSS class to the note's icon, useful for - distinguishing notes visually. See Note Icons.
    • -
    • pageSize: Specifies the number of items per page in note - listings
    • -
    • customRequestHandler and customResourceProvider: - Refer to Custom Request Handler -
    • -
    • widget: Marks a note as a custom widget, added to Trilium's - component tree
    • -
    • workspace and related attributes: See  - Workspace for more details
    • -
    • searchHome: Specifies the parent for new search notes
    • -
    • inbox: Designates a default location for new notes created - via the sidebar
    • -
    • sqlConsoleHome: Default location for SQL console notes
    • -
    • bookmarked and bookmarkFolder: - See Bookmarks -
    • -
    • share:[…]: See Sharing -
    • -
    • keyboardShortcut: Assigns a keyboard shortcut to open the - note
    • -
    • displayRelations and hideRelations: - Manages the display of note relations
    • -
    • titleTemplate: See Default Note Title -
    • -
    • template: Makes the note available as a template
    • -
    • toc: Controls the visibility of the table of contents
    • -
    • color: Defines the color of the note in the tree and links
    • -
    • hideChildrenOverview: Hides child notes in the parent note's - editor
    • -
    • viewType: Sets the view of child notes (grid or list)
    • -
    -

    Relations

    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html new file mode 100644 index 000000000..6e447278e --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html @@ -0,0 +1,37 @@ + + + + + + + + Trilium instance + + + +
    +

    Trilium instance

    + +
    +

    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/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html index 8c491ef80..1c3bce6b6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html @@ -68,7 +68,7 @@ Content-Type: application/json and you need to take care of this yourself.

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

    + href="../Scripting/Script%20API.html">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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html index ee8b6e01d..05a4a570e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html @@ -42,23 +42,31 @@

    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.

    -

    As an example, imagine you collect server outage incidents and write some - notes. It looks like this:

    +

    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

      -
    • Incidents +
    • Imagine you collect server outage incidents and write some notes. It looks + like this:
        -
      • 2022-05-09: System crash
      • -
      • 2022-05-15: Backup delay
      • +
      • Incidents +
          +
        • 2022-05-09: System crash
        • +
        • 2022-05-15: Backup delay
        • +
        +
      • +
      • You can automatize the date assignment by assigning a label #titleTemplate="${now.format('YYYY-MM-DD')}: " to + the parent note "Incidents". Whenever a new child note is created, the + title template is evaluated with the injected now object.
    • +
    • To use a parent's attribute in the title of new notes: #titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works" +
    • +
    • To mirror the parent's note title: ${parentNote.title} +
    -

    You can automatize the date assignment by assigning a label #titleTemplate="${now.format('YYYY-MM-DD')}: " to - the parent note "Incidents". Whenever a new child note is created, the - title template is evaluated with the injected now object.

    -

    Second variable injected is parentNote, - an example could be #titleTemplate="${parentNote.getLabelValue('authorName')}'s literary works".

    -

    See also [[template]] which provides similar - capabilities, including default note's content.

    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html index 3ba0c21d5..3486a2104 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html @@ -17,7 +17,8 @@ documents. This feature is particularly useful for publishing content directly from your Trilium notes, making it accessible to others online.

    Prerequisites

    -

    To use the sharing feature, you must have a server installation of +

    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

      @@ -64,10 +65,11 @@

      The default shared page is basic in design, but you can customize it using your own CSS:

        -
      • Custom CSS: Link a CSS code note to - the shared page by adding a ~shareCss relation to the note. - If you want this style to apply to the entire subtree, make the label inheritable. - You can hide the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
      • +
      • Custom CSS: Link a CSS Code note to the shared page + by adding a ~shareCss relation to the note. If you want this + style to apply to the entire subtree, make the label inheritable. You can + hide the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
      • Omitting Default CSS: For extensive styling changes, use the #shareOmitDefaultCss label to avoid conflicts with Trilium's #shareIndex label, which will display a list of all shared notes.

        -

        Additional Options

        -
          -
        • Raw Note Sharing: Use the #shareRaw label - to share a note without any HTML wrapper.
        • -
        • Disallow Robot Indexing: Add the #shareDisallowRobotIndexing label - to prevent search engines from indexing the shared page by including a noindex, follow meta - tag and X-Robots-Tag: noindex header.
        • -
        • Shared Notes Index: For text notes with the #shareIndex label, - the content will display a list of all shared note roots.
        • -

        Limitations

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

          @@ -135,6 +127,84 @@ for (const attr of parentNote.attributes) {
        • Include Notes: Not supported.

        Some of these limitations may be addressed in future updates.

        +

        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.
        +
        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html index 48f7a1a18..49062292e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html @@ -51,7 +51,7 @@

        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, + 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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspace_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspaces_image.png similarity index 100% rename from src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspace_image.png rename to src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/1_Workspaces_image.png diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html index 785c84979..cad1ec4a3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html @@ -22,7 +22,7 @@

        In addition to showing only this subtree, this also narrows both full text search and “jump to note” to just notes present in hoisted subtree.

        -

        See also Workspace which extends this feature.

        +

        See also Workspace which extends this feature.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.html deleted file mode 100644 index b55421d33..000000000 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - Workspace - - - -
        -

        Workspace

        - -
        -

        Workspace is a concept built up on top of note hoisting. - It is based on the idea that a user has several distinct spheres of interest. - An example might be "Personal" and "Work", these two spheres are quite - distinct and don't interact together. When I focus on Work, I don't really - care about personal notes.

        -

        So far workspace consists of these features:

        -
          -
        • -

          note hoisting - you can "zoom" into - a workspace subtree to focus only on the relevant notes

          -
        • -
        • -

          easy entering of workspace: 

          -

          - -

          -
        • -
        • -

          visual identification of workspace in tabs: -
          - -

          -
        • -
        -

        How to use workspaces

        -

        Let's say you have identified the workspaces and their subtrees. Define - on the root of this subtree following labels:

        -
          -
        • #workspace - Marks this note as a workspace, button to enter - the workspace is controlled by this
        • -
        • #workspaceIconClass - controls the box icon to be displayed - in the tree and tabs, example bx bx-home. See https://boxicons.com/ -
        • -
        • #workspaceTabBackgroundColor - Background color of the tab, - use any CSS color format, e.g. "lightblue" or "#ddd". See https://www.w3schools.com/cssref/css_colors.asp.
        • -
        • #workspaceCalendarRoot - marking a note with this label will - define a new per-workspace calendar. If there's no such note, the global - calendar will be used.
        • -
        • #workspaceTemplate - This note will appear in the selection - of available templates when creating a new note, but only when you are - currently hoisted into a workspace containing this template.
        • -
        -
        -
        - - - \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html new file mode 100644 index 000000000..8248864a1 --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html @@ -0,0 +1,96 @@ + + + + + + + + Workspaces + + + +
        +

        Workspaces

        + +
        +

        Workspace is a concept built up on top of note hoisting. + It is based on the idea that a user has several distinct spheres of interest. + An example might be "Personal" and "Work", these two spheres are quite + distinct and don't interact together. When I focus on Work, I don't really + care about personal notes.

        +

        So far workspace consists of these features:

        +
          +
        • note hoisting - you can "zoom" into + a workspace subtree to focus only on the relevant notes
        • +
        • +

          easy entering of workspace: 

          +

          + +

          +
        • +
        • visual identification of workspace in tabs: +
          + +
        • +
        +

        Configuration

        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        LabelDescription
        workspace + Marks this note as a workspace, button to enter the workspace is controlled + by this
        workspaceIconClass + defines box icon CSS class which will be used in tab when hoisted to this + note
        workspaceTabBackgroundColor + CSS color used in the note tab when hoisted to this note, use any CSS + color format, e.g. "lightblue" or "#ddd". See https://www.w3schools.com/cssref/css_colors.asp.
        workspaceCalendarRoot + Marking a note with this label will define a new per-workspace calendar + for Day Notes. + If there's no such note, the global calendar will be used.
        workspaceTemplate + This note will appear in the selection of available template when creating + new note, but only when hoisted into a workspace containing this template
        workspaceSearchHome + new search notes will be created as children of this note when hoisted + to some ancestor of this workspace note
        workspaceInbox + default inbox location for new notes when hoisted to some ancestor of + this workspace note
        +
        +
        +
        + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces_image.png similarity index 100% rename from src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspace_image.png rename to src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces_image.png diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html index f0f4681f6..84d567f21 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html @@ -15,9 +15,16 @@

        When a note has one or more child notes, they will be listed at the end of the note for easy navigation.

        -

        Hide the note list for a given note

        -

        If the note list is not desireable for a particular note, simply apply - the hideChildrenOverview label.

        +

        Configuration

        +
          +
        • To hide the note list for a particular note, simply apply the hideChildrenOverview + label.
        • +
        • For some view types, such as Grid view, only a subset of notes will be + displayed and pagination can be used to navigate through all of them for + performance reasons. To adjust the number of notes per page, set pageSize to + the desired number.
        • +

        View types

        By default, the notes will be displayed in a grid, however there are also some other view types available.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html index de42d0c71..69b0c6224 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html @@ -95,7 +95,7 @@

        Allows defining a custom widget to be rendered inside the launcher. See  Widget Basics for more information.

        + href="../../Scripting/Custom%20Widgets/Widget%20Basics.html">Widget Basics for more information.

      • Spacers diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html index 9c0980f31..678b3d643 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html @@ -105,6 +105,9 @@

        Edited notes

        This section pops automatically when entering a day note and shows the notes that were edited that day.

        +

        It is possible to disable this behavior from settings, by going to  + Appearance settings and looking for the Ribbon widgets section.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Events.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Events.html deleted file mode 100644 index 4b9a0394e..000000000 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Events.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - Events - - - -
        -

        Events

        - -
        -

        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.

        -
          -
        • run -
            -
          • frontendStartup - executes on frontend upon startup
          • -
          • mobileStartup - executes on mobile frontend upon startup
          • -
          • backendStartup - executes on backend upon startup
          • -
          • hourly - executes once an hour on backend
          • -
          • daily - executes once a day on backend
          • -
          -
        • -
        -

        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).

        -
          -
        • runOnNoteCreation - executes when note is created on backend
        • -
        • 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)
        • -
        • 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 (since v0.62) - executes when a branch is - changed - either expanded status or prefix are changed.
        • -
        • runOnBranchDeletion - executes when a branch is delete. Branch - is a link between parent note and child note and is deleted e.g. when moving - note (old branch/link is deleted).
        • -
        • runOnChildNoteCreation - executes when new note is created - under this note
        • -
        • runOnAttributeCreation - executes when new attribute is created - under this note
        • -
        • runOnAttributeChange - executes when attribute is changed - under this note
        • -
        -
        -
        - - - \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html index 378171c93..2281ab37e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html @@ -25,7 +25,7 @@

        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, + Additionally, for workspaces, you can use the #workspaceSearchHome label to specify a storage location for saved searches within that workspace.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html index de90b4480..d07d5bd82 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html @@ -16,7 +16,7 @@

        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 + 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 @@ -58,9 +58,9 @@

        You can see more scripting with explanation in Advanced Showcases.

        Events

        -

        See Events.

        +

        See Events.

        Script API

        -

        See Script API.

        +

        See Script API.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Custom Widgets.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html similarity index 94% rename from src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Custom Widgets.html rename to src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html index b4a0c9a3e..240eeb80d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Custom Widgets.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets.html @@ -3,7 +3,7 @@ - + Custom Widgets diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Widget Basics.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html similarity index 86% rename from src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Widget Basics.html rename to src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html index a065f635d..07f4db347 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Widget Basics.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html @@ -3,7 +3,7 @@ - + Widget Basics @@ -33,15 +33,15 @@ module.exports = new MyWidget();
        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. Assign the #widget attribute to + the note.
        6. Restart Trilium or reload the window.

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

        + 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 = ``;
         
        @@ -84,7 +84,7 @@ module.exports = new MyWidget();
        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 {
        +          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"; }
             
        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html
        similarity index 91%
        rename from src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget.html
        rename to src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html
        index 14543eb17..982da8bd3 100644
        --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Custom Widgets/Word count widget.html	
        +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html	
        @@ -3,7 +3,7 @@
           
             
             
        -    
        +    
             
             Word count widget
           
        @@ -15,9 +15,9 @@
               
        -

        Create a Code note +

        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.
        @@ -93,7 +93,7 @@ class WordCountWidget extends api.NoteContextAwareWidget {
         }
         
         module.exports = new WordCountWidget();
        -

        After you make changes it is necessary to restart Trilium so +

        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:

        + + + + + + + Events + + + +
        +

        Events

        + +
        +

        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/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html index 6c3581fa3..1ad9475ba 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html @@ -18,7 +18,7 @@ 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.

        + 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 @@ -95,7 +95,7 @@ notes.

      Tutorial

      -

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

      +

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

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Script API.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html similarity index 94% rename from src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Script API.html rename to src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html index 377897aca..a95a5ed74 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code/Script API.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API.html @@ -3,7 +3,7 @@ - + Script API diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html new file mode 100644 index 000000000..edc416b3e --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Backend API.html @@ -0,0 +1,19 @@ + + + + + + + + Backend API + + + +
      +

      Backend API

      + +
      +
      + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html new file mode 100644 index 000000000..e869af459 --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Script API/Frontend API/FNote.html @@ -0,0 +1,19 @@ + + + + + + + + FNote + + + +
      +

      FNote

      + +
      +
      + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html index 8b7b264d0..43580ab7a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html @@ -31,7 +31,7 @@ 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, + 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.

      diff --git a/src/public/app/doc_notes/en/User Guide/navigation.html b/src/public/app/doc_notes/en/User Guide/navigation.html index c24239bde..0a19e04f1 100644 --- a/src/public/app/doc_notes/en/User Guide/navigation.html +++ b/src/public/app/doc_notes/en/User Guide/navigation.html @@ -173,8 +173,8 @@
    1. Note Hoisting
    2. -
    3. Workspace +
    4. Workspaces
    5. Similar Notes @@ -254,19 +254,6 @@
    6. Code -
    7. Saved Search
    8. @@ -399,6 +386,11 @@
    9. Configuration (config.ini or environment variables) +
    10. Bulk actions
    11. @@ -435,8 +427,6 @@ From 190cff6f7e84fe28944f1a00ed75441ab393f52d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 12:22:48 +0300 Subject: [PATCH 07/69] feat(docs): improve description of labels and relations --- docs/User Guide/!!!meta.json | 577 +++++++++++------- .../User Guide/Advanced Usage/Attributes.md | 18 +- .../Attributes/Attribute Inheritance.md | 6 +- .../{Attribute Reference.md => Labels.md} | 42 +- .../Advanced Usage/Attributes/Relations.md | 37 ++ .../Advanced Usage/Attributes_image.png | Bin 36465 -> 33045 bytes .../app/doc_notes/en/User Guide/!!!meta.json | 577 +++++++++++------- .../User Guide/Advanced Usage/Attributes.html | 30 +- .../Attributes/Attribute Inheritance.html | 15 +- .../{Attribute Reference.html => Labels.html} | 124 ++-- .../Advanced Usage/Attributes/Relations.html | 145 +++++ .../Advanced Usage/Attributes_image.png | Bin 36465 -> 33045 bytes .../doc_notes/en/User Guide/navigation.html | 7 +- 13 files changed, 977 insertions(+), 601 deletions(-) rename docs/User Guide/User Guide/Advanced Usage/Attributes/{Attribute Reference.md => Labels.md} (81%) create mode 100644 docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md rename src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/{Attribute Reference.html => Labels.html} (81%) create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index b4f83e5be..58bdb0538 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -6732,25 +6732,347 @@ { "type": "relation", "name": "internalLink", - "value": "Ucmcs8SfrYdD", + "value": "HI6GBBIduIgv", "isInheritable": false, "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 130 } ], "format": "markdown", "dataFileName": "Attributes.md", "attachments": [ { - "attachmentId": "P4eRVtGFoHh2", + "attachmentId": "4YqnV7iugVCJ", "title": "image.png", "role": "image", - "mime": "image/jpg", + "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": "BlN9DFI679QC", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 30 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-hash", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "vZWERwf8U3nx", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "l0tKav7yLHGF", + "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": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AlhDUqhENtH7", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pKK96zzmvBGf", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WFGzWeUK6arS", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "J5Ex1ZrMbyJ6", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "d3fAXQ2diepH", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MgibgPcfeuGz", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help_YKWqdJhzi2VY", + "isInheritable": false, + "position": 210 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 220 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 230 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iRwzGnHPzonm", + "isInheritable": false, + "position": 240 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BCkXAVs63Ttv", + "isInheritable": false, + "position": 250 + }, + { + "type": "relation", + "name": "internalLink", + "value": "47ZrP6FNuoG8", + "isInheritable": false, + "position": 260 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 270 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", + "isInheritable": false, + "position": 280 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 290 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AxshuNRegLAv", + "isInheritable": false, + "position": 300 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 310 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 320 + } + ], + "format": "markdown", + "dataFileName": "Labels.md", + "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": "label", + "name": "iconClass", + "value": "bx bx-transfer", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GPERMystNGTB", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "HcABDtFCkbFN", + "isInheritable": false, + "position": 80 + } + ], + "format": "markdown", + "dataFileName": "Relations.md", + "attachments": [] + }, { "isClone": false, "noteId": "bwZpz2ajCEwO", @@ -6761,7 +7083,7 @@ "bwZpz2ajCEwO" ], "title": "Attribute Inheritance", - "notePosition": 10, + "notePosition": 30, "prefix": null, "isExpanded": false, "type": "text", @@ -6787,6 +7109,20 @@ "value": "bx bx-list-plus", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "HI6GBBIduIgv", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 50 } ], "format": "markdown", @@ -6803,7 +7139,7 @@ "OFXdgB2nNk1F" ], "title": "Promoted Attributes", - "notePosition": 20, + "notePosition": 40, "prefix": null, "isExpanded": false, "type": "text", @@ -6858,237 +7194,6 @@ "dataFileName": "Promoted Attributes_promot.png" } ] - }, - { - "isClone": false, - "noteId": "Ucmcs8SfrYdD", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5", - "Ucmcs8SfrYdD" - ], - "title": "Attribute Reference", - "notePosition": 30, - "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": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WFGzWeUK6arS", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MgibgPcfeuGz", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "pKK96zzmvBGf", - "isInheritable": false, - "position": 220 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AlhDUqhENtH7", - "isInheritable": false, - "position": 230 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 240 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 250 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_help_YKWqdJhzi2VY", - "isInheritable": false, - "position": 260 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 270 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 280 - }, - { - "type": "relation", - "name": "internalLink", - "value": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 290 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 300 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GPERMystNGTB", - "isInheritable": false, - "position": 310 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AxshuNRegLAv", - "isInheritable": false, - "position": 320 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 330 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-book-bookmark", - "isInheritable": false, - "position": 340 - } - ], - "format": "markdown", - "dataFileName": "Attribute Reference.md", - "attachments": [] } ] }, diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes.md b/docs/User Guide/User Guide/Advanced Usage/Attributes.md index 9e61ff648..18b556bd1 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes.md @@ -1,12 +1,12 @@ # Attributes In Trilium, attributes are key-value pairs assigned to notes, providing additional metadata or functionality. There are two primary types of attributes: -1. **Labels**: Simple key-value text records -2. **Relations**: Named links to other notes +1. Labels: Simple key-value text records +2. Relations: Named links to other notes These attributes play a crucial role in organizing, categorising, and enhancing the functionality of notes. -![](Attributes_image.png) +
      ## Labels @@ -18,26 +18,22 @@ Labels in Trilium can be used for a variety of purposes: Labels are also searchable, enhancing note retrieval. -### Common Labels for Advanced Configuration - -See the corresponding section in Attribute Reference for a comprehensive list of attributes. +For more information, including predefined labels, see Labels. ## Relations Relations define connections between notes, similar to links. -### Uses +Uses: * **Metadata Relationships**: For example, linking a book note to an author note * **Scripting**: Attaching scripts to events or conditions related to the note -### Common Relations - -See the corresponding section in Attribute Reference for a comprehensive list of relations. +For more information, including a list of predefined relations, see Relations. ## Multiplicity -Attributes in Trilium can be "multivalued", meaning multiple attributes with the same name can coexist. +Attributes in Trilium can be "multi-valued", meaning multiple attributes with the same name can co-exist. ## Attribute Definitions and Promoted Attributes diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md index 28e1baf1f..a96b04b99 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md @@ -1,11 +1,13 @@ # Attribute Inheritance +Inheritance refers to the process of having a [label](Labels.md) or a [relation](Relations.md) shared across multiple notes, generally in parent-child relations (or anywhere if using templates). + ## 1\. 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. -### Example Use Case +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. -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. +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. ## 2\. Copying Inheritance diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md similarity index 81% rename from docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md rename to docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md index 1edca7486..e34003a54 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md @@ -1,14 +1,36 @@ -# Attribute Reference -## Labels +# Labels +A label is an [attribute](../Attributes.md) of a note which has a name and optionally a value.  + +## Creating a label using the visual editor + +1. Go to the _Owned Attributes_ section in the Ribbon. +2. Press the + button (_Add new attribute_) to the right. +3. Select _Add new label_ for the relation. + +> [!TIP] +> If you prefer keyboard shortcuts, press Alt+L while focused on a note or in the _Owned Attributes_ section to display the visual editor. + +While in the visual editor: + +* Set the desired name +* Optionally, set the value of the label. Labels can exist without a value. +* Check _Inheritable_ if the label should be inherited by the child notes as well. See Attribute Inheritance for more information. + +## Creating a label manually + +In the _Owned Attributes_ section in the Ribbon: + +* To create a label called `myLabel` with no value, simply type `#myLabel`. +* To create a label called `myLabel` with a value `value`, simply type `#myLabel=value`. +* If the value contains spaces, then the text must be quoted: `#myLabel="Hello world"`. +* If the string contains quotes (regardless of whether it has spaces), then the text must be quoted with apostrophes instead: `#myLabel='Hello "world"'`. +* To create an inheritable label called `myLabel`, simply write `#myLabel(inheritable)` for no value or `#myLabel(inheritable)=value` if there is a value. + +## Predefined labels + +This is a list of labels that Trilium natively supports. > [!TIP] > Some labels presented here end with a `*`. That means that there are multiple labels with the same prefix, consult the specific page linked in the description of that label for more information. -
      LabelDescription
      disableVersioningDisables 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.
      versioningLimitLimits the maximum number of Note Revisions for a particular note, overriding the global settings.
      calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
      archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
      excludeFromExportExcludes this note and its children when exporting.
      run, runOnInstance, runAtHourSee Events.
      disableInclusionScripts 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
      sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
      topIf sorted is applied to the parent note, keeps given note on top in its parent.
      hidePromotedAttributesHide Promoted Attributes on this note. Generally useful when defining inherited attributes, but the parent note doesn't need them.
      readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
      autoReadOnlyDisabledDisables automatic read-only mode for the given note.
      appCssMarks 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.
      appThemeMarks CSS notes which are full Trilium themes and are thus available in Trilium options. See Theme development for more information.
      appThemeBaseSet 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.
      cssClassValue 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.
      iconClassvalue 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.
      pageSizeSpecifies the number of items per page in Note List.
      customRequestHandlerSee Custom Request Handler.
      customResourceProviderSee Custom Resource Providers.
      widgetMarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
      searchHomeNew search notes will be created as children of this note (see Saved Search).
      workspace and related attributesSee Workspaces.
      inboxdefault 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.
      sqlConsoleHomeDefault location of SQL Console notes
      bookmarkedIndicates this note is a bookmark.
      bookmarkFolderNote 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, hideRelationsComma 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.

      templateThis note will appear in the selection of available template when creating new note. See Templates for more information.
      tocControls 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.
      colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
      keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
      keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
      executeButtonTitle of the button which will execute the current code note
      executeDescriptionLonger description of the current code note displayed together with the execute button
      excludeFromNoteMapNotes with this label will be hidden from the Note Map.
      newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
      hideHighlightWidgetHides the Highlights list widget
      hideChildrenOverviewHides the Note List for that particular note.
      printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
      printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
      geolocationIndicates the latitude and longitude of a note, to be displayed in a Geo Map.
      calendar:*Defines specific options for the Calendar View.
      viewTypeSets the view of child notes (e.g. grid or list). See Note List for more information.
      - -## Relations - -> [!TIP] -> Some relations presented here end with a `*`. That means that there are multiple relations with the same prefix, consult the specific page linked in the description of that relation for more information. - -
      LabelDescription
      runOn*See Events
      templatenote'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.
      inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
      renderNotenotes 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_relationtarget of this relation will be executed and rendered as a widget in the sidebar
      shareCssCSS 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.
      shareJsJavaScript 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.
      shareTemplateEmbedded 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.
      shareFaviconFavicon 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 +
      LabelDescription
      disableVersioningDisables 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.
      versioningLimitLimits the maximum number of Note Revisions for a particular note, overriding the global settings.
      calendarRootMarks the note which should be used as root for Day Notes. Only one should be marked as such.
      archivedHides notes from default search results and dialogs. Archived notes can optionally be hidden in the Note Tree.
      excludeFromExportExcludes this note and its children when exporting.
      run, runOnInstance, runAtHourSee Events.
      disableInclusionScripts 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
      sortFoldersFirstIf sorted is applied, folders (notes with children) will be sorted as a group at the top, and the rest will be sorted.
      topIf sorted is applied to the parent note, keeps given note on top in its parent.
      hidePromotedAttributesHide Promoted Attributes on this note. Generally useful when defining inherited attributes, but the parent note doesn't need them.
      readOnlyMarks a note to be always be read-only, if it's a supported note (text, code, mermaid).
      autoReadOnlyDisabledDisables automatic read-only mode for the given note.
      appCssMarks 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.
      appThemeMarks CSS notes which are full Trilium themes and are thus available in Trilium options. See Theme development for more information.
      appThemeBaseSet 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.
      cssClassValue 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.
      iconClassvalue 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.
      pageSizeSpecifies the number of items per page in Note List.
      customRequestHandlerSee Custom Request Handler.
      customResourceProviderSee Custom Resource Providers.
      widgetMarks this note as a custom widget which will be added to the Trilium component tree. See Custom Widgets for more information.
      searchHomeNew search notes will be created as children of this note (see Saved Search).
      workspace and related attributesSee Workspaces.
      inboxdefault 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.
      sqlConsoleHomeDefault location of SQL Console notes
      bookmarkedIndicates this note is a bookmark.
      bookmarkFolderNote 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, hideRelationsComma 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.

      templateThis note will appear in the selection of available template when creating new note. See Templates for more information.
      tocControls 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.
      colordefines color of the note in note tree, links etc. Use any valid CSS color value like 'red' or #a13d5f
      keyboardShortcutDefines a keyboard shortcut which will immediately jump to this note. Example: 'ctrl+alt+e'. Requires frontend reload for the change to take effect.
      keepCurrentHoistingOpening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.
      executeButtonTitle of the button which will execute the current code note
      executeDescriptionLonger description of the current code note displayed together with the execute button
      excludeFromNoteMapNotes with this label will be hidden from the Note Map.
      newNotesOnTopNew notes will be created at the top of the parent note, not on the bottom.
      hideHighlightWidgetHides the Highlights list widget
      hideChildrenOverviewHides the Note List for that particular note.
      printLandscapeWhen exporting to PDF, changes the orientation of the page to landscape instead of portrait.
      printPageSizeWhen exporting to PDF, changes the size of the page. Supported values: A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger.
      geolocationIndicates the latitude and longitude of a note, to be displayed in a Geo Map.
      calendar:*Defines specific options for the Calendar View.
      viewTypeSets 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/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md new file mode 100644 index 000000000..754351a78 --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md @@ -0,0 +1,37 @@ +# Relations +A relation is similar to a [label](Labels.md), but instead of having a text value it refers to another note. + +## Creating a relation using the visual editor + +1. Go to the _Owned Attributes_ section in the Ribbon. +2. Press the + button (_Add new attribute_) to the right. +3. Select _Add new relation_ for the relation. + +> [!TIP] +> If you prefer keyboard shortcuts, press Alt+L while focused on a note or in the _Owned Attributes_ section to display the visual editor. + +While in the visual editor: + +* Set the desired name +* Set the Target note (the note to point to). Unlike labels, relations cannot exist with a target note. +* Check _Inheritable_ if the label should be inherited by the child notes as well. See Attribute Inheritance for more information. + +## Creating a relation manually + +In the _Owned Attributes_ section in the Ribbon: + +* To create a relation called `myRelation`: + * First type `~myRelation=@` . + * After this, an autocompletion box should appear. + * Type the title of the note to point to and press Enter to confirm (or click the desired note). + * Alternatively copy a note from the Note Tree and paste it after the `=` sign (without the `@` , in this case). +* To create an inheritable relation, follow the same steps as previously described but instead of `~myRelation` write `~myRelation(inheritable)`. + +## Predefined relations + +These relations are supported and used internally by Trilium. + +> [!TIP] +> Some relations presented here end with a `*`. That means that there are multiple relations with the same prefix, consult the specific page linked in the description of that relation for more information. + +
      LabelDescription
      runOn*See Events
      templatenote'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.
      inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
      renderNotenotes 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_relationtarget of this relation will be executed and rendered as a widget in the sidebar
      shareCssCSS 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.
      shareJsJavaScript 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.
      shareTemplateEmbedded 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.
      shareFaviconFavicon 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/docs/User Guide/User Guide/Advanced Usage/Attributes_image.png b/docs/User Guide/User Guide/Advanced Usage/Attributes_image.png index 2ea2690121cc87cb0522acd265c8337c59ece913..bb52b50011e8effa9b9d925a5e9dd8511845830b 100644 GIT binary patch literal 33045 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

      =qg4kN+)AO?_Wd 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�~ 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 literal 36465 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 diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index a5fbfdeb4..3e8fc5011 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -6732,25 +6732,347 @@ { "type": "relation", "name": "internalLink", - "value": "Ucmcs8SfrYdD", + "value": "HI6GBBIduIgv", "isInheritable": false, "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 130 } ], "format": "html", "dataFileName": "Attributes.html", "attachments": [ { - "attachmentId": "P4eRVtGFoHh2", + "attachmentId": "4YqnV7iugVCJ", "title": "image.png", "role": "image", - "mime": "image/jpg", + "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": "BlN9DFI679QC", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 30 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-hash", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "vZWERwf8U3nx", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "l0tKav7yLHGF", + "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": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AlhDUqhENtH7", + "isInheritable": false, + "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "pKK96zzmvBGf", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "WFGzWeUK6arS", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0ESUbbAxVnoK", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "J5Ex1ZrMbyJ6", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "d3fAXQ2diepH", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MgibgPcfeuGz", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help_YKWqdJhzi2VY", + "isInheritable": false, + "position": 210 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 220 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 230 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iRwzGnHPzonm", + "isInheritable": false, + "position": 240 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BCkXAVs63Ttv", + "isInheritable": false, + "position": 250 + }, + { + "type": "relation", + "name": "internalLink", + "value": "47ZrP6FNuoG8", + "isInheritable": false, + "position": 260 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 270 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BFvAtE74rbP6", + "isInheritable": false, + "position": 280 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 290 + }, + { + "type": "relation", + "name": "internalLink", + "value": "AxshuNRegLAv", + "isInheritable": false, + "position": 300 + }, + { + "type": "relation", + "name": "internalLink", + "value": "81SGnPGMk7Xc", + "isInheritable": false, + "position": 310 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xWbu3jpNWapp", + "isInheritable": false, + "position": 320 + } + ], + "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": "label", + "name": "iconClass", + "value": "bx bx-transfer", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwZpz2ajCEwO", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "GPERMystNGTB", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "HcABDtFCkbFN", + "isInheritable": false, + "position": 80 + } + ], + "format": "html", + "dataFileName": "Relations.html", + "attachments": [] + }, { "isClone": false, "noteId": "bwZpz2ajCEwO", @@ -6761,7 +7083,7 @@ "bwZpz2ajCEwO" ], "title": "Attribute Inheritance", - "notePosition": 10, + "notePosition": 30, "prefix": null, "isExpanded": false, "type": "text", @@ -6787,6 +7109,20 @@ "value": "bx bx-list-plus", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "HI6GBBIduIgv", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 50 } ], "format": "html", @@ -6803,7 +7139,7 @@ "OFXdgB2nNk1F" ], "title": "Promoted Attributes", - "notePosition": 20, + "notePosition": 40, "prefix": null, "isExpanded": false, "type": "text", @@ -6858,237 +7194,6 @@ "dataFileName": "Promoted Attributes_promot.png" } ] - }, - { - "isClone": false, - "noteId": "Ucmcs8SfrYdD", - "notePath": [ - "pOsGYCXsbNQG", - "tC7s2alapj8V", - "zEY4DaJG4YT5", - "Ucmcs8SfrYdD" - ], - "title": "Attribute Reference", - "notePosition": 30, - "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": "bwZpz2ajCEwO", - "isInheritable": false, - "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "vZWERwf8U3nx", - "isInheritable": false, - "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 40 - }, - { - "type": "relation", - "name": "internalLink", - "value": "OFXdgB2nNk1F", - "isInheritable": false, - "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 60 - }, - { - "type": "relation", - "name": "internalLink", - "value": "WFGzWeUK6arS", - "isInheritable": false, - "position": 70 - }, - { - "type": "relation", - "name": "internalLink", - "value": "J5Ex1ZrMbyJ6", - "isInheritable": false, - "position": 80 - }, - { - "type": "relation", - "name": "internalLink", - "value": "d3fAXQ2diepH", - "isInheritable": false, - "position": 90 - }, - { - "type": "relation", - "name": "internalLink", - "value": "MgibgPcfeuGz", - "isInheritable": false, - "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BFvAtE74rbP6", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "bdUJEHsAPYQR", - "isInheritable": false, - "position": 120 - }, - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 130 - }, - { - "type": "relation", - "name": "internalLink", - "value": "HcABDtFCkbFN", - "isInheritable": false, - "position": 140 - }, - { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", - "isInheritable": false, - "position": 160 - }, - { - "type": "relation", - "name": "internalLink", - "value": "u3YFHC9tQlpm", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "R9pX4DGra2Vt", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "pKK96zzmvBGf", - "isInheritable": false, - "position": 220 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AlhDUqhENtH7", - "isInheritable": false, - "position": 230 - }, - { - "type": "relation", - "name": "internalLink", - "value": "0ESUbbAxVnoK", - "isInheritable": false, - "position": 240 - }, - { - "type": "relation", - "name": "internalLink", - "value": "m523cpzocqaD", - "isInheritable": false, - "position": 250 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_help_YKWqdJhzi2VY", - "isInheritable": false, - "position": 260 - }, - { - "type": "relation", - "name": "internalLink", - "value": "iRwzGnHPzonm", - "isInheritable": false, - "position": 270 - }, - { - "type": "relation", - "name": "internalLink", - "value": "BCkXAVs63Ttv", - "isInheritable": false, - "position": 280 - }, - { - "type": "relation", - "name": "internalLink", - "value": "47ZrP6FNuoG8", - "isInheritable": false, - "position": 290 - }, - { - "type": "relation", - "name": "internalLink", - "value": "81SGnPGMk7Xc", - "isInheritable": false, - "position": 300 - }, - { - "type": "relation", - "name": "internalLink", - "value": "GPERMystNGTB", - "isInheritable": false, - "position": 310 - }, - { - "type": "relation", - "name": "internalLink", - "value": "AxshuNRegLAv", - "isInheritable": false, - "position": 320 - }, - { - "type": "relation", - "name": "internalLink", - "value": "xWbu3jpNWapp", - "isInheritable": false, - "position": 330 - }, - { - "type": "label", - "name": "iconClass", - "value": "bx bx-book-bookmark", - "isInheritable": false, - "position": 340 - } - ], - "format": "html", - "dataFileName": "Attribute Reference.html", - "attachments": [] } ] }, diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html index 9f715ddee..4e579189d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html @@ -16,14 +16,17 @@

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

        -
      1. Labels: Simple key-value text records
      2. -
      3. Relations: Named links to other notes
      4. +
      5. Labels: Simple + key-value text records
      6. +
      7. Relations: + Named links to other notes

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

      -

      - -

      +
      + +

      Labels

      Labels in Trilium can be used for a variety of purposes:

        @@ -36,24 +39,23 @@ such as the "weight" attribute in the Weight Tracker.

      Labels are also searchable, enhancing note retrieval.

      -

      Common Labels for Advanced Configuration

      -

      See the corresponding section in Attribute Reference for - a comprehensive list of attributes.

      +

      For more information, including predefined labels, see Labels.

      Relations

      Relations define connections between notes, similar to links.

      -

      Uses

      +

      Uses:

      • Metadata Relationships: For example, linking a book note to an author note
      • Scripting: Attaching scripts to events or conditions related to the note
      -

      Common Relations

      -

      See the corresponding section in Attribute Reference for - a comprehensive list of relations.

      +

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

      Multiplicity

      -

      Attributes in Trilium can be "multivalued", meaning multiple attributes - with the same name can coexist.

      +

      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 Attribute Inheritance

      +

      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).

      1. 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.

      -

      Example Use Case

      -

      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.

      +

      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.

      2. 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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html similarity index 81% rename from src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html rename to src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html index ebf750601..c644d9513 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Reference.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html @@ -5,15 +5,51 @@ - Attribute Reference + Labels

      -

      Attribute Reference

      +

      Labels

      -

      Labels

      +

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

      +

      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:

      +
        +
      • Set the desired name
      • +
      • Optionally, set the value of the label. Labels can exist without a value.
      • +
      • Check Inheritable if the label should be inherited by the child + notes as well. See Attribute Inheritance for + more information.
      • +
      +

      Creating a label manually

      +

      In the Owned Attributes section in the Ribbon:

      +
        +
      • To create a label called myLabel with no value, simply type #myLabel.
      • +
      • To create a label called myLabel with a value value, + simply type #myLabel=value.
      • +
      • If the value contains spaces, then the text must be quoted: #myLabel="Hello world".
      • +
      • If the string contains quotes (regardless of whether it has spaces), then + the text must be quoted with apostrophes instead: #myLabel='Hello "world"'.
      • +
      • To create an inheritable label called myLabel, simply write #myLabel(inheritable) for + no value or #myLabel(inheritable)=value if there is a value.
      • +
      +

      Predefined labels

      +

      This is a list of labels that Trilium natively supports.

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html new file mode 100644 index 000000000..1148c6d8c --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html @@ -0,0 +1,145 @@ + + + + + + + + Relations + + + +
      +

      Relations

      + +
      +

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

      +

      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:

      +
        +
      • Set the desired name
      • +
      • Set the Target note (the note to point to). Unlike labels, relations cannot + exist with a target note.
      • +
      • Check Inheritable if the label should be inherited by the child + notes as well. See Attribute Inheritance for + more information.
      • +
      +

      Creating a relation manually

      +

      In the Owned Attributes section in the Ribbon:

      +
        +
      • To create a relation called myRelation: +
          +
        • First type ~myRelation=@ .
        • +
        • After this, an autocompletion box should appear.
        • +
        • Type the title of the note to point to and press Enter to confirm + (or click the desired note).
        • +
        • Alternatively copy a note from the Note Tree and + paste it after the = sign (without the @ , in this + case).
        • +
        +
      • +
      • To create an inheritable relation, follow the same steps as previously + described but instead of ~myRelation write ~myRelation(inheritable).
      • +
      +

      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/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes_image.png index 2ea2690121cc87cb0522acd265c8337c59ece913..bb52b50011e8effa9b9d925a5e9dd8511845830b 100644 GIT binary patch literal 33045 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

      =qg4kN+)AO?_Wd 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�~ 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 literal 36465 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 diff --git a/src/public/app/doc_notes/en/User Guide/navigation.html b/src/public/app/doc_notes/en/User Guide/navigation.html index 0a19e04f1..e182e8de3 100644 --- a/src/public/app/doc_notes/en/User Guide/navigation.html +++ b/src/public/app/doc_notes/en/User Guide/navigation.html @@ -319,15 +319,16 @@

      • Attributes
      • Templates From ec5025d7fde1ac36a5cd2130feea0ec806ef9fc2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 12:30:37 +0300 Subject: [PATCH 08/69] feat(docs): clarify attribute use cases --- docs/User Guide/!!!meta.json | 14 +++++------ .../User Guide/Advanced Usage/Attributes.md | 15 ++---------- .../Advanced Usage/Attributes/Labels.md | 6 +++++ .../Advanced Usage/Attributes/Relations.md | 5 ++++ .../app/doc_notes/en/User Guide/!!!meta.json | 14 +++++------ .../User Guide/Advanced Usage/Attributes.html | 24 ++++--------------- .../Advanced Usage/Attributes/Labels.html | 9 +++++++ .../Advanced Usage/Attributes/Relations.html | 7 ++++++ 8 files changed, 48 insertions(+), 46 deletions(-) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 58bdb0538..3fbecedd7 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -6694,13 +6694,6 @@ "type": "text", "mime": "text/markdown", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 10 - }, { "type": "relation", "name": "internalLink", @@ -6990,6 +6983,13 @@ "value": "xWbu3jpNWapp", "isInheritable": false, "position": 320 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R7abl2fc6Mxi", + "isInheritable": false, + "position": 330 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes.md b/docs/User Guide/User Guide/Advanced Usage/Attributes.md index 18b556bd1..a5feed5ef 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes.md @@ -10,24 +10,13 @@ These attributes play a crucial role in organizing, categorising, and enhancing ## Labels -Labels in Trilium can be used for a variety of purposes: - -* **Metadata**: Assign labels with optional values for categorization, such as `#year=1999`, `#genre="sci-fi"`, or `#author="Neal Stephenson"` -* **Configuration**: Labels can configure advanced features or settings -* **Scripts and Plugins**: Used to tag notes with special metadata, such as the "weight" attribute in the Weight Tracker. - -Labels are also searchable, enhancing note retrieval. +Labels in Trilium 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. ## Relations -Relations define connections between notes, similar to links. - -Uses: - -* **Metadata Relationships**: For example, linking a book note to an author note -* **Scripting**: Attaching scripts to events or conditions related to the note +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. diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md index e34003a54..4e6cc3190 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md @@ -1,6 +1,12 @@ # Labels A label is an [attribute](../Attributes.md) of a note which has a name and optionally a value.  +## Common use cases + +* **Metadata**: Assign labels with optional values for categorization, such as `#year=1999`, `#genre="sci-fi"`, or `#author="Neal Stephenson"`. +* **Configuration**: Labels can configure advanced features or settings (see reference below). +* **Scripts and Plugins**: Used to tag notes with special metadata, such as the "weight" attribute in the Weight Tracker. + ## Creating a label using the visual editor 1. Go to the _Owned Attributes_ section in the Ribbon. diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md index 754351a78..f12117494 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md @@ -1,6 +1,11 @@ # Relations A relation is similar to a [label](Labels.md), but instead of having a text value it refers to another note. +## Common use cases + +* **Metadata Relationships**: For example, linking a book note to an author note. +* **Scripting**: Attaching scripts to events or conditions related to the note. + ## Creating a relation using the visual editor 1. Go to the _Owned Attributes_ section in the Ribbon. diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 3e8fc5011..c8946fbaa 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -6694,13 +6694,6 @@ "type": "text", "mime": "text/markdown", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "R7abl2fc6Mxi", - "isInheritable": false, - "position": 10 - }, { "type": "relation", "name": "internalLink", @@ -6990,6 +6983,13 @@ "value": "xWbu3jpNWapp", "isInheritable": false, "position": 320 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R7abl2fc6Mxi", + "isInheritable": false, + "position": 330 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html index 4e579189d..e823fa2cb 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html @@ -28,28 +28,14 @@ height="146">

        Labels

        -

        Labels in Trilium can be used for a variety of purposes:

        -
          -
        • Metadata: Assign labels with optional values for categorization, - such as #year=1999, #genre="sci-fi", or #author="Neal Stephenson" -
        • -
        • Configuration: Labels can configure advanced features - or settings
        • -
        • Scripts and Plugins: Used to tag notes with special metadata, - such as the "weight" attribute in the Weight Tracker.
        • -
        -

        Labels are also searchable, enhancing note retrieval.

        +

        Labels in Trilium 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.

        Relations

        -

        Relations define connections between notes, similar to links.

        -

        Uses:

        -
          -
        • Metadata Relationships: For example, linking a book note - to an author note
        • -
        • Scripting: Attaching scripts to events or conditions - related to the note
        • -
        +

        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.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html index c644d9513..be71de0a4 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html @@ -15,6 +15,15 @@

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

        +

        Common use cases

        +
          +
        • Metadata: Assign labels with optional values for categorization, + such as #year=1999, #genre="sci-fi", or #author="Neal Stephenson".
        • +
        • Configuration: Labels can configure advanced features + or settings (see reference below).
        • +
        • Scripts and Plugins: Used to tag notes with special metadata, + such as the "weight" attribute in the Weight Tracker.
        • +

        Creating a label using the visual editor

        1. Go to the Owned Attributes section in the 

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

          +

          Common use cases

          +
            +
          • Metadata Relationships: For example, linking a book note + to an author note.
          • +
          • Scripting: Attaching scripts to events or conditions + related to the note.
          • +

          Creating a relation using the visual editor

          1. Go to the Owned Attributes section in the  Date: Mon, 7 Apr 2025 12:35:52 +0300 Subject: [PATCH 09/69] feat(docs): clarify attribute prefixes --- docs/User Guide/!!!meta.json | 7 +++ .../User Guide/Advanced Usage/Attributes.md | 27 +++++----- .../Attributes/Attribute Inheritance.md | 6 +-- .../app/doc_notes/en/User Guide/!!!meta.json | 7 +++ .../User Guide/Advanced Usage/Attributes.html | 54 +++++++++++-------- .../Attributes/Attribute Inheritance.html | 6 +-- 6 files changed, 66 insertions(+), 41 deletions(-) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 3fbecedd7..017f7558f 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -6735,6 +6735,13 @@ "value": "Cq5X6iKQop6R", "isInheritable": false, "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "BlN9DFI679QC", + "isInheritable": false, + "position": 140 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes.md b/docs/User Guide/User Guide/Advanced Usage/Attributes.md index a5feed5ef..91db7e9b9 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes.md @@ -1,24 +1,25 @@ # Attributes +
            + In Trilium, attributes are key-value pairs assigned to notes, providing additional metadata or functionality. There are two primary types of attributes: -1.
            Labels: Simple key-value text records -2. Relations: Named links to other notes +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. 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. + These attributes play a crucial role in organizing, categorising, and enhancing the functionality of notes. -
            +## Viewing the list of attributes -## Labels +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. -Labels in Trilium 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. - -## Relations - -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. +In the list of attributes, labels are prefixed with the `#` character whereas relations are prefixed with the `~` character. ## Multiplicity diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md index a96b04b99..361f2bb7f 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md @@ -1,7 +1,7 @@ # Attribute Inheritance Inheritance refers to the process of having a [label](Labels.md) or a [relation](Relations.md) shared across multiple notes, generally in parent-child relations (or anywhere if using templates). -## 1\. Standard Inheritance +## 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. @@ -9,7 +9,7 @@ To make an attribute inheritable, simply use the visual editor for 
            1. Labels: Simple - key-value text records
            2. -
            3. Relations: - Named links to other notes
            4. -
            -

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

            -

            Labels

            -

            Labels in Trilium 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.

            -

            Relations

            -

            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.

            +

            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.

            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html index 9953f7fa3..e98dd9c1f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html @@ -16,7 +16,7 @@

            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).

            -

            1. Standard Inheritance

            +

            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 @@ -29,7 +29,7 @@

            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.

            -

            2. Copying Inheritance

            +

            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 @@ -47,7 +47,7 @@ newly created child notes will inherit the #exampleAttribute label. This can be useful for setting default properties for notes in a specific section.

            -

            3. Template Inheritance

            +

            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 From 6cc10a47d100b0f541be5866c7c53bd9e724f7d4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 13:29:22 +0300 Subject: [PATCH 10/69] feat(docs): document the hidden tree --- docs/User Guide/!!!meta.json | 274 +++++++++++++++++- .../Attributes/Attribute Inheritance.md | 23 +- .../Advanced Usage/Attributes/Labels.md | 4 +- .../Advanced Usage/Attributes/Relations.md | 4 +- .../User Guide/Advanced Usage/Hidden Notes.md | 18 ++ .../Advanced Usage/Hidden Notes_image.png | Bin 0 -> 30262 bytes .../UI Elements/Note Tree.md | 2 +- .../app/doc_notes/en/User Guide/!!!meta.json | 274 +++++++++++++++++- .../Attributes/Attribute Inheritance.html | 33 ++- .../Advanced Usage/Attributes/Labels.html | 9 +- .../Advanced Usage/Attributes/Relations.html | 11 +- .../Advanced Usage/Hidden Notes.html | 196 +++++++++++++ .../Advanced Usage/Hidden Notes_image.png | Bin 0 -> 30262 bytes .../UI Elements/Note Tree.html | 2 +- .../doc_notes/en/User Guide/navigation.html | 2 + 15 files changed, 797 insertions(+), 55 deletions(-) create mode 100644 docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md create mode 100644 docs/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 017f7558f..4fb1562db 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1199,13 +1199,6 @@ "isInheritable": false, "position": 20 }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 30 - }, { "type": "label", "name": "shareAlias", @@ -1219,6 +1212,13 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ivYnonVFBxbQ", + "isInheritable": false, + "position": 60 } ], "format": "markdown", @@ -7074,6 +7074,20 @@ "value": "HcABDtFCkbFN", "isInheritable": false, "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 100 } ], "format": "markdown", @@ -7096,13 +7110,6 @@ "type": "text", "mime": "text/markdown", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 10 - }, { "type": "label", "name": "shareAlias", @@ -7130,6 +7137,13 @@ "value": "Cq5X6iKQop6R", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 60 } ], "format": "markdown", @@ -8763,6 +8777,238 @@ "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": "x3i7MxGccDuM", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-hide", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wX4HbRucYSDD", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m1lbrzyKDaRB", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YKWqdJhzi2VY", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ivYnonVFBxbQ", + "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": "relation", + "name": "internalLink", + "value": "_globalNoteMap", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_sqlConsole", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_search", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_bulkAction", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_backendLog", + "isInheritable": false, + "position": 210 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_userHidden", + "isInheritable": false, + "position": 220 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_lbTplRoot", + "isInheritable": false, + "position": 230 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_share", + "isInheritable": false, + "position": 240 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_lbRoot", + "isInheritable": false, + "position": 250 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_options", + "isInheritable": false, + "position": 260 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_lbMobileRoot", + "isInheritable": false, + "position": 270 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help", + "isInheritable": false, + "position": 280 + }, + { + "type": "relation", + "name": "internalLink", + "value": "QEAPj01N5f7w", + "isInheritable": false, + "position": 290 + } + ], + "format": "markdown", + "dataFileName": "Hidden Notes.md", + "attachments": [ + { + "attachmentId": "PrFEZeM6sRl6", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Hidden Notes_image.png" + } + ] } ] }, diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md index 361f2bb7f..46c09879e 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.md @@ -9,19 +9,30 @@ To make an attribute inheritable, simply use the visual editor for . 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/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md index 4e6cc3190..514eb8132 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Labels.md @@ -1,9 +1,9 @@ # Labels -A label is an [attribute](../Attributes.md) of a note which has a name and optionally a value.  +A label is an [attribute](../Attributes.md) of a note which has a name and optionally a value. ## Common use cases -* **Metadata**: Assign labels with optional values for categorization, such as `#year=1999`, `#genre="sci-fi"`, or `#author="Neal Stephenson"`. +* **Metadata for personal use**: Assign labels with optional values for categorization, such as `#year=1999`, `#genre="sci-fi"`, or `#author="Neal Stephenson"`. This can be combined with Promoted Attributes to make their display more user-friendly. * **Configuration**: Labels can configure advanced features or settings (see reference below). * **Scripts and Plugins**: Used to tag notes with special metadata, such as the "weight" attribute in the Weight Tracker. diff --git a/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md index f12117494..66f73e5e9 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md +++ b/docs/User Guide/User Guide/Advanced Usage/Attributes/Relations.md @@ -3,7 +3,9 @@ A relation is similar to a [label](Labels.md), but instead of having a text valu ## Common use cases -* **Metadata Relationships**: For example, linking a book note to an author note. +* **Metadata Relationships for personal use**: For example, linking a book note to an author note. + This can be combined with Promoted Attributes to make their display more user-friendly. +* **Configuration**: For configuring some notes such as Render Note, or configuring Sharing or Templates (see the list below). * **Scripting**: Attaching scripts to events or conditions related to the note. ## Creating a relation using the visual editor diff --git a/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md b/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md new file mode 100644 index 000000000..ee2d2fd47 --- /dev/null +++ b/docs/User Guide/User Guide/Advanced Usage/Hidden Notes.md @@ -0,0 +1,18 @@ +# Hidden Notes +

            + +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 _Advanced_ → _Show 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 ActionThis section is used for Bulk actions.
            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 HiddenThis 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:

            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 GuideThis 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/docs/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png b/docs/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png new file mode 100644 index 0000000000000000000000000000000000000000..60c4c48022613b1f51d45d4673ce247e7bd3cb5a GIT binary patch literal 30262 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 literal 0 HcmV?d00001 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 a98732eb1..42efdb096 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 @@ -30,4 +30,4 @@ To do so, first select the note to start the selection with. Then hold Shift and ![](Note%20Tree_image.png) -In the right-click menu, operations such as Cut, Copy, Move to, Clone to or Delete will apply to all the selected notes. It is also possible to apply [Bulk actions](../../Advanced%20Usage/Bulk%20actions.md) to them. The rest of the options will not be available and will appear disabled in the menu. \ No newline at end of file +In the right-click menu, operations such as Cut, Copy, Move to, Clone to or Delete will apply to all the selected notes. It is also possible to apply Bulk actions to them. The rest of the options will not be available and will appear disabled in the menu. \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 7c7cf085a..50d85176a 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1199,13 +1199,6 @@ "isInheritable": false, "position": 20 }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 30 - }, { "type": "label", "name": "shareAlias", @@ -1219,6 +1212,13 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ivYnonVFBxbQ", + "isInheritable": false, + "position": 60 } ], "format": "html", @@ -7074,6 +7074,20 @@ "value": "HcABDtFCkbFN", "isInheritable": false, "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OFXdgB2nNk1F", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "R9pX4DGra2Vt", + "isInheritable": false, + "position": 100 } ], "format": "html", @@ -7096,13 +7110,6 @@ "type": "text", "mime": "text/markdown", "attributes": [ - { - "type": "relation", - "name": "internalLink", - "value": "KC1HB96bqqHX", - "isInheritable": false, - "position": 10 - }, { "type": "label", "name": "shareAlias", @@ -7130,6 +7137,13 @@ "value": "Cq5X6iKQop6R", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 60 } ], "format": "html", @@ -8763,6 +8777,238 @@ "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": "x3i7MxGccDuM", + "isInheritable": false, + "position": 10 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-hide", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "Cq5X6iKQop6R", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wX4HbRucYSDD", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m1lbrzyKDaRB", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bdUJEHsAPYQR", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "u3YFHC9tQlpm", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YKWqdJhzi2VY", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ivYnonVFBxbQ", + "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": "relation", + "name": "internalLink", + "value": "_globalNoteMap", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_sqlConsole", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_search", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_bulkAction", + "isInheritable": false, + "position": 200 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_backendLog", + "isInheritable": false, + "position": 210 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_userHidden", + "isInheritable": false, + "position": 220 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_lbTplRoot", + "isInheritable": false, + "position": 230 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_share", + "isInheritable": false, + "position": 240 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_lbRoot", + "isInheritable": false, + "position": 250 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_options", + "isInheritable": false, + "position": 260 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_lbMobileRoot", + "isInheritable": false, + "position": 270 + }, + { + "type": "relation", + "name": "internalLink", + "value": "_help", + "isInheritable": false, + "position": 280 + }, + { + "type": "relation", + "name": "internalLink", + "value": "QEAPj01N5f7w", + "isInheritable": false, + "position": 290 + } + ], + "format": "html", + "dataFileName": "Hidden Notes.html", + "attachments": [ + { + "attachmentId": "PrFEZeM6sRl6", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Hidden Notes_image.png" + } + ] } ] }, diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html index e98dd9c1f..043bcf0d0 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html @@ -29,26 +29,37 @@

            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.

            -

            How to Use

            -
              -
            • Syntax: #child:attributeName -
            • -
            • Chained Inheritance: You can chain this inheritance, such - as #child:child:attributeName, where each child down the hierarchy - receives the appropriate attribute.
            • -
            -

            Example

            If a parent note has the label #child:exampleAttribute, all - newly created child notes will inherit the #exampleAttribute label. + 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:

            +
              +
            • #child:child:foo on the first-level children.
            • +
            • #child:foo on the second-level children.
            • +
            • #foo on the third-level children.
            • +
            +

            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. +

            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.

            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html index be71de0a4..87c801fe6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html @@ -14,11 +14,14 @@

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

            + has a name and optionally a value.

            Common use cases

              -
            • Metadata: Assign labels with optional values for categorization, - such as #year=1999, #genre="sci-fi", or #author="Neal Stephenson".
            • +
            • Metadata for personal use: Assign labels with optional + values for categorization, such as #year=1999, #genre="sci-fi", + or #author="Neal Stephenson". This can be combined with  + Promoted Attributes to make their display more user-friendly.
            • Configuration: Labels can configure advanced features or settings (see reference below).
            • Scripts and Plugins: Used to tag notes with special metadata, diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html index 5d3e541ea..bfb1d8d1c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html @@ -17,8 +17,15 @@ of having a text value it refers to another note.

              Common use cases

                -
              • Metadata Relationships: For example, linking a book note - to an author note.
              • +
              • Metadata Relationships for personal use: For example, + linking a book note to an author note. +
                This can be combined with Promoted Attributes to + make their display more user-friendly.
              • +
              • Configuration: For configuring some notes such as  + Render Note, or configuring Sharing or  + Templates (see the list below).
              • Scripting: Attaching scripts to events or conditions related to the note.
              diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html new file mode 100644 index 000000000..db69ece12 --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html @@ -0,0 +1,196 @@ + + + + + + + + Hidden Notes + + + +
              +

              Hidden Notes

              + +
              +
              + +
              +

              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.
              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/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes_image.png new file mode 100644 index 0000000000000000000000000000000000000000..60c4c48022613b1f51d45d4673ce247e7bd3cb5a GIT binary patch literal 30262 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 literal 0 HcmV?d00001 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html index a91c810ea..530a8aaca 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html @@ -55,7 +55,7 @@

              In the right-click menu, operations such as Cut, Copy, Move to, Clone to or Delete will apply to all the selected notes. It is also possible - to apply Bulk actions to + to apply Bulk actions to them. The rest of the options will not be available and will appear disabled in the menu.

            diff --git a/src/public/app/doc_notes/en/User Guide/navigation.html b/src/public/app/doc_notes/en/User Guide/navigation.html index e182e8de3..1e53dcb3b 100644 --- a/src/public/app/doc_notes/en/User Guide/navigation.html +++ b/src/public/app/doc_notes/en/User Guide/navigation.html @@ -422,6 +422,8 @@
      +
    12. Hidden Notes +
    13. Scripting From 63458d55d3e2622cf2942d2e03f963f524cbc718 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 17:36:29 +0300 Subject: [PATCH 11/69] fix(client): quick search popup not working in horizontal layout (closes #1647) --- src/public/app/widgets/quick_search.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/quick_search.ts b/src/public/app/widgets/quick_search.ts index 1f4183f2c..3b4b7e186 100644 --- a/src/public/app/widgets/quick_search.ts +++ b/src/public/app/widgets/quick_search.ts @@ -56,7 +56,11 @@ export default class QuickSearchWidget extends BasicWidget { doRender() { this.$widget = $(TPL); - this.dropdown = Dropdown.getOrCreateInstance(this.$widget.find("[data-bs-toggle='dropdown']")[0]); + this.dropdown = Dropdown.getOrCreateInstance(this.$widget.find("[data-bs-toggle='dropdown']")[0], { + popperConfig: { + strategy: "fixed" + } + }); this.$searchString = this.$widget.find(".search-string"); this.$dropdownMenu = this.$widget.find(".dropdown-menu"); From d33162785e15d73977b7942555fdcf6717597ca2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 17:55:35 +0300 Subject: [PATCH 12/69] fix(client): right-shift on non-standard themes (closes #1646) --- .../widgets/containers/launcher_container.ts | 13 ------------- src/public/stylesheets/theme-next/shell.css | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/public/app/widgets/containers/launcher_container.ts b/src/public/app/widgets/containers/launcher_container.ts index 87d25250e..5a814d1fa 100644 --- a/src/public/app/widgets/containers/launcher_container.ts +++ b/src/public/app/widgets/containers/launcher_container.ts @@ -11,19 +11,6 @@ export default class LauncherContainer extends FlexContainer { super(isHorizontalLayout ? "row" : "column"); this.id("launcher-container"); - - if (isHorizontalLayout) { - this.css("width", "100%"); - this.css("height", "100%"); - this.css("overflow-x", "auto"); - this.css("overflow-y", "hidden"); - } else { - this.css("height", "100%"); - this.css("overflow-x", "hidden"); - this.css("overflow-y", "auto"); - } - - this.css("scrollbar-gutter", "stable both-edges"); this.filling(); this.isHorizontalLayout = isHorizontalLayout; diff --git a/src/public/stylesheets/theme-next/shell.css b/src/public/stylesheets/theme-next/shell.css index 5552e482d..dc0746b4c 100644 --- a/src/public/stylesheets/theme-next/shell.css +++ b/src/public/stylesheets/theme-next/shell.css @@ -108,6 +108,10 @@ body.layout-horizontal > .horizontal { align-items: center; } +#launcher-container { + scrollbar-gutter: stable both-edges; +} + #launcher-pane.vertical { --launcher-pane-border-color: unset; --launcher-pane-background-color: var(--launcher-pane-vert-background-color); @@ -126,6 +130,12 @@ body.layout-horizontal > .horizontal { padding-bottom: var(--launcher-pane-button-gap); } +#launcher-pane.vertical #launcher-container { + height: 100%; + overflow-x: hidden; + overflow-y: auto; +} + #launcher-pane.horizontal { --launcher-pane-border-color: var(--launcher-pane-horiz-border-color); --launcher-pane-background-color: var(--launcher-pane-horiz-background-color); @@ -144,6 +154,13 @@ body.layout-horizontal > .horizontal { align-items: center; } +#launcher-pane.horizontal #launcher-container { + width: 100%; + height: 100%; + overflow-x: auto; + overflow-y: hidden; +} + @media (max-width: 991px) { #mobile-bottom-bar { background: var(--launcher-pane-horiz-background-color); From c74f51472e2a9309b7ef0c1b7086996096305dc7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 22:34:47 +0300 Subject: [PATCH 13/69] fix(options): "Override theme fonts" not reflecting immediately --- .../app/widgets/type_widgets/content_widget.ts | 14 ++++++-------- .../app/widgets/type_widgets/type_widget.ts | 17 ++++++++++++++--- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/public/app/widgets/type_widgets/content_widget.ts b/src/public/app/widgets/type_widgets/content_widget.ts index c187adb1f..6fd3b360a 100644 --- a/src/public/app/widgets/type_widgets/content_widget.ts +++ b/src/public/app/widgets/type_widgets/content_widget.ts @@ -137,6 +137,12 @@ const CONTENT_WIDGETS: Record = { ] }; +/** + * Type widget that displays one or more widgets based on the type of note, generally used for options and other interactive notes such as the backend log. + * + * One important aspect is that, like its parent {@link TypeWidget}, the content widgets don't receive all events by default and they must be manually added + * to the propagation list in {@link TypeWidget.handleEventInChildren}. + */ export default class ContentWidgetTypeWidget extends TypeWidget { private $content!: JQuery; private widget?: BasicWidget; @@ -177,12 +183,4 @@ export default class ContentWidgetTypeWidget extends TypeWidget { } } - async handleEventInChildren(name: T, data: EventData) { - if (this.widget && this.widget.handleEvent) { - return this.widget.handleEvent(name, data); - } - - return super.handleEventInChildren(name, data); - } - } diff --git a/src/public/app/widgets/type_widgets/type_widget.ts b/src/public/app/widgets/type_widgets/type_widget.ts index 8a78935da..54282795c 100644 --- a/src/public/app/widgets/type_widgets/type_widget.ts +++ b/src/public/app/widgets/type_widgets/type_widget.ts @@ -4,6 +4,9 @@ import type FNote from "../../entities/fnote.js"; import type NoteDetailWidget from "../note_detail.js"; import type SpacedUpdate from "../../services/spaced_update.js"; +/** + * The base class for all the note types. + */ export default abstract class TypeWidget extends NoteContextAwareWidget { spacedUpdate!: SpacedUpdate; @@ -17,7 +20,7 @@ export default abstract class TypeWidget extends NoteContextAwareWidget { return super.doRender(); } - doRefresh(note: FNote | null | undefined) {} + doRefresh(note: FNote | null | undefined): void | Promise {} async refresh() { const thisWidgetType = (this.constructor as any).getType(); @@ -61,12 +64,20 @@ export default abstract class TypeWidget extends NoteContextAwareWidget { } } - // events should be propagated manually to the children widgets + /** + * {@inheritdoc} + * + * By default: + * + * - `activeContextChanged` is intercepted and converted to a `setNoteContext` event to avoid `refresh()`. + * - `entitiesReloaded` and `refreshData` are passed as-is. + * - any other event is not passed to the children. + */ handleEventInChildren(name: T, data: EventData) { if (["activeContextChanged", "setNoteContext"].includes(name)) { // won't trigger .refresh(); return super.handleEventInChildren("setNoteContext", data as EventData<"activeContextChanged">); - } else if (name === "entitiesReloaded") { + } else if (name === "entitiesReloaded" || name === "refreshData") { return super.handleEventInChildren(name, data); } else { return Promise.resolve(); From 7f1eb9912708e915eb6048ddb1cd3cfd895d5543 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 7 Apr 2025 22:50:38 +0300 Subject: [PATCH 14/69] fix(client): build error and simplify doRefresh in type widgets --- .../app/widgets/type_widgets/abstract_split_type_widget.ts | 4 ++-- .../widgets/type_widgets/abstract_svg_split_type_widget.ts | 2 +- src/public/app/widgets/type_widgets/attachment_list.ts | 3 --- src/public/app/widgets/type_widgets/read_only_code.ts | 4 ++-- src/public/app/widgets/type_widgets/type_widget.ts | 6 ++++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts b/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts index 72bb6bb23..3b1cb222b 100644 --- a/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts +++ b/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts @@ -168,10 +168,10 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { this.#destroyResizer(); } - async doRefresh(note: FNote | null | undefined) { + async doRefresh(note: FNote) { this.#adjustLayoutOrientation(); - if (note && !this.isReadOnly) { + if (!this.isReadOnly) { await this.editorTypeWidget.initialized; this.editorTypeWidget.noteContext = this.noteContext; this.editorTypeWidget.spacedUpdate = this.spacedUpdate; diff --git a/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts b/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts index 061694349..24c2c1ae4 100644 --- a/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts +++ b/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts @@ -46,7 +46,7 @@ export default abstract class AbstractSvgSplitTypeWidget extends AbstractSplitTy $(window).on("resize", this.zoomHandler); } - async doRefresh(note: FNote | null | undefined) { + async doRefresh(note: FNote) { super.doRefresh(note); const blob = await note?.getBlob(); diff --git a/src/public/app/widgets/type_widgets/attachment_list.ts b/src/public/app/widgets/type_widgets/attachment_list.ts index cdb5161bc..aced1223c 100644 --- a/src/public/app/widgets/type_widgets/attachment_list.ts +++ b/src/public/app/widgets/type_widgets/attachment_list.ts @@ -45,9 +45,6 @@ export default class AttachmentListTypeWidget extends TypeWidget { } async doRefresh(note: Parameters[0]) { - // TriliumNextTODO: do we need to handle an undefined/null note? - if (!note) return false; - const $helpButton = $(`
    14. -
    15. Bulk actions +
    16. Bulk Actions
    17. Note source
    18. From 584fa67074507f737248beb8dd7c84c0d78ffb3c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 19:38:19 +0300 Subject: [PATCH 22/69] fix(bulk_actions): clarify actions taken by "Update relation target" --- .../widgets/bulk_actions/relation/update_relation_target.ts | 1 - src/public/translations/cn/translation.json | 1 - src/public/translations/de/translation.json | 1 - src/public/translations/en/translation.json | 3 +-- src/public/translations/es/translation.json | 1 - src/public/translations/fr/translation.json | 1 - src/public/translations/ro/translation.json | 3 +-- src/public/translations/tw/translation.json | 1 - 8 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/public/app/widgets/bulk_actions/relation/update_relation_target.ts b/src/public/app/widgets/bulk_actions/relation/update_relation_target.ts index b0ecaf1c0..b75dd40fa 100644 --- a/src/public/app/widgets/bulk_actions/relation/update_relation_target.ts +++ b/src/public/app/widgets/bulk_actions/relation/update_relation_target.ts @@ -30,7 +30,6 @@ const TPL = /*html*/`

      ${t("update_relation_target.on_all_matched_notes")}:

        -
      • ${t("update_relation_target.create_given_relation")}
      • ${t("update_relation_target.change_target_note")}
      diff --git a/src/public/translations/cn/translation.json b/src/public/translations/cn/translation.json index 5ac95e14f..5f9403591 100644 --- a/src/public/translations/cn/translation.json +++ b/src/public/translations/cn/translation.json @@ -555,7 +555,6 @@ "to": "到", "target_note": "目标笔记", "on_all_matched_notes": "在所有匹配的笔记上", - "create_given_relation": "如果笔记还没有关系,则创建给定关系", "change_target_note": "或更改现有关系的目标笔记", "update_relation_target": "更新关系目标" }, diff --git a/src/public/translations/de/translation.json b/src/public/translations/de/translation.json index 5b7a8840b..b5374dc35 100644 --- a/src/public/translations/de/translation.json +++ b/src/public/translations/de/translation.json @@ -555,7 +555,6 @@ "to": "zu", "target_note": "Zielnotiz", "on_all_matched_notes": "Auf allen übereinstimmenden Notizen", - "create_given_relation": "Erstelle die gegebene Beziehung, wenn die Notiz noch keine hat", "change_target_note": "oder ändere die Zielnotiz der bestehenden Beziehung", "update_relation_target": "Beziehungsziel aktualisieren" }, diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index e985ffc4d..1b67cbc7a 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -555,8 +555,7 @@ "to": "to", "target_note": "target note", "on_all_matched_notes": "On all matched notes", - "create_given_relation": "create given relation if note doesn't have one yet", - "change_target_note": "or change target note of the existing relation", + "change_target_note": "change target note of the existing relation", "update_relation_target": "Update relation target" }, "attachments_actions": { diff --git a/src/public/translations/es/translation.json b/src/public/translations/es/translation.json index cd6961264..46572ffea 100644 --- a/src/public/translations/es/translation.json +++ b/src/public/translations/es/translation.json @@ -555,7 +555,6 @@ "to": "a", "target_note": "nota de destino", "on_all_matched_notes": "En todas las notas coincidentes", - "create_given_relation": "crear una relación dada si la nota aún no tiene una", "change_target_note": "o cambiar la nota de destino de la relación existente", "update_relation_target": "Actualizar destino de relación" }, diff --git a/src/public/translations/fr/translation.json b/src/public/translations/fr/translation.json index 5595f777e..07d49120c 100644 --- a/src/public/translations/fr/translation.json +++ b/src/public/translations/fr/translation.json @@ -555,7 +555,6 @@ "to": "vers", "target_note": "note cible", "on_all_matched_notes": "Pour toutes les notes correspondantes", - "create_given_relation": "créer une relation donnée si la note ne la possède pas encore", "change_target_note": "ou changer la note cible de la relation existante", "update_relation_target": "Mettre à jour la cible de la relation" }, diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index afc34d06e..ef68aab6e 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -1285,8 +1285,7 @@ }, "update_relation_target": { "allowed_characters": "Sunt permise doar caractere alfanumerice, underline și două puncte.", - "change_target_note": "sau schimbă notița-țintă a unei relații existente", - "create_given_relation": "crează relația dată dacă notița nu are încă una", + "change_target_note": "schimbă notița-țintă a unei relații existente", "on_all_matched_notes": "Pentru toate notițele găsite:", "relation_name": "denumirea relației", "target_note": "notița destinație", diff --git a/src/public/translations/tw/translation.json b/src/public/translations/tw/translation.json index e34ee61c8..734c6ef52 100644 --- a/src/public/translations/tw/translation.json +++ b/src/public/translations/tw/translation.json @@ -526,7 +526,6 @@ "to": "到", "target_note": "目標筆記", "on_all_matched_notes": "在所有匹配的筆記上", - "create_given_relation": "如果筆記還沒有關係,則新增給定關係", "change_target_note": "或更改現有關係的目標筆記", "update_relation_target": "更新關係目標" }, From 5eb8e478b74bc8d927ed423e579a88dbe6877f90 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 20:06:55 +0300 Subject: [PATCH 23/69] feat(docs): document the note tree contextual menu --- docs/User Guide/!!!meta.json | 222 ++++++++++++++++-- .../User Guide/Advanced Usage/Bulk actions.md | 6 +- .../UI Elements/1_Note Tree_image.png | Bin 17135 -> 0 bytes .../UI Elements/Note Tree.md | 12 +- .../Note Tree/Multiple selection.md | 8 + .../Note Tree/Multiple selection_image.png | Bin 0 -> 7464 bytes .../Note Tree/Note tree contextual menu.md | 65 +++++ .../Note Tree/Note tree contextual menu_.png | Bin 0 -> 95984 bytes .../UI Elements/Note Tree_image.png | Bin 7464 -> 17135 bytes .../UI Elements/Recent Changes.md | 0 .../app/doc_notes/en/User Guide/!!!meta.json | 222 ++++++++++++++++-- .../Advanced Usage/Bulk actions.html | 13 +- .../UI Elements/1_Note Tree_image.png | Bin 17135 -> 0 bytes .../UI Elements/Note Tree.html | 17 +- .../Note Tree/Multiple selection.html | 32 +++ .../Note Tree/Multiple selection_image.png | Bin 0 -> 7464 bytes .../Note Tree/Note tree contextual menu.html | 171 ++++++++++++++ .../Note Tree/Note tree contextual menu_.png | Bin 0 -> 95984 bytes .../UI Elements/Note Tree_image.png | Bin 7464 -> 17135 bytes .../UI Elements/Recent Changes.html | 19 ++ .../doc_notes/en/User Guide/navigation.html | 11 + 21 files changed, 732 insertions(+), 66 deletions(-) delete mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Note Tree_image.png create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection_image.png create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md delete mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Note Tree_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index a803e7aa5..c78a3a43b 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1199,13 +1199,6 @@ "isInheritable": false, "position": 20 }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 30 - }, { "type": "label", "name": "shareAlias", @@ -1219,6 +1212,13 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 60 } ], "format": "markdown", @@ -1232,21 +1232,13 @@ "position": 10, "dataFileName": "Note Tree_drag-and-drop.gif" }, - { - "attachmentId": "Bp5BCJRntpyt", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Note Tree_image.png" - }, { "attachmentId": "DYf7wm3Yv6EC", "title": "image.png", "role": "image", "mime": "image/jpg", "position": 10, - "dataFileName": "1_Note Tree_image.png" + "dataFileName": "Note Tree_image.png" }, { "attachmentId": "m0KuVBZvGyzW", @@ -1256,6 +1248,169 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-menu", + "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": "3seOhtN8uLIY", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OR8WJ7Iz9K4U", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwg0e8ewQMak", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "r5JGHN99bVKn", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "mHbBMPDPkVV5", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 120 + } + ], + "format": "markdown", + "dataFileName": "Note tree contextual menu.md", + "attachments": [ + { + "attachmentId": "GQv4tBf9VSON", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "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": "markdown", + "dataFileName": "Multiple selection.md", + "attachments": [ + { + "attachmentId": "puanbWdFSfUM", + "title": "image.png", + "role": "image", + "mime": "image/jpg", + "position": 10, + "dataFileName": "Multiple selection_image.png" + } + ] + } ] }, { @@ -1980,6 +2135,34 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-history", + "isInheritable": false, + "position": 10 + } + ], + "format": "markdown", + "dataFileName": "Recent Changes.md", + "attachments": [] } ] }, @@ -8449,6 +8632,13 @@ "value": "vZWERwf8U3nx", "isInheritable": false, "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "yTjUdsOi4CIE", + "isInheritable": false, + "position": 70 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Advanced Usage/Bulk actions.md b/docs/User Guide/User Guide/Advanced Usage/Bulk actions.md index cf5a779df..e6a10a123 100644 --- a/docs/User Guide/User Guide/Advanced Usage/Bulk actions.md +++ b/docs/User Guide/User Guide/Advanced Usage/Bulk actions.md @@ -5,9 +5,9 @@ The _Bulk Actions_ dialog makes it easy to apply changes to multiple notes at on ## Interaction -* The first step is to select the notes in the Note Tree: - * It's possible to apply bulk actions to a single note (and potentially its child notes) simply by clicking on it (with a left click or a right click). - * To select a range of notes, select the start note, hold Shift and select the end note. The selected notes will appear highlighted in the note tree. +* The first step is to select the notes in the Note Tree. It's possible to apply bulk actions to: + * A single note (and potentially its child notes) simply by clicking on it (with a left click or a right click). + * Multiple notes. See Multiple selection on how to do so. * Right click in the Note Tree and select _Advanced_ → _Apply bulk actions_. * By default, only the selected notes will be affected. To also include all the descendants of the notes, check _Include descendants of the selected notes_. The number of affected notes at the top of the dialog will update to reflect the change. * Click on which action to apply from the _Available actions_ section. A detailed description of each is available in the next section. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Note Tree_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Note Tree_image.png deleted file mode 100644 index 74a2060c7266b2ec18dbe2f736e09f9dc9ac9f69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17135 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 + X (cut) and Ctrl + V (paste). -## Multiple selection - -It is possible to select multiple notes at one time. - -To do so, first select the note to start the selection with. Then hold Shift and click on the note to end the selection with. All the notes between the start and the end note will be selected as well. - -![](Note%20Tree_image.png) - -In the right-click menu, operations such as Cut, Copy, Move to, Clone to or Delete will apply to all the selected notes. It is also possible to apply Bulk actions to them. The rest of the options will not be available and will appear disabled in the menu. \ No newline at end of file +See Note Tree Menu for more information. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md new file mode 100644 index 000000000..a19b597a1 --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md @@ -0,0 +1,8 @@ +# Multiple selection +It is possible to select multiple notes at one time. + +To do so, first select the note to start the selection with. Then hold Shift and click on the note to end the selection with. All the notes between the start and the end note will be selected as well. + +![](Multiple%20selection_image.png) + +In the right-click menu, operations such as Cut, Copy, Move to, Clone to or Delete will apply to all the selected notes. It is also possible to apply Bulk Actions to them. The rest of the options will not be available and will appear disabled in the menu. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection_image.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3c0450784ac72afc08fd9b181f382daae282fb GIT binary patch literal 7464 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 NMgBi)kpa2y-vBLy-GKlA literal 0 HcmV?d00001 diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md new file mode 100644 index 000000000..e84be8c5c --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md @@ -0,0 +1,65 @@ +# Note tree contextual menu +
      + +The _note tree menu_ can be accessed by right-clicking in the Note Tree. + +## Interaction + +The contextual menu can operate: + +* On a single note, by right clicking it in the note tree. +* On multiple notes, by selecting them first. See Multiple selection on how to do so. + * When right clicking, do note that usually the note being right clicked is also included in the affected notes, regardless of whether it was selected or not. + +## Available options + +> [!NOTE] +> When multiple notes are selected, only a subset of notes will be active. The ones that do support multiple notes will mention this in the list below. + +* **Open in a new tab** + * Will open a single note in a new [tab](../Tabs.md). +* **Open in a new split** + * Will open a split to the right with the given note within the current tab. +* **Hoist note** + * Will focus the note tree on this note. See Note Hoisting for more information. +* **Insert note after** + * Allows easy creation of a note with a specified [note type](../../../Note%20Types.md). + * Templates will also be present (if any) at the end of the list. + * The note will be added on the same level of hierarchy as the note selected. +* **Insert child note** + * Same as _Insert note after_, but the note will be created as a child of the selected note. +* **Protect subtree** + * Will mark this note and all of its descendents as protected. See Protected Notes for more information. +* **Unprotect subtree** + * Will unprotect this note and all of its descendents. +* **Cut** + * Will place the given notes in clipboard. + * Use one of the two paste functions (or the keyboard shortcuts) to move them to the desired location. +* **Copy / clone** + * Will place the given notes in clipboard. + * Use one of the two paste functions (or the keyboard shortcuts) to copy them to the desired location. + * Note that the copy function here works according to the Cloning Notes functionality (i.e. the note itself will be present in two locations at once, and editing it in one place will edit it everywhere). + * To simply create a duplicate note that can be modified independently, look for _Duplicate subtree_. +* **Paste into** + * If there are any notes in clipboard, they will be pasted as child notes to the right-clicked one. +* **Paste after** + * If there are any notes in clipboard, they will be pasted underneath the right-clicked one. +* **Move to…** + * Will display a modal to specify where to move the desired notes. +* **Clone to…** + * Will display a modal to specify where to [clone](../../Notes/Cloning%20Notes.md) the desired notes. +* **Delete** + * Will delete the given notes, asking for confirmation first. + * In the dialog, the following options can be configured: + * _Delete also all clones_ to ensure that the note will be deleted everywhere if it has been placed into multiple locations (see Cloning Notes). + * _Erase notes permanently_ will ensure that the note cannot be recovered from Recent Changes. +* **Import into note** + * Opens the [import](../../Import%20%26%20Export) dialog and places the imported notes as child notes of the selected one. +* **Export** + * Opens the [export](../../Import%20%26%20Export) dialog for the selected notes. +* **Search in subtree** + * Opens a full Search with it preconfigured to only look into this note and its descendants (the _Ancestor_ field). + +## Advanced options + +To access this options, first look for the _Advanced_ option in the contextual menu to reveal a sub-menu with: \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png new file mode 100644 index 0000000000000000000000000000000000000000..102295d58886e4830d45f0ee4926c39ca62887f1 GIT binary patch literal 95984 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�_awr;XVrsyF@l5Z(k@P15R=k=o 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%0D?Cf$&Y#^2@x`iT7O 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 literal 0 HcmV?d00001 diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree_image.png index ad3c0450784ac72afc08fd9b181f382daae282fb..74a2060c7266b2ec18dbe2f736e09f9dc9ac9f69 100644 GIT binary patch literal 17135 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 NMgBi)kpa2y-vBLy-GKlA diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 6db4c2abe..4f2a444bb 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1199,13 +1199,6 @@ "isInheritable": false, "position": 20 }, - { - "type": "relation", - "name": "internalLink", - "value": "ivYnonVFBxbQ", - "isInheritable": false, - "position": 30 - }, { "type": "label", "name": "shareAlias", @@ -1219,6 +1212,13 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 60 } ], "format": "html", @@ -1232,21 +1232,13 @@ "position": 10, "dataFileName": "Note Tree_drag-and-drop.gif" }, - { - "attachmentId": "Bp5BCJRntpyt", - "title": "image.png", - "role": "image", - "mime": "image/jpg", - "position": 10, - "dataFileName": "Note Tree_image.png" - }, { "attachmentId": "DYf7wm3Yv6EC", "title": "image.png", "role": "image", "mime": "image/jpg", "position": 10, - "dataFileName": "1_Note Tree_image.png" + "dataFileName": "Note Tree_image.png" }, { "attachmentId": "m0KuVBZvGyzW", @@ -1256,6 +1248,169 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-menu", + "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": "3seOhtN8uLIY", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OR8WJ7Iz9K4U", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KSZ04uQ2D1St", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "KC1HB96bqqHX", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "bwg0e8ewQMak", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", + "isInheritable": false, + "position": 90 + }, + { + "type": "relation", + "name": "internalLink", + "value": "r5JGHN99bVKn", + "isInheritable": false, + "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "mHbBMPDPkVV5", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "eIg8jdvaoNNd", + "isInheritable": false, + "position": 120 + } + ], + "format": "html", + "dataFileName": "Note tree contextual menu.html", + "attachments": [ + { + "attachmentId": "GQv4tBf9VSON", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "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" + } + ] + } ] }, { @@ -1980,6 +2135,34 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-history", + "isInheritable": false, + "position": 10 + } + ], + "format": "html", + "dataFileName": "Recent Changes.html", + "attachments": [] } ] }, @@ -8449,6 +8632,13 @@ "value": "vZWERwf8U3nx", "isInheritable": false, "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "yTjUdsOi4CIE", + "isInheritable": false, + "position": 70 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html index dfcc1907b..56424e4a2 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html @@ -23,14 +23,13 @@

      Interaction

    19. Notes From 5b34e8a327f621ca0d5a18ebd52c92555263be59 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 21:44:22 +0300 Subject: [PATCH 24/69] feat(docs): document advanced options in context menu --- docs/User Guide/!!!meta.json | 119 +++++++++++++++++- .../Notes/Cloning Notes.md | 4 - .../Notes/Cloning Notes/Branch prefix.md | 6 + .../Notes/Sorting Notes.md | 11 +- .../1_Note tree contextual menu_.png | Bin 0 -> 95984 bytes .../Note Tree/Note tree contextual menu.md | 33 ++++- .../Note Tree/Note tree contextual menu_.png | Bin 95984 -> 32231 bytes .../app/doc_notes/en/User Guide/!!!meta.json | 119 +++++++++++++++++- .../Notes/Cloning Notes.html | 8 +- .../Notes/Cloning Notes/Branch prefix.html | 29 +++++ .../Notes/Sorting Notes.html | 17 ++- .../1_Note tree contextual menu_.png | Bin 0 -> 95984 bytes .../Note Tree/Note tree contextual menu.html | 80 +++++++++++- .../Note Tree/Note tree contextual menu_.png | Bin 95984 -> 32231 bytes .../doc_notes/en/User Guide/navigation.html | 5 + 15 files changed, 405 insertions(+), 26 deletions(-) create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index c78a3a43b..f71a078ad 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1351,18 +1351,82 @@ "value": "eIg8jdvaoNNd", "isInheritable": false, "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ivYnonVFBxbQ", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "TBwsyfadTA18", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0vhv7lsOLy82", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "W8vYD3Q1zjCR", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "aGlEvb9hyDhS", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "QEAPj01N5f7w", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wArbEsdSae6g", + "isInheritable": false, + "position": 200 } ], "format": "markdown", "dataFileName": "Note tree contextual menu.md", "attachments": [ { - "attachmentId": "GQv4tBf9VSON", + "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" } ] }, @@ -2442,6 +2506,52 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-rename", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", + "isInheritable": false, + "position": 30 + } + ], + "format": "markdown", + "dataFileName": "Branch prefix.md", + "attachments": [] + } ] }, { @@ -2654,6 +2764,13 @@ "value": "bx bx-sort-up", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 40 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.md index 632648f9c..d3017b329 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.md @@ -51,10 +51,6 @@ As seen in the demo, you can view the list of all available clones in the "Note Titles of cloned notes in the tree view have an asterisk to the right to easily see that the note is also placed into some other location. -## Prefix - -Since notes can be categorized into multiple places, it's recommended to choose a generalized name that fits into all locations instead of something more specific to avoid confusion. In some cases this isn't possible so Trilium provides "branch prefixes", which is shown before the note name in the tree and as such provides a specific kind of context. The prefix is location specific, so it's displayed only in the tree pane. - ## Deleting notes/clones With clones, it might not be immediately obvious how deleting works. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md new file mode 100644 index 000000000..cac96c46b --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md @@ -0,0 +1,6 @@ +# Branch prefix +Since a single note can appear into multiple places in the Note Tree via a process called Cloning Notes, it's recommended to choose a generalized name that fits into all locations instead of something more specific to avoid confusion. + +In some cases this isn't possible so Trilium provides "branch prefixes", which is shown before the note name in the tree and as such provides a specific kind of context. + +The prefix is location-specific, so it's displayed only in the note tree. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.md index a2a063e33..7655230dd 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.md @@ -1,7 +1,14 @@ # Sorting Notes -## Sorting Notes +## Manual sorting -You can sort notes by right-clicking the parent note in the note tree and selecting Advanced -> Sort notes by ... This will sort existing notes, but will not automatically sort future notes added to this parent note +You can sort notes by right-clicking the parent note in the Note Tree and selecting Advanced -> Sort notes by ... This will sort existing notes, but will not automatically sort future notes added to this parent note. + +The sorting dialog allows: + +* Sorting by title, creation or modification date. +* Changing sorting direction can also be adjusted (ascending or descending). +* Ensuring folders are displayed at the top. +* Natural sort, based on the sorting rules of a particular language. ## Automatic/Permanent Sorting diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png new file mode 100644 index 0000000000000000000000000000000000000000..102295d58886e4830d45f0ee4926c39ca62887f1 GIT binary patch literal 95984 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�_awr;XVrsyF@l5Z(k@P15R=k=o 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%0D?Cf$&Y#^2@x`iT7O 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 literal 0 HcmV?d00001 diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md index e84be8c5c..31c92c9b6 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md @@ -1,5 +1,5 @@ # Note tree contextual menu -
      +
      The _note tree menu_ can be accessed by right-clicking in the 
      Note Tree. @@ -62,4 +62,33 @@ The contextual menu can operate: ## Advanced options -To access this options, first look for the _Advanced_ option in the contextual menu to reveal a sub-menu with: \ No newline at end of file +
      + +The advanced options menu offers some of the less frequently used actions for notes. + +To access these options, first look for the _Advanced_ option in the contextual menu to reveal a sub-menu with: + +* **Apply bulk actions** + * Opens the Bulk Actions dialog, to apply actions such as adding labels or moving notes to multiple notes at once (see Multiple selection). +* **Edit branch prefix** + * Opens a dialog to assign a name to be able to distinguish [clones](../../Notes/Cloning%20Notes.md), see Branch prefix for more information. +* **Convert to attachment** + * Converts the selected notes to Attachments of their parent notes. + * This functional is most useful when dealing with image File notes that were imported from an external source or an older version of Trilium. +* **Duplicate subtree** + * Creates a copy of the note and its descendants. + * This process is different from Cloning Notes since the duplicated note can be edited independently from the original. + * An alternative to this, if done regularly, would be Templates. +* **Expand subtree** + * Expands all the child notes in the Note Tree. +* **Collapse subtree** + * Collapses all the child notes in the note tree. +* **Sort by…** + * Opens a dialog to sort all the child notes of the selected note. + * The sorting is done only once, there is an automatic sorting mechanism as well that can be set using Attributes. + * See Sorting Notes for more information. +* **Copy note path to clipboard** + * Copies a URL fragment representing the full path to this branch for a note, such as `#root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n`. + * The URL to manually create Links within notes, or for note Navigation. +* **Recent changes in subtree** + * This will open Recent Changes, but filtered to only the changes related to this note or one of its descendants. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png index 102295d58886e4830d45f0ee4926c39ca62887f1..5a6572962e32e4228a7a676f1318fe49ffba22d9 100644 GIT binary patch literal 32231 zcmXt91yob*!yjGJ3Q9MKbhmVlMvzu=v^2;lK|&-)cS(o9=tjCbr3X@zMw;)w|8u_W z>}+Ru=h=PwS5Ksth7vw51uh5#!dFq2*8zc0=z*6dHYV_mTXZ`VctdxWRnfx+9#Cwn z2oQ)4q#`e)=VNx1h0$grI1?Vy+UgLzrQv#)`=hC~LHe}ec_RacYE*~F^KhNtczv%4 zxVgCh{{4I8oo!b)HpcP?arAd-)i2}zeM<%m%mPE?qzyHvxjtTR$BwI(F2G{hlT_~+ zU*AZL8<_iFK5}>7^Zm&Qd@Ox@ygL?}7{S<1VG9PHC~BzNG2&IX|JDNoq32`5!k-UH zi)rp|{^Y3T_+Kscdarse$eXr$JvHf{WRM2@_1o891N`kIWF_s;kgZKsXY`k1B@ zXL@~fd-0c&htYfF9YH+YwuLyuOJO_adqtk7WVLs;&4_~cEWeQZ1F_xrDn1*S_n&&? zC;r`HhX=7RdO@`rY2Ta61@k%Yb^m`lXa1{cHtG9OcgLOPNcfD#LEHJbZtLHc@>`(N zWG`8#LPP0ZkUH7+$4cEo>I%<8Y|^Zghgh>broZ(&veX4Qpn5gq_IM6sQ#Vbzd0M>r z3dRO$w~G*cX(1#sxe=QPNXC@#GSsEBoA3~Q`a&x=^sYaNbsFC5{N$Cy>+6+7doF<& z3g*dAz7(hboAH8$P{E(vSr(HS3k~Px!+)*mlBw5hIU)H^Z$|TNyDa7BJ7gm{4f&^+ z_|p9C|JMA>!BRJfKVxs7?qQl@OID)kFLmK*QQ~mqq+1?pQ1$~(C8hp&cES}CK|zB4 zaAOJdW^(wPqnu;H-x_*j6KG;>;%f+XNbhJ_y7af)9wGl$Af-~k7dsjwxY-KNVF_aQ zQGK57`X|eKZH4skpjM7h(gRhXa6RBo-T!Qe^=%AcJ9=o*9WZv@<^TiWT|SBmDNh1R z1N$`_T$Sx-XtFzRMsXFFaTaE3AVs=+(RfDcs1mH`!FXhNeBu_FT=Pa)a-!bM#8=C8 zXT|r*r7mzkQyFiFb$$4>K4n$km05u3op9g-l=-^WUDiEYjzH8Z`m~?2IuSI*z0LYc zmxW-jy0i#oQ1gpS#RcAvq=kvH$`l3h=PzYP(va_T2X=*{6<@w@LV4}9RU|oc-@Ghz z*qpuMzb))J4H~|bh{iIY^fEJgf=wS3TfJPD$NOZtHjz#{p4Fw&M>fRJK-Sw znTkY|ru6@+s2guF+G0G&08QG}O-S8Mq*@O610BNd8>i2`z@HN|_)l_VPFhDKQ6D0@ zykLDkJ2cX0m_1~8^9oI@AUjECL~kWvzNa>)_+j3EvaM-&*|z|JJP7p4UbWQ?yW(Hf z(C=8qGB-EzxcC3qks)~f(FX3j$H;kenVB&+?vfGCN4>C7bfsAO$~M#WB*i?ycOcV! zytH3aV&RU-E8R^rkAE-mD~z1}V|HR=HqCdf4%y+IyjQB#w{8UpJ{#~aRy#qb123o% z;l#PUXiHmEgQ$VOQ`i-w!&pilvWjEAjg}i0TG3T+aK)R8hQ>qt1Z2363Er| z?Z8Mdu;Ehg#Zs(-`q`&iLwD3^Op$+(a>*RfiNmDhtp%l49ZI)3f{~GQT|2$AFW*-6 z*KY0FKKL`Uq*3Gu=dosf>Vem$O?;T`%jA9w`w)ZL5NGmEZdi*Oo>?Akf6l(*ff84g zeZ@hGwQEs>(v87TfZ#8~&mpr)!LehcUD*He0OA>*K$IcNw@0{RM;K{{jg%0u${DHOI#RKFszUHMxP}V3 zOb_Al6c-P%O!B_cfWauKQY$jy!g35YLeH5>!?u zT|yB&iz`o$`bu!=K1wK2kt|E%f!w*r7D6-KZS6l+91O#Y^T@`tGV$esG;VG)H}MB! z)Ge#{nIZY#I#>$i@>*X=;DZW6>7OdD8q+TeX+R0K>NnRa81yN7&`{Ykj0iT!#AxDh zUKaRG%GIc&7~BN6)f1X1gfw9>ek?MT-p-d5B_C`$JKC%#_lU{!uF;9NovCK~U}cqb zDfw^bZe_U6?Z`XwUhnXsS9tvpMZ?!e9V1U7RCdIEEEn~ALcE5tm)(VbPoc&#zdC;* z*yyfavb*QxZbYj`)$tP|OBy>~l&bLQ{i5%9Sk?n*Ej zR!dR6eI9qIr5Qs>AiIOIt;T0x|99UGRn1SR>;@hgFI8p;H?4o;ohpHheQm71!tz$A ztI1~$Z}{E(pyZe*ye2uZ>^D_N`TUO$?AUWZzJ7_gCWo)1 ztCd^UzA~zkGIbx5aGzeDK(5!j$72dO?eHC>;Iku^qXh929b-%{j`(gHS7WL(vuKTg ziJ`vE9HL#4FZ|r^_fd4eLJhC4@2($l&>WWxn>xg9qBabk++qkX_jA_#eNciZeSxZ6 zpRD3MqucrP=y#+3U_{oj+GuaLQ<>7(HfHPhVA@OZ`gtgg|AqGDW;pHVoiX#ts@h@p zwLiYJOx}xSAp~N|>cXoY_FX|J_TOF?vB3sO%;w!;^E*uICllW;j=Z>%I)@^zZS(B;>Ce8GLYJi3cM za`O@Z|E#anN3x_3-i`jF!{?y+yhoq(o1ioSZ+W)$xFZ96!W;@V$^tqU%RCKn=Bz;L zdsvs=+sl>o_<~~6P5ok6f+ZnPXjx*ZbKt^mR+#+f^{vI(R=MrD-}PoVZZis+1{VxD zZLM$#V3yJ)n~bpqJ@p$QLf^wz5;?<6k|LUbm$g+^WnRenYLaJ!QMtM4FPXw-tz72FjbS|`BBV3nR1?;ofr^O_%6RGbDV?{zAHg3K4_ZrV0q5TJ5bfUOK}|j=Th~!?L6l5VP)g2 z*kMIMvaz#hQs^sflX)9l&&8h~?E%Q3U)}lGag}Sbtr#QsDAuWMW3|zzu)e$%T}=H7wHAu z?dRhw_5jw?uxkDey;`z8#;qjl9Jfv}&7U{(!>_;IiYlpWSZ0X7gSjoAAsg43YS*+^ zz1Q2%_UE0b1sxaJ)^1X4FI0*VJ?BifJ>&KO0MvU^{aXQ_$|nI5E~cF`DM&d;7*fk0$oY(w-JCN7o;RD|)-; z_E@KlG(A#kAMp__>_oVQoHm$7k;lK>1ya?x+w~;xPk!ZDW$l!_-AU9f1HiMA=l-+; z%QbLqw#bo0PMz##*L>uLIa~Jf&oZ+z z0=Zj{YR}?}a6YAy{nm)Y?BANjq4V7c#zKET%@xyn_qX*$PKWp{qw0VKfYV?yjb&)XXZD+7zX)crNTWA$6l#AUaU%2@#6|1HZm^Fs>Ok8p`c zJ&P4B>V$UO9*l%Gu32wvTz!RUi1D5tX66KKj~~qHYU<)~xBUd>tmNFuruVm*X4{EX zSepW3rqSi?5|#4B<_LEuk#6Dz(3+*IUMr$FoPv>Jo1vudj@SI>3SwixkE?HAMdcJe zvo7WL*qb{5P_pjBEp=wlymRE$oiZO6D@(?&byO}*sT+BQM#<-o{pHm(>63df&_6BD z{#V6v3Xrc%GX9k(S-A1)@Y&HOsYtPFEHk0f{0b)| zKT+nI<$_^GG%Q-+)sG1kWOhL`hTg&QKjtEtyw_9>TYtA4RvmH_oaPh--8IMITwkI&( znJLCQ>|2oy4h78VJGQAG!_ct_N#mx+AAk{LjI0^>izD66&SzZ%4CfOo*PK#)6IbTa zj&ZR=RW@>gF~J2BwPAePfD{S2hN{pow{cP1sF2Sm8@kO-n&0w%TpcxMv^-p`keD@c z8)R9=h|aw(e#V}%ZBaol$E8oDI?6jhrLt08I-Vt74j^qkpFejd?qk#*rs@&TO#LH# z>s4~Kh|aQND%;M6^Iv=*_z7b*7#;5IgKo)V!I&nfm8#p$zCny1ZZApgc;XE~5Mi(e zK8FO_Cx|&K{1rU!O;wX@=2A;VITfq#q`*kpmifo8FP=wj#VgSe6Xm;juld^6DjVpj zG?CUp`n<{7e0#!dFiNC=xr}O2U*va89S`b%Wq;iMPXnA}+6Iyr51PcJbfimjmc%RW9^=JUJDPrIGa5d4#p1$?;`0uk@neV4p@9B8fq35M9^!FG7I>v<8 z^TDJ%3(^WK%dF6ci>|AZnE(_#y+@aIT8X{4d{m9@Pw#oet2xtvBC2L{DF8-c477 zvm4WNC|K=gte+ZerZCX|V(hqNf#h?nb6ib(1fe zXxEnGhNkvj^?c$@^%M)+MFru%;*)2g(%5R-Z*}R^4Xxd6qMcD<^^wo$p{<)zq)ZCN z0@bhzinmufg(eqBE>Gv+3;*VE?OiMWl!zt`QM9YZg-8dnQc{7Yv@ZryO??psD8U#3 z!>@~(I#N>RfPFJl#4$yMYAC9a-a6YY%l|46eKb~NE25XlSPrg#Tf5@intTYFKFJg$ zgyt6FpnOZMb(Hlogql`8uI!A)fWC#2v&`}sku6^XWiiFL&HNr=9Eht8$mS?E!LDH+ znLR6}9Yg;qOFi>$c-nZ(tnfMXV87VvkNEj0e_u`c+v||qf5+84b38d7Jrciqc}elU zTctZC-W>-%trSra7@Lmw;Z2ae|A68eGb1&ARzGj_W=}y8tP3?3%NyE!kCo{ukjRwW zn3}TN^8|p7m6N^O;IJ^pfW}oXT|BO)4_oA760Satl>-c0=PNFq-$X+qTh>0Wj*NQ< zkj>mgpVN{q7KPjl;m~`hgfm%5d2hLVJ{!_5wr?SzSd8NC$lcB9)Gd=+cSLIjNqlGR z3UjAeCzoQ@&``e#J0a6i9N{cU@!~czL??^ZGi|XDjk-YsV(Ti3Nt%k}0+7Ho|$PDns&9r(;`7Q{0n( zr5_;2l*POG zRzGB0leeRl(id{Y=X3I*evlzbS=47sFUs5Eg!i<<n=lEy3F!6SH21o{TYYx)#_u z%Vk0^ha9jQ%)2<0C(_FIwp^YTQ!rTodn#&l;Z*JTHB?s--cGy-y1?b=rZ>rmLV$PQA z(o(Mwy-HtUcV*>Os+@ne$t!JAOugd2Iv*oC#KdUTL3LQ>2{-n^hJ;TzwF}FNWMlR@ z4rWE^_GP%ae0B#093G-GorNQtcOmBHIc!*QAH#HFygTewL|Qj#kxH>H=xIhwMqty# z2(WrY-w|4dea=^}0SqP^({*?A4#Skyob8p0+Qbp}vM&`rjIUaD%Rzbm1cuOtT@qDs zmu4cfTsyR8vm=(5X#)pRQlJw1N1{aqLVoj{J%tljl@iZ0J{jfr*3V5>j1}Krp#BR^ zt^Q2L^WEZg&cLt&KZ5WUD$#N#8VSs@2gDS8IMsCj6q0>?>U?YKc#qK}=g~UdvL#J` zPQ_23R%k`X73CY(rk`Sm5GA~H`wgYh_+QF#3k@5Q;H@9csrl&n=+n$ZRxxQ&D_BAt zHtTgBWM`6>!C^xMQTbK28TeJTi2Bzla+|Ub)w_uk14^T@BrhqM;y%l};L+iuPiHTA zoIQqlk@>Hmx7`T2Tna5Y-ky3Vb}e$DoZ<}0CJA@ct=|+?Xdd#Cw^f59y8OE~%Z>GJ z+C2R4`|khKR6Ei8MT$tND2nB=vzLREg{`?i(6TM<+*jyJ4V7hFwk24MMv_F3K;Y=h z*)emkB1Xq&@rY#i3X@d)<{_H{SN~POB(MR62qU{PEV`JkZRlAc3WLIgxmIbmQjhs$2pAY>KsH5G89FBQ0{ZWm z4DDJ`m<9Ghh3R5_5kflAKvl8hrA4s6YL&~SNi4^#ns9nL838RSohWU|6h|2P%&Ele zXim*N5~Np69O;pdPVpufN{8+ewoL{aa;KQ@U)NE>`h=d_uaUlJlqfC9OhwVXa+!=dunu#LvsaOWRlUZbRs$+8W_RIyK-oDqWcdQ!cZrjJo7z2WYYc zCsV&8opSCMlzGln6wkN(Gy>${rO$nToX)dPP%to>+twd3yu4wW{d?wsmDh!_gBqj{ zV)5&RF6#;6O(=~x*R?;4uT zmrZBc4lk;b&qja5Z}1;CsychWq!<{RNudRm9xzpX47Q0k|6fz05X@c0GelUuV!*7MD3e* z%J67CQG0Dh0vsLI(PWb>N{TTru2x*ik2~(F^5X&Gt*I`Kgul2M8-z@Nrl0xVEW>wF zvEG*$TlvyX@OIXaV58<~lfH&#)Ual+{urR~1GnEElzTNS1Hf@kUPzd+}j-ixXAbAF(#9$0q|BEmT=(MGhs+?*k~-#0fs7cu>D!rVDTt z17oN9q;vq=&lbWo4ysrJ)$}?O1y2tb5^@qQin9-Xbe0}yTuJ10{c6mA9`;>nx9v1K zifh}?xiOKv=?GY@ESV=ULr1@6+txON_JD2N;J=Ff=kl~m-U54){AxDzY{)vV4XCMo zFb0_xsfI{iqlP3+)AbzbedBt7E-9ENm?H2V3?;DXn=|{gWAowyWHoO?g!{b8Ic=l+ zUv#@5l=l zn37Mp1nj4Bhw65HPWYs(eQ}nT4giC*O=oZJ0MS4PfDKJRnK|s)6B6g6|8dNBGwQ;o zef)f&OrS9o$9R4{JIDRABJDFb-hc!SaF z^GMcgw(sT(&`Ezn6t;t>^NF_y!0!we%mdrMcXtJ&Sy#kJUcLVx;RY0q&ZOQYA~Vp2 z-`{4Xhug#I7s!t?9?0c)p!5qsO<><;qLcdDv|R>BH|mv5Ti;_PC=>AH}!m1KdYlQv~hYL!59;FfQI?(Bwjo4{xtjqv|i7YBT)wl z<8X#4wqK8JjRaKPrSx$Jlc$o0VB+hnws?~AxwM^z8CgaPTEQqNNo&y}mf*-=lxG)3 z4*x6g1rpGb4glg#iXVCWZ`C^ox)?vCsm4JAmh;Mey6b$>{gdribtK<{Kbp(g_*+Nv zdLzW*3MCy9QV2AF6412)Wojv0XPe?MMb?9@u0K|%adHIld~jFbM#=$+vlZVM0xQmR z`v&nG;cU!2m?{XLY@7iGQ6+)Y^@mMwWc`9ZfWy)t?t{NBr|wDVyB9Qlf5ovb8n_fY zy!v@3$-v4a%_ZT0|Le$w@dKV)cW2AS7rbN??Cc@5xH$heMM8AX55A8t%hY9)(??VY z(FR<9Oq=B&6M$Vi^Sn6a-jGo!b6< zS=DmDZYP&vmnzf7_|c#cKmlgj}n@ieU9_~3Z|_;43> zeDIxrTnq4Az0s|g`HNFiRJw-w7AEf%U<}suG^^rjQC>M}`xnJ=^0`5-- ztabnMektU@Ree>tuVSE??bs30)zY-vR`S=?-s6>+zpF|E}+}Eh7CU#qqtjR4UHHDrF zrVH;XG6(4RQ6@Q*4=d_oQb{>_)rFSiEn4X*$*4Dec4Jb)^TI8uqEUR~wOS2>I5gmx zBu*c^&geH8W$sWv%^SN&@|psx0|81)6jzHfNIC^gWb(NHEte686&=sUhtruV zUllOT^6)$G>0vI6(wR*nuButIkDcxRvjDpkqR5t$9z2YDWf3r73cL7XeqeC-@_=i= zC37^11I;@F9t!ahp!aoolP>*L1uO*qC$VXEz=HXYrUSJ0eP2&k{avze`A`vRD7Hyz zRbM`Lv)Up^-d4tZ6x-nQ=2!ArV4peqoS3F$Tx1>;d~@=PaAo%JcXQo+|G!Yto=%IuogmcAIQYU*CuJNtDzx78dF# zYR){fhg#pk70p!xA4{r9ef4wgnH=|V(Xam`B2QO*wxeI1f4@y#q?SYxv5T==4MaRl z$`KBgaxSx{Yn1~tGw}z0;d?tLvKL;WyOi~D>Dyjp zKk%MS@9p^8bfymFyFEl_s{aFwVB(+so8MK!$iBR40C2^kf^Oi9?JX`X6#fisSV)2m zeXssj&;^9SQpRmPCR0aa&E1S3d1V0RCCi#;L%Lli2gg3?4=Qm{(SW2!S?}hO^f#su zAD>}2b5@jHTX$(E-7F4eTBW{Trm|$+)|Kz6i8LIvqbipEEW4G{71-l0-ff#58HFPV zI1VT}S?^z_Qnx)J)Jle*?$)1XhXKXBKMyyk`5q#r`|=i|1!xh4Ex=gCxWBk#y7)>i zW1HnUUmG|yps6qQ07b+rx&0$u;~_1@bJ<hUh!Il2BETmNV5xkAId?< zqtJ3QrE$v`-ea@R`^>HmCzR%;k3aVtEXq!Be()PoUPG2|2j`sCa-J>S(06K&AbZt} z+LV5AwE^(r^%}w^p;r2o&=q{-wkMYfK-St!wle+m5Cg98uriy0vWZn|Rf#nnpTh!ElfAqwdq6XS1@7_k9`2O%-=lm$F*1vA zznq!lK67lgU;C80>|Z}(pYD6Ua*_bKrA8v{aw=AIr8>%S)gyv&#pxYZ-mxeT%DSr$ zPJTA*xm4Gwqv?WSK|M_G5Ndx`9xw|{mXm=0N|6|t@$xrVcgVAyX$-u(wM*IdF7S0f zB|0}UKz%{S)EGWDaDe-_KD)3!DBdAIoKH(_byDaX`@%unpB-+On|uVtzK{lL5?$hy z5UdxA%x;2jaCqAW-1Qm$YT0EqSu=p1&ptU5lG2#r(uwpE+|k?Tem*Z()Lo0+?hcC< zT-a1&!>TcAeISP4jq!Q z%qBxV_S$t8q|Gp0N$gP39GkVGkWxWSe?1jbWKBaHWhh)kCv%oQsv`cw?6;^&;s=+$ zfbgm!tu?t3jCu#hinG63s9$&m4N&*#^jO!HSEY;9M=K1HsrkxTU)GBoE}spS-aN0Y z%%!gPOIzl1w(YEwDN%GP+1ZJA*Jk2x`2C};gWJ6}eBNmSuaK)vSXvv0Ix0D51eqwq zioN6eF+Os>3X_+6uke{8CxwP783fnm>)WydD*v_yzgIV6Walf&T{yD7*0TrFdKXqz z7~ju^Tb9ohMskfhpqI;(ogD$a_l`I|GHkIz^8A&k@?)88>R1Js5Y{E#vMZ7?s$a{^ zvCq#`yYOUDIc_ERYewY2RYf3eJg&B|AZ@%W@neL0QY;9OpgJ(FhLLCA!X+)=$F30% zMJCy?V8C{3;uQfBjg( zlHcqrzx?f?94AeUHTq77GuAJuc{u4VwplIZjTH{|;AKv|31!B-4d=ubs@8XOsG|#zx%Q@#y=s^ERVfMRCxhJqhKnkOnS03Gmn!0elw=D9ZE+uV+%L)#EW6a zgW2fJ!GiCfaT-kg{S+=Z^lbf?UBIs4AU4N!y{E&^hs>~tRwzf!|BCsUZhVVBFTE0 z_vB4-*G$|eD*M&J$#L=mIMk+zB_v|M@lvJ>Fo=gXf4fh-1Ne`Q?e%YxUMR+I&eFn*8SVsF5SlbGe8UzLuEBzvF*r8YS|o3>PJ{u16$g2-`{(V` zP3$diq>82q&lb$x_cmw9`XVn&ahu+XuVxDAql@m(D8REB6oFDiN}m_`Nk-tA1^<6? zdkdk?0#XY3zGz`F5spiB_ups@A_GbzL!#+c0e^j(W=bUzSN2tYB8hu8$P0kR@MViA&RKvE8t!Tb`T`i0eVEuaI5f<6 z|3?b$6JRPdodo%2G8+rw!Iey7*{DNx^0Sl2{Qs>MUwa(Rt0O}1!=Jrk$cqwM_0UD} z&x#X{SB|5n?Fc;S#&Wtvtp=EiVe{C3Lk(`(G$@T5dypaPZ4y}6YXD}UG?Qc8V zslhnr2NqN;YivRF-uXTSP82jFf!|Y}X+6bZNBeSh4oFy_x>B>*i=q%jhV&MiS;Z?XL&?m1 zKJqR^)O;nAXQLT?UHNET8VtljU>wijG*rL64rWVXp@Ap}Wv~Pbb5JWQihVuQGEO5!Dbt({hVgF_o?D#Op{ zJP%0b><{QKBf4LuqZQPjZ`+@OoSse;i%AY)gAy)tVTtU>ZN+83Q@#Zs2W zQkHV?EJplT>$vS9X4(F*valTsrXJ_&do(pLE41QV(Bg$GGxNQ9aoL4N2;U4=Pe}E- zpiHZy2e=b;8cGmkB{Zn#0_!N*%*HP70YR#X%lQS5jvT-LGY8Vu9XF6;)QbAKMNExf zjRPt!m$8LmGVN-Y+bI8hakxr}#On?~3 zaOvs*^FB!sgACM~oh=<&+Xv zLc~%N6!Z4c$FNNdWe~0;E|o)smt~vC=mF!xD#=%`iCBE5+{8!njW& z!i2poNE~uyjnScbSe#v?MD)ayTC72FryuI3r0AuM!W(x_g3+A>^iWl0qwq)i-gri8 zjO^yZBw0fFWzpo&tP2?FN8|{__4?D~U)}Qub;fLuU+2yJ{K$YMpel{C1ZrTqMFE-n z?j-%k_Y;&*Ara=qJ6Jq*Q@N-6HD6fWC2HXle6HJS^O#3v1?OdU6NLt9D|XQ4Y>Z&7 zYy$0Mg?=kr)SAh~IaccRd8Q$qT6$JK7H4VVq&AG&5{6ASLDIAS zbyTD&tJ$fB9GLk5Te;R}d7F6&1!Fw)C<9{ZlVq2vd$ohph!IFuAYMWlQTlMLI% zGU3s`&_6w7bDQlZP{QO|y_+s?cEF#eP0)agS^D&AD# zP$&qyOjP@$1#jAW9(YdJM#(Akh|%w0QcAqm>?OUwO)y$h<`FM1FUDTfybUBus_w9r zq*zjHDdaDE>{Emu%|NINEgkVjd~_E9M}(J*R9iC%GR$6LVVEz)?*0N_ar1Exx-F7AntBd$;Y}O&1kaGqJeyJA=3BO~wI;T&dsB&@QeoTqhWR7Wa#qaWNsZKX+tm)!xFsi%L*1WqTw3D-epYC^1|=2_6TWw`x= z({N8Ro&=BPj2Smb%d)H!oll0XP$eZ&z^-=XYkcF>T3-Q_->_niiG_e& z6o#c#bR{l*I6xbiU>OKz^mhvz3hDnclvmH<1<_dic{kNRs*o<^YKN9H2q>rQkLYlz z`?u*_yF?eCGSlfoBSW}R!;33RQ~7?9t0qI)xIGipLCqUHbI84xqbqo%=)UT;Cx|BV zlmd+6w7&9}ivrP&<;fFhU}&AhOQDz$>q780Z+8JvePkO56ZG zmAI{X_iG=8V9}m*m&j$>;!$#I~^^KbX5vXCj5ir`Sy?s4l0Pc-%kz zm3unwd?Y(3|HR@YLGS^DqP3M+ZrpeoYHNVXF_p~2YeyKgD~PMnJc_=E_IpxMPTCov z9Ro$+90%cc4k__(n+xb_OnLD6?lhmI!vldZ7M?$4iQuQbKtXE1qfxh=eu?uJ=A@Ji zj}kszCOeYCLdw_IjIYFD9Z?PAA?E$RsDv~AjILL855*6ByQrr>^t>1_W>GS(Cj+vp z9Kt^-KeHRkQf|B?SE_#K4&6#!V*akG`j-lv`(LVN?}Ur6So(fs3z0=~ZiU18I>t@| z#zQRX`*GUU!->W?gLHiLpu~iQa$t+f@Vud+G%}C)Km85WITLz%fRc;;!A(rj&kmVO zU5ov<^C@8JHwe>Udgo+E`YA7*MlTcL$`^KoVz!J~A^Q36>K&;1`1@%$Jk-2jv2#BL z>}m1aH$1FkrV%(0qH!DC-_wn{ya9;C+!V|MtJisKSd#aaB2TVohgRpfg#RgnC*SU; z@1b12g+sINvL%Fwy7WizI@bUfg*%+RtysZaj?_kMyJ#T90Nt%vKD$bgIGvSFSFU!Y zG+57O&Xt5#I2e*nV(Y>*hL_7L?tav`_ZVO3j&*%y z1_d|4n^uzEIJN0wTw-3?oalGH@tsizx)c+hNEcKxzK_=_g`HR$`2tegb!@>LI3QV1 zS8%c5Y=lDDO3C3Ccwdk4HgOti2&+&F6kJTrkb6me&>%m&|0%%-V!|0+G+F*rAJ`)GVe!gbW;B#l1Ik>jw z%@Xp@PG@%8BHVH9=ug#pG@_G;$j!5C$@f{P=FhojI(2uj`2e#G^@6zy+g+dffm2@J ztFcy_A)&%m_$7(XTg|lDf1zhY-vApKN>XA&obFjxdc1AzI9jb3FgIJO-|!V8>yaz@ z*K7`#cYY)}NV4?Y9@opiu1`PR!47JpR@y|8=TQ6VUP-;A$<>8@#|B&^K|Oyz7c%jA za`0DcwPX2-HfP}2)_N(9tBialt5x3MA?f?d8(;JT_7&Au2O7hs+l1l(#*ulL0ePij zbY3}9ahO-rxN@+ZG!&7L{@weltk~K!y0Vlw!7N2}1d;Eu^}(D$hO^R*>Fi6z<^}Jt zCK)z6Ms>_RFo}(%nols-&$~QNE?3;WYT9wCGu$cPcc}BBHeS9A(F#I8LyeEJ^2>ZK zl`ThBR9&Seq_8_Tti&kOtSl>SL7%tnu&6cjH;*fIHSHH1!| z-hk3S5F@IEE{)Kz{j1}putb;njNThaAvSIntc>2nhiuWFcMV5}8sPnk1Zb;=B7O=jK8A$_!n82v=Q%>LFjV7!NL2yVgV)6 zqKS)#Kjr~f9RYd1bh|Gj*%&W&OdytDbZ3D{kC{&@hJ1Ij4IyE@x#T37P`PdC014YR`J9 z)F|c2gW(FB?3y&-TTkzMCzcAaplJq2_+q))Djydutia zEh+*caGstABCJs`I%{v?wm|F{0`N-Xhy;5RSmz~pOR<|nY`#tmB&Y290vweD7fV-x zwJZ5V>Vi-`R>ZNlO8BnJg&}jAfVQJRR0q=xdnu$rY46o_5Bi*w)Xgl6LAPiBLyQ@a z^Ip5QN@o>9LshU4;{p`^o;pCM{`c$I3KB-`)(&_*U&-=5V_y~&Ea}iLhjwhv)H@hp zIH}`}VF#c%S8~e4mNXms=M(m#ZF?kn`Mds>-PKY~Yf}w#G3&oq#rb}Q^Db{V35(0p z0c6wjrPzQrR z((MaoemEit8yO#>2GwHuZ%!hPM%w^S(D*die2+m1LL8LvNd`R|aRDQ&>5T})G=&fo zomDXn+aIsBGxxuIU8wn;*)!rG%4EuG34#4HQo_={4P7<~Q__1>RG^>Aay6yw`p_5u z0|9?npE|nUmNoJ1OHv#pDt^S*e%YywP1N|$5eeA2sb3&GZLtXZfusTFu`k_(Kt5d< zJOp_EGF?G*frk6Q-ktJQ9d1Cq_7X-MN7uqCz@uc?R$kd)B>IUVuMCG|@QbWk7omXF zAkmZ&ToXHp;o_3U?}#4H^dHKGf*eS|l!Xm+4wN#oW$My?S%`-&hW;Fw05-+Y(SYSz zi_?O4Q(Tcj2`3>}k&2DWW#u@NadGr210G7*7cx27VOKcKBx@AS_HXHsr~$ya)%x%8 zW5oi$QAQ%S;9+Iv2C(=CV-_{trlzUu`+gK zNH}L{M}Sa_cEf5ab%!Sjdw5{qfD9YuGow&AvR7rk8UTh(5n3;eF=OS*W^V z`SdcFvO}8~_QXR!#R8(3aYQ|WYy+yeXGdTkKPUtn&Oa_vkm?GtofB(A(ZrX&KzX9v zP#^URq7t=#L5T?MH}LjkH*$zh(0S~wV!{O8ZZ zI-*f8lO4y8d6hLE#%e(n%cw3PjVPE{T~oF}5vEd=u^__J%_%An=`wn%N7;tpD@qdh zYt2DxgPu$`W)PP8_m`KcUzxfDa6qAZSs`U!<;K zka9WI8ldREl7lEyqVWeo3?r5sx7gM0-AD1LHXw{3YAFtjrebC@OX;Ylz5J+53QZ$Z zA?#5y5K$!_@;NLnMa}hMSA}bxG@!;_M>%J*D(;OGljvD&>8ctXY3O^fueU&oUaCkc zVP;Iz<9DB?m?I9PMsMV#AZCy+HnNJ4MkB_20yvqe zhjzSo_Va00PJ?@>BX*H!I3a#fR81ygesZ~ksa|Y(7Udx1U@3q>W9`9bz zvOJHPwjHspk0tyNj9^^pQyKA1E8;)x^N{`GzXe{ZD<0R>%dBP!(gba_K_>OSVKADppEMao zQJtvLGxasJq2C4W6*)d18 z3izCC=xj|Uol!del-Uo)qG4lxjGKP=x6W;SL!OR;$~j?$o$Z=JZ$Olo$(j3;|` zw2oljmWvS{S8l zx}Va81Ic{soJ7Lk48$Xb;iI*A{;C96%Y#X$V2wUioW0_!RmV306K4MuMzHT+g+IAo zP-d1%?1luiLnXW0ik{0Kb|GAEifO=^+2Jfo=P68qA6m8YZ*qBaU%e~;(T!<@j@%@5 zKc-Ad`2Q@xgW@&~%!9Bx8r^Bw-j`EVd4>3H&fBvRoc`SMsYR9;7F4 zoNl8IlhDvx7br6h7<@zJ>A*o!R*qhVN#7KQalkY24TQGu8A8U-DsM7aDc5Xi+<~?05Z10V#>K*M5y744)O|ixY6jj zVuJz+5kS&(kUsdfomDTclmvxs0MehYjf&Jly+q6NTD%!_`!8{N&P*gza$`v(8bR{1 z9QX{Wpm|)pVGG_>%l#q4b{mrZR)zsf8&yFq*II@RRclI)c3%kx9)@m263PIo??*(K z$m0meqH^NMM(_DJGOE(4<_aFy9gK~N;5OF)(o2}Qb5q@>h)_Iv+@`#kqoc9=Lb zbLM?NbsE?s@l_hcNHdc7BAd)$6fr}KWogW5ln4?6HS&ikKA2r4w^F8emv2)ZyVe8= zem|f{IMgJN)P%uQET_~MC#%?kgq$;WHMQLTUKLDjxss-OA@L z9)D}E8|5wO#LwoK!0eVLQ^_G84a8XWwxPe&FEe$xTTiET-$B`&q4N+uFqxNShMavi z{|q857NQ&z1u@SE6?bHx(ung#O-Z;h(A2zpL)QKG>Jc_ejkBXGP;0YCswg9x25C$f zy*ir^a+q=g<~<%W8u0nPc^v_7q0u1-iFml^UNa$dcKds%iRaq|*M~s8PZgLntWy&cNh;Sv79R)p8E_0 z&5f?$@X~2umU`&k(Z%hoTC(#XgFu2loit+#05}3K3xQ};y_w2AEtZmxI0gbKGP7{N z`TXA3O$zu5vrl;P5ge_+bA#fqW}X6B9rr)0z6NJq57c*W_O6;7F?Y(B%cxeix?^DQ z43ZocdB@d))1YrT?6(cDj6SFXhCZXh4X#jA-r}J0ML;U4Gp`yR^zM){%b%RqKJ34!HwjeTn@kX+!g6$uK}vhhH^WMPOp9AneN8>A6T>{ z!;%5orK0+^Spx~~ZT+P3BaWK49yp@7H$EdDJbtfU@*z;LQ9=5@VzE8_{X>W-Jnhc85xCwYM=0x)5q4v*sw^`~QO943*9ULbzCcHU zNE}Ae*^Peyg{u)Fk*C47>nSGF;hxf1XlpOGCXI++X&71=kN*l!AMv^te8|IBzqw3< zVGZmnz;)WW3oLPa(PWB7cS6pod@r^NylA`?fy8PSMkL7gUF5@sqXSL~{E7>C1l}YX z(eFSd#~sl;%3~tZb@~kWF1vtKRET?$FK|ko7BvpsgMz`-s$MX#dpkziJ}k(qi2!%L zYEq%dxJWce7UBHMD$zuKk^7VM{w+_Y?_@x|Sg`l+cf`LMvj?71qx;KU9S8H^U22yD zO14=b!@5P}Hb`ymVX_T;a9QFIIBNUi<>U5Uo>rh`Bz%PtE9Qf`bu7sz>%JMq_Vv+f zKTeEa-wl%_!YFSJSPr>Y&OgcjOqh#KOU5A*858b!X{uTv1N4_;4C;BgzhY;Gz{{cw z{N3gN!G3zYff45-C@$uXd6ZJF7_8BHKo7*~4^AOrhJhZITG?pR@s|BAFyIoQ5r514 z!LRk0a%yATms06H&>-dfiNfU3w1dJ5XJ?*D3yjcP1fnI$72jfT_7}HNuI!NWY=;mJ zen&y@V!xxCV+Awf1nVEU{eAtXfS9I+FWrO!F`bLCAV}>=sR44kXK6f61qp&IBubfi zV0xGZt|{I{7?CreWzCR`MA_e%8epCfp^pJvPA~FWPItej-TljV*uM|N%bbgG21j*~ zRfXRd-cu}3e&yn^G26#b%T@<)KRr~CtO(X%o>Gc19a7m3=?6D|K! z*;iQ(tu6_F>K^^OR|}CgTi}}S{?UbxETJN+b=YL0nS3qBnvzcs4)eCi6`aHPgId^T z#3t6<9L4FU9ML+W8Ar0FzNQgC9ONul4b8;pOd%9+da&_@q-aWuECgA@PBV}Ktf8E< z5x|F8$>%x?iZe&^v6~c)=*x;$9Gl+1p71D5y|I3>yVjUIo#R{_aGuvmHy-w_`%B$W zsRz1MlO9x|$6V5^ddgw>u3tXeYkr3YNZyqfGn6!1nq2#t$_r-agl~C+i4&8R)5Awr zF@jV9x|G$QR(hk=|F}|6XL)C@tt+3j9W;-r^*1RGSD~QQa(95UZ!K-%amV4nKkf=TWkh?En0m+oT@V-)H?A`AS4R8D`(*K01%9D(tE;E2iK}1 zv*|!RVZA9tz-7u(dLb|LCA$QGD)SvMa`?fmBlJhcP{p9=>X57{TCD}r$L^_W;p8`v%fN6+c zF0e+~(BQh{9etLo%R2>ghhYI(HOuo7NsoEaU-wtMH#3Q5a3sjPlk;Tmtqth0F0K0w z9;}hLLfnAzlg19u!21v`2ZncvDJ|XrFH{$TXW+oJbo3M?JfY5W&tdG<4ke0V8}p3m z&JIo=`*O}F(VB=7p#EHohwgYkn@KH#I3s=~|J*M0O+_z(S78uO!_foX26^9Nj?Xvz z;22R@m;l{58r)^pJio$cAzy1Hx$#3+l3mQntg3D?y!5bL|L>_77YhhhbVsd!1$sQ` z2CX9rp3b5mEXLB_yMq)GBAUn3Tm*QhpnDd97q16)?SQ%A(HXGdkD|z{DgW~8sY^;z z@^IBS0deHZ|CH3H$i}gE4ku3khInHm5}g8UN=&LNQso5B4Ec}VtYY>5gta|O=Z4hl zvms_~7apAwi1tQcE0u2MqCPm5uaVbGqSs%$O^xmB8 z!%!^TOhe99ve)tlulunNPIvivok#9R+c9dar;+kU`aBD?)G17DG5)x30pf6SaXPX3 zbyGU)qcnQlX@8!~8$4Kas;MR>dTUmKTOF?$Ti%8KyZ`jUFEq6876T32{$4!4yd=}O zjwDryuR2jSUzuXK4qJeuE5a!eu zC)MbuWmY)$`8c&@EjvV|+j5aD*YwkkHoSj-$WZc)^UnIHQH4-~^3A9cyPQYTs{KOn zqM)fWV$g15MQ!mO%qbcai770bMl%i`xl~PQ_h2cRN|M72{D<>qm|`Io{Cq!w%k{s~ z(HNAD{|~8Nk9}EBz=v5_$#2Q?-F<94?1Th2QV2!D>+AwTv276k zRG-(;09E?o#dFtd`qvl#asTT;+oy-`6~1&mp}&)1;q<~5W{npLV5)?-hM83IK3zf% z1%BRI*TI^9ZTRrnWqwGXe=~oHQ{eyGXAVNH9W}O%;?|(TgJA)2{);CB3d+>}bcKR) zSF$|p)fKp+*MWRRsYa=3*p^vd;W_|h-V1y8#97&(|7;A+_DieP% z`NT-Qd*_>r(q1lz=moj-`@o;e&oosUcn};-Zy~me93N;5fckL* z%Z=xhZnn``TX{WEvp7d_WURsp*GT+QSrBEweNNlC=4IhCNc|a#$7Do$fuDvQ!qt+I zXTf&bpBzP)4qwdk*1~=?Fb*pCZ`>~g{y4p152ts6+F{&4&jgjC82SRgG}>?vF%;-) zm84UgwdBQnSPUE~c@LdGOBY*BOHcu&ibN9bz}F-07H&w6sCFp6d8+l{zz`wZ{(I-U zULxH@Qo~2}$l0gjPEkT_D^Y6+u1}h=_UC``*fQ5(t}$h7;k2{t@&$ zwk=m#9=QjF5e}0~48&rkpcLi0!$!kwuVSxhj3}8`z%b#^Zjc6~viD>~={th9LF|@V zhUr5`M_;Hn1itoO>^HsJP?6&MEumw_(1lX1mwBm$gr8$9ULprD>WtMCP$MlLH;y@P zj<9TtC6$b3(jt#ZiC+knl`d52|0DO=%0na6*jM9szhHtaATd10py5r@PGD$Ire5A5 z+lr?j_l~7DOCL>GP=P5;^;jU}aOIIh<*t1Xi!W2+qWJsq{xKl8jAzQmHmb)la*ii8 zcBl05VNx~e5UImmweQewbKBr5rnaUV^py%1oVhq(vn;Idrh-L$`i}-Kgx}|&b#C|3 zJL=7oa*W+d_cMKZbBD!k^zi8TT?5kL(R41u9w+Y>A9;b|*<%i5jBBqBb|Ok$efeW+V2CnV|&?iQ`MvO^#~96MT(*^k7RHA_4K>N&Tbk zu@Q6mb~}*eYJ%?pAO33XU|qGoPyn_>6I+heLw+bfQ*ACu@aIQ*3<1}`lVm>5DDTi% z2uc=59Y~@e7p=X+yLg^uO_dP&wFJ%q!AQ4p(Y4m4QQJ~v>24-Aq$BXBut7*b$i*N9 zkvB2Dc;&c6{axDuFpRvThRD`ZU zjzN!95MpcEZ{D>pIw{%#30fwDsJck*;P+Duk;VWFLJy z5+-@h5pK)7 za~D9!9EOLqL`6qsVU8XPXJ_vD)stJ*`d`q}1@}^YTtmgG0_Pp#rCI;VLB4127nQjl zEsjeQVX+?s^~7>M(W6c;feRicU{#%E$bEXSyj{07DV^ZI{L1dGr8j~D+^2WMg8z;g zO9)yl`9dM828qJ$I~@16^Z0UAItLT;o@GIpdlF;E`RQFr|CM_#M7$h>Xs`mNB#?oOI|LCVH_#qI4;~?2yAfhLLWK&)ihF$$J%l}W-n}?a_BQ1ktM9hN_A?5R zEglpCGRkb>J#o+sX(uP|hBN}rCad=v-mFr;M*ltdcOqQC0I=BvuSQ@Cm3ca4VX&B^ zl3(o*Kd80A;?uJ|Zr5ruq~~(M8RKg;Ri8ZT@dtW3l0gq1%-tB%?)TmljJcjwjRb&+ z@>E+#3-4&uw7|^Lh1ws$CL_8@dKO6Nb1ZZR2*DT>se+4$mBV~PC(1dX0)j7$!b47X z*cZupt+{&24NDZM1#WNg41b2io$q?9_yH6tM~V-bZ^JxekhAK%G4GTnRFd6<-h~ez zf*Eq-qQoiC-0|5PBPhb4UTee|1P(nX8x_QYVDTVokStcIc{0D&PbuF}*rJ_5x4$Cp z`LUcHrgu>^Z*f#`33!&3G@n&2!IV{C9wXx=|H?~VRnEkzDa9pg9dY)#cQ~jM?#O@&VppUq7|H5R( zi9PJ!pWouhMs3Pz;Y0hVrUy%@%OI@7$hNc-pn97rzh1sY1C{^juZm!e`i+s>rUvez zd*P08>_khK9%GS%v1Z$QZ-kTdRwlAh`bpo*!pd!=(_Z@cw@xjeq}M1~KKdEfbgB7V z#1!7l=rQ1h9QHSMc{kzcRMWtH+0$1|KTY#oFsX!GE@0_~bXCH%zK3bzxL|W3PxYE= zy0QKzGrLHd!je-2(FsATrh{5BCLn=9B$Bj-K*~1e2TgDpDV~I@t{$ce3FW-Zth)4ozPeFr5s8i1q9wRcjjHe_{5v9tj;ipMZMp9Mk&Fre$9 z&n(B}fB!%cBZsyhYE&a=(Zry&X%#fVsgyfP070FN#FYr()+xP%0ainpT1R{{mGGVc z=#^A5x9JvuuQ8bJ;(Dz*I8C{9P>}nV_9ok)C=mdFWt(Nu6gp<&Mn`fP?XbRn(o1)n z@rg-kYRaICUCi7s?#8~2fbNUo5=8<`FhwdiKtvOg7T%Nm1VF2ZZc0Z@n8QQ9fzAE0 z+qe(QzY=O)FmnWWi^=8W`;hPl-k!1LgqLNZ5WUom*6|E8^S7YV4nN4PD3*XGnP?Kt7%A{ZD4Pf8v;o}Yhj);9Hsy+tH8Dm{td$Dn`gme|-9l)do} zS0c7UblXXu7PU1?DsJ46dJD-H^>yLp>Enb8B`uC0@&-g*{R6(SW(F0^CH{H@=48qU9IK=U52=bKQ`wEar$_|BUzDNxn2$Fpfm-gGb z6&g@^ z`>ZzmYnh(lEr}*L`Jx-($_3miXy6v<$XE;}8pGA>lumKW6Epy(WOq)}F&L?{=31QE z4mowSs2svtZBkFyTG;TESmheM47yyQhq5RF za)#e#im~3JLn6=bO`zxkL>37gil;;^E)etsiyVTf1_ODT6;Q3Ve|a(4{ldx?Zjv<2 zhfxGrLAhJZK5vBqN~#`IDOp19w~&$05zB*37XVEAl6Ql!2QW^1cd~0{cqTz#%peN2 zmrO%za-9XSB1HDz^pjzWt|axEI(}&1lJ!kBah4W*mWnRWBy3S9R$Ti`#we`^b6Y#z zLJpj3Zk9dpTgVn22JuO6UmTj!$hyJ}5Rwc%YcX&G^3QNjwE`t#;%H*6T{W9o(>@m8 z@=`d@IsicLw;n*H<&BsZN#Kz?m3lfbV#@B~qLdi-IIpA|v*p$oG#@QYDc%t2(?Za{ z`p`kB;w0Iu+hXxk=*vPGBy%? zUSgVoaR^iUe7&@P>R?wfQChy1>k5OAzI7r$%e{FTN5x~1Ny60Qs31D-h$w?Dum@)6xIAMeZ8YvD@y)xR}=R_oLm8csrbKQ75?4$mJ5i}b?R2Yw@`IO8x*84S97Hu zR~SNcR7SQ!D0L2stH{-?u4s`succRRAk>OBoReiTR@nemin&?jLZb^rL|_> z!lvBiVnaHm#7;IM)0{!0k)v?p{4yUd_RRtNYj;G1dT8*2374t$*Baa|uiO20IZ8*a z8C?6Y9s9ha?!6iqr7Lyh;eptDEMC=)A7pki_H{51Jn?E>pLsg!>`~TFCqawJXqMfT zyxUoWg+K56+P2w2*ba1MFd0|Jb#;1s=6S||uEoY!128VCwJ4A~zQ1#K!J^}UvzMu# zpyBS;u8|b8GPMgktIq%hCVL?Vy7E2z&($bVa;_Ub3oFG#Q4z)uKo2EOFB6Ah1zdi; zc~HrXBz&HD+qxShTQ*y6zKEXl2ZduDhQL_t6&?;Ig{-E}Y0HxYH&MPphxRk{Y{Xz~ zODh@3f%0vWnLI2ChCbh&(R6+=I}mUtvUSPb)7CU^!$Z3$QozBO+Q9!Padxm|faw~D z;Qo-v7K@h54~YJn8akq1{kd`5vw6=0)kixNYd|aimtawu%p*<+hj&$C(s0~EF_elZLZLP@KxfFp0ckTSSa31$4gS0j#f4PD34QGZLB|{`)*U z^smZ^ndMCX77|2I*0gWo?s#-+=dE*vKc^&qYy1(0&H5@=Sx^IaNs7Sl4i8aM-i*M~ zy~B!zlRTC_E?U3^)^ILePQXj^`EEttqA}9`5AGaJ$1L7{`b^xA-@iV#e}+y`N^4ZiClIF zHc5|acgRNhD2iF0`Y%?FLTZ&hA4K7_$!ip`j|$so2RZ z6!Q6@%VAx2#uq+l2`C#bxlHU8U8y6ADNHbknDG=-(i_0`>Xg=D>Il84c}&S|REXW?B$w|rIC|SS z6%f(*>7ZbOun%%zYPLa48RpZRl8Lz>7~tmll(d?(FnFd9xKz_Z56(>t-6p7J00mZ!!9UJG@{e0~3J$1qg(4&V zUTSWgfI?($r&>NVB=#Z(!$F;aY=~M+x(x>9c?h_Y(HlLv-AXBfYtZ_e{kxoum<9W- z$H<&o!BkamVtD6%2CK;ZD zsPY@={S16OH(opR&jLYS!zYCky;cyEVXph3Y9Euk^a22F{{@qPl1ppsC{gwUhV}-` zuU-R4;OwLQ&ul0?2Bj&k3)}NL}!XiH{tfxXGy>jFhd^X_IX9ar}7}U zg?k@B#bzKUq9*h^_<-W%UI3y6x=WXULHa;7 zK1Pl*NPs2R>Q1!GLovhK~kPT*G`%{t&#tHPi^Hy0RW2*buz0Whn)rH}Ad zrUBUVwBg-9rs01vpOpa6mQQ0i(RSeN)j=@`dmaFhX_a$e<`YcPjynjj5yV74dgiNV z1M4dv#ynDG7k*h4RfR378+Lsz1Xje*uEJ#0v;aOCpY`YjJZ`Q0CABA2?5c5E*C-zI zMX*eWE{10vNy)tUrZd{d$IXy_Lo|70P=5C`>2L2f;Op-zck4S<>?(6kHR_;53@@U( z)hYzJKeRvbS&RS-YtG&#j>dP__#*1LD34lPje#XEh}4#U2*3|EVD zD+zmR1r}sE5a4jr)Be-0o$yjJ1KfE7?t*Mg?s&fQGi~P|Gc|xVFcbpVm9b!@2;xuf zGSgb=>LdV-1r|bGmPLmMR`~98V{rHef`EX>)W!TGZ%xImexUHz&=d+2Bnw4FIALbg8n- zB9Oo507YiKBLx>j8iQhJo1ilfEy0QdJXXBlWLEOQA?u z<)|>f{hH3`j|NH-L(ex8(wov?jSvmlLu`*cwB8SlQak)4oE9Z!uYx5|Bp*m~m%Jy^ zqty_%lz$&x^9M|XJAH)nC{v%;mvK`%{3fKbTfkEugqh>8`iXtcJSGeeq~+w? z=l<>6k_j@iYy#|O?hYt%@f0}zo(JIPM?YDTDTo>m5yN405lLwoX>?)jB1{FLi_n1d z0qnovBP-HjdJcXL&M@=ofj3%IN`dDSK-o(vv#ca(e5ZGZRwBb8*qHb_L60KH&_FU} z!_aSG8f3q49o!Scp_Mmuf@D{i3Nqomt5?JdD!xkh;1Qtr*~;s}y_C|cvi zfaIIp(vU}HzlVy^AWSFpVk3qwXAY{p zWxl|y8-%E_l17zi0Fjs_tPP1bsi)MsB)As1+%&6zxO}bj=-ZBpvwFwK%;ThBZ2J>} zLn7ZFVEU$Bkl5CSusfw^o#rk%5!szX@6j|oy(>Z-vqLA(wWVgp+bWBj@APUBD|^me z?^Y=B!E~cmGnjZP<$$WpIVYM7(E%BgB=Zm9VcS&*U@n4)7_0(Ko8p2ygpDU~ZAZ^Z zc84Bbc%G4xC*z}6;CG~U7jSaVU!=aVqzdSsGD6>I>A5OpGt-sehN&<07{+*&-{b#j z@$f@S=nikQRBKdcr`xE`jBjg}%^aUOD7_b$dmMF|*~Nr!vXsrH?cwEhu2V05 zpQzZH#b}Qw{P@<96c_oh_HM2#+uesg-Kq+ zdbxKHnu|=$E?9Q8|B&T>cqL>wCcbbVwBKym+*)oDhp*_UghME+*<5c~l}ZOP{4qv= z+wf=Vxc5ekxp_Q(L()`iOB(+jMcgk=U9)yRr?|^ncmdn1Mp4?Sx2o5DU$KG$7F=kj zkPsupE=k`o@1@6)hX-182Be(dr9W}42HbOO6jmx6?}+e9 zR1kMOnCDB!iKh!5p7wZz5vU9O0W%WCWvQhtSWoQOOp?dHmZzBe);FG$WE1|yHTjnzOB0YmHBV$nZo!|Ynuze=5|AXI%F@F9A0R0^uxljH19$^!t>5*w zWNYNnmcXDfZ9x(qXE}`BkNV_X6~-gjGclTotIR{o8*()0P6X-O$2;8y-`E_u6y>o} z%Jz=p1hzx`CU$x|MDh$Gb+IDPYG4itKjezV+k+g)mHm1WHB#_tw8QjC`L=kDDo$Tq zlx!a^Bmt5fJT&crCq#K^zlgYmG@cSz##akky337|Np68GL&G5oR)*u*;|gmnJG6o< zb3c=7qXbQI*AG>O@5!=GWJrmK(@@3Z5l$RrK|aHuX2-P-ejA_}Jr=idERnlAYGC89 z6A%{6pBgb^-28kbDGY^cdQY$0w8n0w94xG`u7j#*&%9}{;+H-2zSAfx0@ZiFEBoxzGwHTsJI+(W`*ZpND`cRv1t*>q8cwG6X+3cgvKV0d8n zN1=IIQe}ARwult-onf%b*t#qktEJ@LStmM&I&377dAz1JCJojhd#foa=IU|i@Ip%l zaa=Cbf#lXyfZ26$vD5K;+fYe&gwSAh!BB_I+)avX77vJ^I^M(CZ22eH(1mt8-z7ae zPOkc9(0V+|dCNxHk7;Iuv;i&q__q`p>xXvrjX-?gm-xLg=z+%VJA9Ncy22%-Djy5N zLANBT16wa8^~s;s;h%7u!dGm{ktJ}#Gn`QhqDX(v*?7zSoXGAho#-#DaOx~5zMAEx zMLdPC{wkT2x9J}I$%wdV*YLsmY;8p)xo=s;Y3p3Ln&oGKUa>PG`SMq+Ng2kNR!cJ* zbeX9N?M+?)md7-Si@j{>Gys-w#=!C$Qz>Cdln6XbJ57qq-%Q7i&cKiZoN12_9)La# z)1n55YGn+9hE@6CKnmX<}x58bb`_8%qj%D8TQ9}?`Ljm^BW?E0gLG$s9B zrAJ#(v3w7~LpqZ-Y#{JyVSRiGR*?{v!fDAfdQ*%%!q3P1?JW z5c)BG-w7o$S+x={QmD|vc#lT*;8~2fveQd$=!GCme%w$<@la_skkhtW2>YoSS-BNI_+0?Vxk$|5O+_3;K?q8u+CLnhvu2TC04akaHT3Z1x>)J!ZY6n)hMuO$1L`>v?;hw%7g^*;bu)E&1D ziq@3WlV~!5dl823a86liCez(prfRWNZsWSBV!D|jQ&B2FeQ%GjJ~a%MhC4sPwW^!| zE4OG<%u-mXk+fc_RBxOVJ^?*vPLTHp=YqSI;=iZZzh|O~8C?}b^aMK$72&x}403)5 z%g0|;8>3kt787ibtH52g{sm>7QA`_`js(>zK5K6()7+TcjK*H^rR9<`!g7K&pZ$06xWrf6erT>ITIK_9OBDRRoZkVCO+p$5B;Qsw3 z!s3Tkru>>AyHsy3vVfH7a!JlW{eb(m5F|T&)jKUwT&sw#!8Dziyi4)41e^Hr9Zmvz zCA%30*(a4ZpxZH&^@cealIv{|`}>HIKPSzjxScFZ#o=WB{Q>(ca&nF~#tbbeeGd}l z`GH8S<-U9qycDNQb{E|jkca**NZ5m$5~q!G2lqE7!C}}i-i-2=UI1GZZu7};5nI^N zuyCcwSKd-~D`iSMy`CgQ1<3qs&xKu?#-YZ94GI|0rNdn7svISQICNrV_^x=RPzLP2 z6Pp*4Kk^1?t+-I+(jat8AbuY@Z$XS;Mv^0wUlDibk)9_Q;+$j+_FL?#r7IzJMddqH zde@-2Q<6VHII3kK@;Rw)%AA__9SNw6AQLj(dw^@v!J%0RkC=|F*+mRaeIJhm8R+aJ zax6X2z-lQTc$sR^1GxKa2-gQ~$^u-g<8g_}!nwi|dL?yledcz&yWG9(s2g1+ts4tO zJw_n@vD+$%r&15u077Ztz?}!soRn1$*D|PJwaMZz zeiCwrn%F|BPenou{yb%*?CEdSeFtOst)u`yN3o-)kmv~&`**6}q=F%(7wPC9=tPV8 zYB*iG3+&gA=eX>U-ekFtj;_3Foc8gjk*PwQg=dzbyV}XYE<+9FcPLjhqwtt7;fLg& zC>;DS67u#irRn4ob&H2B)`;E+$~twSrU6RNy|M*I9eda3e8adHx^YTJe?j#hK-RNu z3Vl|;W7^&x)LV#-Vz9B4cum>}aXQxvfv|E`$U`X<$wwxvjgJf~>NZN^LZpnoBcXPw zO~d|?aftjr54NKsYKKH?P}Y)TRwl5!Ql%mkP^TUDvXJ+%z!@>LRq zZ`Dq<7DZ(yf9(lzB#$J;Y~?BrpD+m}nYTl@nZd>**DuR1U-q3Rwd%71Jty05|Q!qd5%~f#s#8N3(kH`~c$zv4w6@t>TbTdz)$tZkc!LV=w1$dlwcK zoZ>a#26&EHpA8Kd2YN<#rK9#9J5D5e(5cl6Q>Yj6enHEf;hhyPj0_m-DS)+grb=Gd zdXhPht@HU5|Cw~R`lb>+tq3n6(@Koose8*2E+e9&_D$|8mBJu5e0X?xV)tq);EUd_ zI_+QpgU+lcv}L3>A_K-q#Pv?O!9pR<(Yhm?u)85E#;-W-4&W7AD3e)=Ua0yJ4>LV` z{awb_BhT@tBv0wuUk=B@KHLnIs@t`7?QbN>izckym;TsT-lXX@%-^&7U3j0h{*_^4 zng1TqU$X1zlRz!fRyhf7T7FT|JjXKB{-s&@Kycyr?d@&f`jvPm(y8p+){RHkZ?f+nYTgr@p*#u}*q)QH5{gA<+UK1^jt7HMZ7 zM^K+hOOJytOka-NXy7N_EA412v#Hd!VeCg{7EiV0&AV6R=I^9 zSY4PUZC!ybz&BTBm@{fio@Jjs2Pa9QKm>K!{;7QOA|kh%hL1-M7GwCVfJjYh)y%5DY=_dKKmtSF5kNJjLuMJn<-P1~_$e2lsHXCNJ z2vy?gJaC=LxlciEM8Y-2!yM@AJF}7;gRl&h#m$ZkjEMNIrlj_o>CHDXQqug9XudS% zxJm;Uu=;M-Rzj`uht!)?_wtRd zt}aj9*V>g`hu)_zA9Zx=DvK(&FtUg*uP$>levr-Y86DN0`H8=z=Ax2B7mM1lqCaP+ zJ(&n1=r()z_dYY{y(vC-8vK3>as_m1f`#}bf_q##W>57^{aN0|!r0gt?gQ5Kq+Oy{ zuVJShit*Q-YWKrLkma^clmUfjg_ogjLp9>q>-Se%_pV=lW_m=VYeO}CPG8~ubUFcH zeSLjR((A26#9fczP>G%x!65o;?y&B zLihlZws@83yxLutt50<{=GUGG;c@c!4}bss8yDJvJ$0w%XKqP!UQZz@ zNzN;kp;OI4FS8`dGm5bni(hy{4kIf22)>%fUHM-vz9?4bC{}HvH}oIif(Uex;*zDANtoK=+XI_TVO~^!zO&gKeb*$zL49CGMOj)MG3Rw<%w_fB~ z8CF{IZ;jw{5u^}b_|~Ut3!EN2=ccg0jl8FFI)$<;MBbcs+aa=ApYZ4}}&s4+^rJ zaetC2WH+*NHjZb(kl&Q!NRXoEHVc=?%}LSDyx}Hl%iQEU*OBG9nzR7LyfOBX{%X-( z-IIu~LWZROOm0-ZXaBT&mhje3&G`*Hl7b>=CGRKE&rqYF?cdC=KAjqDQVNH>>Wo{x zA1rX?DN?`ayc=RT#^W;94v$o`2N{P(t9joOX-?hqwqNNcgx6@Bh31|{P{Xd;=iNcb zdu#WMW{Uzk*aci{Ckmp-|3LST(TDFs3Mbl^zy0|b<(uj&2g>kLM&!f01-#s@%hf(9 z3W@|@z3e2qaw@xNlFV${8;yL1&js68hLnt8sVJ7)tG~Z&PM@5#{pA?0YaDu`q2dW6 z3qZFK{+Miu+0{{h6?09OD2 literal 95984 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�_awr;XVrsyF@l5Z(k@P15R=k=o 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%0D?Cf$&Y#^2@x`iT7O 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 diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 4f2a444bb..5560b4d28 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1351,18 +1351,82 @@ "value": "eIg8jdvaoNNd", "isInheritable": false, "position": 120 + }, + { + "type": "relation", + "name": "internalLink", + "value": "ivYnonVFBxbQ", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "TBwsyfadTA18", + "isInheritable": false, + "position": 140 + }, + { + "type": "relation", + "name": "internalLink", + "value": "0vhv7lsOLy82", + "isInheritable": false, + "position": 150 + }, + { + "type": "relation", + "name": "internalLink", + "value": "W8vYD3Q1zjCR", + "isInheritable": false, + "position": 160 + }, + { + "type": "relation", + "name": "internalLink", + "value": "aGlEvb9hyDhS", + "isInheritable": false, + "position": 170 + }, + { + "type": "relation", + "name": "internalLink", + "value": "zEY4DaJG4YT5", + "isInheritable": false, + "position": 180 + }, + { + "type": "relation", + "name": "internalLink", + "value": "QEAPj01N5f7w", + "isInheritable": false, + "position": 190 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wArbEsdSae6g", + "isInheritable": false, + "position": 200 } ], "format": "html", "dataFileName": "Note tree contextual menu.html", "attachments": [ { - "attachmentId": "GQv4tBf9VSON", + "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" } ] }, @@ -2442,6 +2506,52 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-rename", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "Branch prefix.html", + "attachments": [] + } ] }, { @@ -2654,6 +2764,13 @@ "value": "bx bx-sort-up", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 40 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html index fdc6f8f76..f46346f7a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html @@ -103,13 +103,7 @@ the "Note Paths" tab in the Ribbon toolbar.

      Titles of cloned notes in the tree view have an asterisk to the right to easily see that the note is also placed into some other location.

      -

      Prefix

      -

      Since notes can be categorized into multiple places, it's recommended - to choose a generalized name that fits into all locations instead of something - more specific to avoid confusion. In some cases this isn't possible so - Trilium provides "branch prefixes", which is shown before the note name - in the tree and as such provides a specific kind of context. The prefix - is location specific, so it's displayed only in the tree pane.

      +

       

      Deleting notes/clones

      With clones, it might not be immediately obvious how deleting works.

      If you try to delete a note, it works like this:

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html new file mode 100644 index 000000000..34ec03533 --- /dev/null +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html @@ -0,0 +1,29 @@ + + + + + + + + Branch prefix + + + +
      +

      Branch prefix

      + +
      +

      Since a single note can appear into multiple places in the Note Tree via a process + called Cloning Notes, + it's recommended to choose a generalized name that fits into all locations + instead of something more specific to avoid confusion.

      +

      In some cases this isn't possible so Trilium provides "branch prefixes", + which is shown before the note name in the tree and as such provides a + specific kind of context.

      +

      The prefix is location-specific, so it's displayed only in the note tree.

      +
      +
      + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html index 3fb493c2f..97c9026ee 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html @@ -13,11 +13,18 @@

      Sorting Notes

      -

      Sorting Notes

      -

      You can sort notes by right-clicking the parent note in the note tree - and selecting Advanced -> Sort notes by ... This will sort existing - notes, but will not automatically sort future notes added to this parent - note

      +

      Manual sorting

      +

      You can sort notes by right-clicking the parent note in the Note Tree and selecting + Advanced -> Sort notes by ... This will sort existing notes, but will + not automatically sort future notes added to this parent note.

      +

      The sorting dialog allows:

      +
        +
      • Sorting by title, creation or modification date.
      • +
      • Changing sorting direction can also be adjusted (ascending or descending).
      • +
      • Ensuring folders are displayed at the top.
      • +
      • Natural sort, based on the sorting rules of a particular language.
      • +

      Automatic/Permanent Sorting

      Child notes can be automatically sorted by attaching specific labels to the parent note:

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/1_Note tree contextual menu_.png new file mode 100644 index 0000000000000000000000000000000000000000..102295d58886e4830d45f0ee4926c39ca62887f1 GIT binary patch literal 95984 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�_awr;XVrsyF@l5Z(k@P15R=k=o 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%0D?Cf$&Y#^2@x`iT7O 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 literal 0 HcmV?d00001 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html index 2944d671e..c85c18882 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html @@ -14,7 +14,7 @@
      -

      The note tree menu can be accessed by right-clicking in the  @@ -161,9 +161,81 @@

    20. Advanced options

      -

      To access this options, first look for the Advanced option in the - contextual menu to reveal a sub-menu with:

      -

       

      +
      + +
      +

      The advanced options menu offers some of the less frequently used actions + for notes.

      +

      To access these options, first look for the Advanced option in + the contextual menu to reveal a sub-menu with:

      +
        +
      • Apply bulk actions + +
      • +
      • Edit branch prefix +
          +
        • Opens a dialog to assign a name to be able to distinguish clones, + see Branch prefix for + more information.
        • +
        +
      • +
      • Convert to attachment +
          +
        • Converts the selected notes to Attachments of + their parent notes.
        • +
        • This functional is most useful when dealing with image File notes that were imported + from an external source or an older version of Trilium.
        • +
        +
      • +
      • Duplicate subtree +
          +
        • Creates a copy of the note and its descendants.
        • +
        • This process is different from Cloning Notes since + the duplicated note can be edited independently from the original.
        • +
        • An alternative to this, if done regularly, would be Templates.
        • +
        +
      • +
      • Expand subtree +
          +
        • Expands all the child notes in the Note Tree.
        • +
        +
      • +
      • Collapse subtree +
          +
        • Collapses all the child notes in the note tree.
        • +
        +
      • +
      • Sort by… +
          +
        • Opens a dialog to sort all the child notes of the selected note.
        • +
        • The sorting is done only once, there is an automatic sorting mechanism + as well that can be set using Attributes.
        • +
        • See Sorting Notes for + more information.
        • +
        +
      • +
      • Copy note path to clipboard +
          +
        • Copies a URL fragment representing the full path to this branch for a + note, such as #root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n.
        • +
        • The URL to manually create Links within + notes, or for note Navigation.
        • +
        +
      • +
      • Recent changes in subtree +
          +
        • This will open Recent Changes, + but filtered to only the changes related to this note or one of its descendants.
        • +
        +
      • +
      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu_.png index 102295d58886e4830d45f0ee4926c39ca62887f1..5a6572962e32e4228a7a676f1318fe49ffba22d9 100644 GIT binary patch literal 32231 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 literal 95984 zcmYhC1xy@aw}yAw;ts_fin~)>iWM(VptzUf?(SBsxH}Xr?o!;{-QC^q^#AWoE+HY= zkjc)>C+B_6^MxwPOClrSBY;34WNE2SUqB$R0|*3l4+jH$V*Y?+3H*6yFDk792mE-z z8HIpAq#)@}A}TIA$LX+HAH*m6o-SkTM?dZ{(1-}LVSEVjA*F%x^LYnGN1~x4#SpiX zr}HyHdk2ppXgB(iI?4ssdF}Z}os+w}yNR2LX_q@Uvb%Mmn5v`WUHk76cjsV_i=9MG zWFoffaCnoyW+;OAN0978CoGBV z+qyrhJl_@)yZlFk=_2XEOs~fnWd+uUb0rE%6rzuI+tKjomtsCJV!uCE|>wwB2tG?U#*5Gb~=<^I8-ovj{$Fn&%pilhJCIjoD8(@}}Ev_0G78 zh{etBEtFSq)MhYJSb99%4DUy3uZ>o$qUs<=aBtq@+dSM#UzM7kQ>eY<)X@~$!W zQaJhEHs?vUFG^paV781x>|`|@xG-|)D{3ERPb(r=X6UYEYn6*NHbED8q!6+S{7QO< zQ@NkK&yOk8Zhl_0%#{3kNOfUmf?P?v54$?(SsB0b-xiThNJDE1oItE zk3@fQ9`20F<9b5U#Dyb!mr&4QfBpj9Cz3=+f7{fsPyS-wFiP%fB8hd1sd|`AS>mhS zWXNO@b2}j?e-&C6IT``4$NhQ1L;>S4mL7V_9j9-~Bf&)Uvp%{Dq-hcU)$606&Ic#R zVH|k|qeD#u)Q&=irrJ)WNL#4-4e(MYh4Xy{r+j!TW1Ow9HH>1&(Cd()$2&LXbiF-Y z-feeLB^$+(#dL)S3tA1*7CsyFQv+|Q9-Tt+XAc?C)c`exj>m2CK+YcRZjxmkErqD^ zCoJm7$B(=}ILOK0>+jfTxk5WU(D#yF=6L$77UBC_A?<@Wlu~(SL3$}gWZA*En*iUX{#0+z2q zZu@`ER?f#R<_z1vrIju|&HFnGIPkk9FAM`n;+sSZ>-4yqXiCl?@5Md7} zVL|C@e5}^vhQ>j~OdJpaGqeVG_ap;Hh6e?qXmTA9hPZW3y2Xz##zoFLM`bm>C@r** z7U}7|e6|9N3IuxOU**0q9->X)x(l~jHAYTttgilA zr6PhG4h;ZAQU8npcAkt}^WVKU3& ziJ-7O#|2Lt`&m8vg~;db8aSHqF|D+2Rap9pw96vm&m|p0VdJa9v~iUt7WqC6eadJmbpB zPM!os*990Fyeb09NnSULJ-r$x1|#>Hv{(?kSWM(5Xd(5yo3EgAIfZW4NDbb>rk@zQ zGY;f-jZYG&(JP6g+S~qg+KgF{YSjcUCK*Y{I*@d?mTEDpVUocBWe;EdsSJ3BApsgW z?VHJQKM0SkPX;Dvep+~q&_^+ZaQp#(Iiy6gY1L8bD+tc6+*Q2(_k)t9)s3?GZA{vNwT_h{lxd!>2oRA6 zF&kY|KidHVuynaP)OrlUH5U*IUPZ9~BxK*Ec)nYF|Fsk2t%v z3=iQra+3|5u3SmKE4O7d9PS6?$I2zsd6N)u%}Zw6xzwLTX}61Ir&ZhP2+LFig8I~o z2TM2r=$;qSP`8+_+}%i9q{=>H!lo0FR5|(l?r<|dE~h{&_*2GX<-VRncO~44 zH*sr_ywHk+PeV%)x@v?CYm*T%^c6?O1kUG2ElIC-$g4zEL4UG_TYL9Qm|IG>%cfLv^{3O04{br_9qjQbZjkXmdN9Mi$DqMyl_TG6S^=)mb5p-@t(4?X_Z}}0F zW7m?^FOHdmOLF0iI^|EIf5@22^iDZpxk9}lVt#U;rtO29XHW^Y))zVi&5Zncd+Z>r zKiD}Q^PcZFCSd(qUc%^Vw#~7(zZpj5BNztIH`nc^`@jWdtnxi)j z7I8%9fS0=D%V(SVJx}lv(}sGL;HulKQkP1+EtyAq-B)`QBAulQTx;9qK4|X9oXTV- zjF-tfLwK(7_z|hJwT8>e0=#$}Y79wC?})t^_1Rz zj3l6ZFU)QKJO%CL>SQ5{n7*76;*2z2r|YyY@pwR^yD-ldR8<}!QdIEU?dHayj04(n zPLrC1#oC8gMsd!ngvpF#>URZCc=+(+p8AVMN84oSuS8F!$(?FKcB-lip1qRdY)RxTU%THkFK7 ztu^&xhN5&pO=y3?$$ch2T2>XqaBbExAVTeZv|4Jo@)xAk%d7fHd-sI87_=~>f>iCv2*G-i_gp>5Dt>?v@0e5XuDGI-K z{>+k7L`|gC75qp`Rg(1R=44VY=cHjNYz9s=l6cV-y^CvJ!F&+^;3J3_JZW4n)0nk- z-f^O{@HHFWhKO1iR@>JKPUlZ^e31rqewQwe(Gv8{hb+g3=_e@{Dt+9z@02PPRrJV} zVTa6mt3e8C0(EMq2^Xb1r;+b>O9V^}f10J?->CAE2vcb;G$QT-S#XOL9KU8P`JfDxA>SGo zvGh&&dHJI3Fur2{w6L^;T8{?PEvLX7-`)a@TRs1*h2@L-k6xENN}OMlSL1Od3mxUP{r2Ewwr0cICk4TW?oVrn z>ZYPg`*CtqO-RUa=UHeru;$aYeWPuY|X?R~1ES*a_ z811Jnqb(G1&X#+A%xcTA@$_`Q7bya{rXDp2SG?;_d|SNt4F~DFX+rM=7BPGpe1~Xe zXatv>z>BBjF7xtD!U<``G8we1V$aukwc@;H`FdO5Uh4t(y&&0yZSCdMdE}R}oUv8& z377rTN&Q@8K-IF-lBL`=1wr|{)x8faiDhEHHb(;4i|tPlFkD?If3s0jA@4WsTK~l# zQwjDn`_{u#r;`>e*Nk#FTO|ec$dOF7SoJ+i`DP|)Bf0=uSO9apm6R$&)DYX{Xjh#q2df5+B%_X#(cN=f7)O=v8 z)=%w+`qwgD-xdpvwqq#*>qk9$@+FrZwR7DnZ02(Ia zgi}H@zeFUR|Jrgj)BCnD)GL_n@;o?2T0&vcAvr6P-+q>Xd2)XuR}+X3Q`ACY57$!) zsryH=!yHqxTP2ezIJA>9-sbtwA4S=Xqm4Y2oe(CcZF#H7k&1mX-WkMZl7}ogf*b}Y z6HDnEq>DnP&-Zzsx!W#~F<+p9TM(#aT+j8KZMI`12SMfr1{SS1vnCa-w-^x2*w|~d z$+~pjIW7ChkK55=!)oo1s`k$peM5QWU#ej4=|cAJY~-$Y-Z~AH&ScX#mxD=g%K+E&w(C%sTDHn;jZm(plE_GO1 z+CD7CFkMOMp_!ts6OC z#I$al4@df+|J-1XqsXiI>{@)gvi`7{=9+e z&B8v)lj}pSb4p;{LiVti?wsNCO!9Uw$=>r`IWOi1FOF2%yzgJfIqkVmYxWki-^|Mp zh9TF8AdC7HCzF!0I=1HHDjDJM+mdcQ;)+mN;qpIITu#GUl*Lne@UEcuLUddN7tLs6 zVK?XJ5Y$xIQ*Ys2baVYW4O8|^kLS=(FCq0=(d!=hpoiWwwb-1s@?S*kuI!_1xjyZ0 zS#_R7i|=!E*U?#EDX?`tY!{OKP(hq*FTjK1I4Y~pNTx%Wd7ON{8e_g^y<4_-?_A!) z$|b?+^Qd_ui%L$w4l7=Rv0-4Fy9NPkvLL7H7-erpCYg!?cQA_M8_ z6>xjhW7B_JgZ=pRGvefVr8m#|2<;<~1RZj82eHSFfCm!%aWjNsIN3DA%l;|QXk8o5epYu(b2^I^iQ741N`nX9#a&25SQ zu|JpUah0n2me*V+NnDH`w3ZtsNOyFS9ZbwdUs@>|M|0V_|BUle7Hr7Rppn`ncyi}x z07W@6nzgjYYS^3Pe%7iMfe_Se7lq<)74J^Z!`vTva`SWdO9OV)6lQ9Tk4?;_#lnchOf zUIYqv>u^fR@<^^lsTLh4=!r4z0klo9#h)JR&G^bd!{)kf44EWrud7syKBtGPVe)ye zr<0LM8D_>yVyAh1sz=V#0$ST?CCTKM+a(22>0iwC%XTI^@oHS{FDKSLaZ)nli`KNzG36T1~H7)A*oA!En>IO-VSK5f^Lf^5BaE6$lwW!vyl zu**v@eVl76ZX$B6bX#Xv-+3cK5^|HU`7d$*_F2p4$A4t6CddVUz3Y{ zn8p7%`VA+YdqZ)>buXPwf_ud!uJQaC(Rf&h#^Of%VcX@mCjoY#;DCm*91Mx72f-G}MTx$*eA_spFnZLvh z?4}uw?EEQbT>R7D0pK)wjkW`!EM!~6O3-jypMy%PN>h&JY&2^ zrA_tnymHtydXeat zl$#|kiQQuw*WCf3#j&`ky*s~4$}zewf!*xeAzB#U({Z(C1gC_*2U7oO^BI%RP3xJb z0ump5#|-LAje7_j(UZ`H0cJt-UuUG9`@??pA@Y;7Ppk7|eV-XpY?Dk5&06NrgON#0 zxR$?*U5zldnNcM>V6dM!OodSdz{>KW;8GI_6rXoh<|^EkE1KOyO{muGt3 zCTo7sjftFy^g34GTx;v*HPPO@XFZcD&xI!1Uz*Ev9h>jWboEmXJO-8w?~$_l)szMp zu>I%;oV5P@Ua~21rh4EN?;nc(i0ozrnb=k6kvzBULf?-&7G-eUHV~>%Zww(SLd+!S zbf=L1JblFrzxLbOikY4ry$CT@P*gxYoL+T@ny#lKD+cK8%pem9BOdI;i!$U6g$o|Zj=*L85iDtNGPy(}xadTDq@n91c#@5ng~=uT?M~y`bLVc&yM4H@!efWtq!SwF z7u_*F{0d8^?Xd~4YPu=A7~;;y3p{McRaIweW9;6$6zmM}P~x7{IJL2nDW_t#$lZ*K z#i!KgS~Q>kJy-ctcWR0GD+ZD69

      0Az&kpjG*FC0zqg@yUUBy21H!SL*5ZOf4j;2u%x35FRpnqQhQT`boWriOPjDg;y(fE7ZbE7r@&^Z(2YtDh zDYYIGxU*;^Ks=wyu<>=XlU2M6?^-6ggo{x+su7E75YUtp#u`g%10~(6R&r<@>t;>5 zIjyN9S)?Bb1&z;8N~H7z67B~_qyBL+TJLE%!fNt=?A~6{ck@cnU^;{-3;@aRMNdFq}{Cp`&-8W)vR7A5E^&Oh)T{WC3j%O{t2 zXnjRYwbNg!hJ;ZA^arIZ(!u(VW98kZ4d*U5UM#SB-KAhll%0?j0~L(`LOpcuJ`ng- zFbg>*S&Sd0KPFQ9z5crvcBfE~ywqe*reidbXi2K$I6JG=s18V`w+qJJbL<=5+m4HE zrD$YC>q>oR;9X0QL^EkQvN=D2;iwjc!d{>bfrR`lvOTPVz(A)S64>mpNj_GgV!9_f z0GHGf)mzjC*YmGe6U7aM3(}; zHE2b?4bvS48&#p+65Z3OWd7 zHDJLbxE|)O>~dQq9!u|1caqjh>3>9mKS_$hMV)2#A%r^S`ElIOBV{bv$KS1ariw68 zJD7kkR?ml)6QbidzcWOJlK}%8BWu9NO55-G(xek{*t>4F*qz6yu!-}L)Og}{!v2ED*5+|;z%@%_=XPEUD_ z8(j8Cqab7(Ez-&jV{jQNl_R8^BW>)b5rXD- zpn)*Wc{wA>bdd8Ij@G9L^*WiNa86Na~E0Q~b1^U9kDmc0U-X6$|{f>fyBeT}< zV%^jy4Zflt1iAiq-?*|ck9u=WkU)mlV}77v);td)f2+h~cEaCwGB64usNOOCu-%PO zKl>_rIphjmasy26Eg-$1E%EPB+8}Q82Ce})f{vpAO!;W&6RVR2SN;2W?PDNaS7C}- zwQyRUG{Am0yL6~!fHHx$Ph=+M)uFyCeu#kS7#YDz!+80%e_TDXTBA8r&A2(R{;GmL z9u&Z%waVW-KVd|ZV>{c=XxNz#RsN>qc{9W2MVQ7;ti?<<9hz;*#3JWCKp)rKhDlf|408gJq-N0Iar z4_U&cqmdk>BzAD9^RC=rX5diwj$76$eGs+|zA!}iX>)Daro$bQcX6H6?edHZ8~GH| zM`S`p5T1?(6AC{NYz;(!U~GZy6G`er>&Be~HWVKoi7>D86!OZ<&>->Lc8P6zEHF+Evflc>k_yrM`> zIVHjIclF6RmB}cRudfVm>4()efTM&uBjbV&3D*^cEITyLo8r52mcq$D?dnWVwB;Y< zGBm=e?K@$O6%{2WN)lu9ZAJRdT#WPYLOqn5qIhy;A4_nGK+eXA)f~Th_!x|N>bkB9 zI{X$i{7Xh-xMBapqHS6nb~s+X+>*p{7TfMiue|h84a8$SSK+$3?JJ{ytmK~YoTc-q zo{b$*Sdc>p^)Ks6(eK7HzU54nHBGV-btkSEI-laGW5$!jm1be(Fw}o#5G~fT;Z}cd zDkIqqJR3@ljd1-UbTzAxGiCh{0nhqqv6u4@oS__}JDrDiD2`G3|G5BNODIWG z+!bJZC-`y{m`VHd?C*T(2+2II`_+0gQVxUa+cAZ|HO;c-@V^KB)saz-7V1cuRIv$A zqsD0A6K}@6q#8d)$f7!zr&)#khtmO4~-NA16j{xi;KsC^5O%K;LoSu)l$53Q2Lc$oic06s8ZM42Wo z0z9`#vMM^!{1Ns|RP!f0x^sQgaL4Nmnno%tePuo(C*bn6g%F8qSFw2ZV&xu09u*6EtK3ZqqJN#r?axSB}rOR2) zFE_$?QKzh7B6hZtXHZ}~@Y35wSOc35Vnn4;P9u2n@4I<(fX0Rx=Q%u&_8U6f@Z zGD4?_`bAl__yh9w5)@OurcxmS*gn!#r*Z_D7aB>J*6jlAkMY=&HEQEeqn%l6xv*|c zCc)^NorP9u6%_wuTjK(Rb_XLJl~0VwA4bPIb0|@ZOv^N!UrYjZQx31jC56*Xal@fZ zh>1^T#d}*e5qD?V^#+B`?%kdB84=K^*{L8s3rzt z1&Xzo9zGf&ZNwLnWM?rE^9Eq~VA*&=fv0^~2gA zxe$C04K5B=F-!=fetMd4vf6FVCRgncts&f){IwXrLtDWl70UM#oH9S~BG5N< z7Ru9(;UxlHHQ`d;<=%#ikHk&D);YO!uhQKg{vZ~%_D-y-lR>QgPDHXoZm3jS%%NBS zbNwY)K#01a@tcY6QufXgtDXe{UN9TAl>9g87n&cXEpymP4hdD94t~#8a6Oh|%-iQO ztWFJ7C2JmkJQtavjcY3g>5(18AR0$`1Z*n&2FOSpEDHGbPEMja!old6Gq>FXTMI9h zO0o52ClC3yUP-f-iPLx^dv~Z09~)ZQIev-P(^UXto^)22uS4mevKs$dRy{Fy0hMIL$^R{de(n^z?+$Qy7)M!esibRS~o*+A)Q zK}Nx#GvCYR%>AHrG1iX}O0796c8;treGVWybz5e8%4uSG<8;#YWkHov>?GA0p z_)D$AGzi8KU_XhM0QDP)AmW=P1h%o=0qRT+An%4nAYMg~z?+Vu^skYY5#2w`dgK`V z_A56dWsKm^mpV%P?FuF`!_&K|(mpuxIHa7BkP zvXh`W+H%oLunXWy?*C#|+dd-Gf+T~ms)a-e>lMd2&a<|sat-scS~?bHxso3E3--XL zv-b95LN#@LXtL{r!ps!U+l9V=(O|c}{l(IDQ+4PwwrptK_*R!k96)t{iJPciJ-PNrqAtqw1>@a|u)x9E~AA@Gq4Uz31b`n!5e)9ZH zv+c$E$Hsr8W-0`+U9xbcQK%Gqb5st}mEh{A{^l4*#gCQ>!AdChu7tCh)ucIXb$ACG z;kxniWvneR1E#~wSTJzA>}*oFt^M_;!eqI@)};OAw#2`2*8jDaz?wnlEM85=3@BSv zY26Ns3x@#!W@Xj>;$%O>SdZJXMVX*3>cx}7Q`bzn^8k29tV`DItr~#HG6KLIx+UAq z5+~lnqTEkE6Ls9A2N!5dTP_DTNB-n1$k0uR<7lf?%%TW{{1cLP_j9ATbl)E5MmEEl znO?dpjR*XwKMSqD0W>UW#c4_IG13=!fb2U{y-o&RXl$b1`{-WhfkL4d`g=7%eUb!l z*6Gx?+ePz#X`fZ-=f3p9dJ_So@|f* z^cfxczOwHgr=2!zq5Oj{NdR2ySO$73Ch3l|=tP~lpW|Vg^1=L$$RluBm|L@nejnE@ z*T@QqU7fU7%?0Yqmy#9FmMs(S@NCxC5zahbANKCJBv1b#Sy7hmQ)$pJeMO5wIY930 z0V4}hk;rA;_e*aA{&=-WI&{lXc{2hokxd8K0LiN5LSg{&i=*}J^$E%cmdGJ`;|100 z98%o@g_vYNCNKwpyLRc;ms~blIMHe%xBkJO0c|z~7bUtcpMB00ydUFmadCbfrH8DJ zI}0PN<4Z`N-ARk%=BXi9QgHmsCp*ih*VAth5F?7gI=HWrN zS0miI!ejWVVUt_8Xu*Heh)P>;7e&!3oSO~`*b}v#l6~|N09Hl_$JG9OIZ14d#hkh_ zimhou273MfxNH=bUtRbb7@%B0_aq#&{$FH9`r#ivw&NMawHpQSzJ1691%iyfu*X1_;h;0YsneRKsjS90$v= zr<0cTTK9Pq=Z0z}<4&WBDq*PcTi|}^{>>c<9QVe0YH^Pe{_?#uoBcYZYSE9@YlcU(x`& zB2;zz68Qh6RHQBcp;QL|_+!=b?&&XB`Ov9uiy2513q^OS&(96aAF7*Ct|be`%TAmw zzwFvB0XbyY2?#G86u!R{wC55Q9?r2vhMJ1NMS={UKy7D>6+_OzRAfN?Ku-NumFxW` zxT!a?2UQz6|NIVE1`|#ik@wGinNQ$x#)GyIbsJAE`{z*voLIE>-l<$f93c8g?~{Fa z7*#vAAs`hYOno(k)7EagTXnx&fZ7%oI?fBJrGPO1#dA3gFq&rsUycbrmAV|`cGkRO z9KQB@5g}6=kg;QNWdrphJn<{^kV_CnrcFUuiut3UDna& z3`Awy5y#;h$si3y1e78ge#cXf`4y$Xp3kKpBGW#-)gYvDKaQ9Xir+&jti)XKaXa5N zHW`Ue#rGUz16??c=k<#WBV{wvH3*ata~=(l9MtGXVe~Vi4k~a5p##*S7VNgaF0Lvl zp1z=agjG1g>?;qPFjav4l4ZU4Mx3|Q^7EPZTeFt7v1u%}wRpMWU+wb5HgdsY>QoZT>qjavk%Wvl# zb1b#2HT@iIrCXnX?EPWfJpfmk$Dr^MzcOcj4C$fKcG(ELVTan@@To5ippJl*XV69! zpZcEb-C``tNca=u5_ArKB<$~jB8?~M^O4?+2hloX1uE#JPw4f}$K52uVSrw!TaRu~ zNp!v1-~}N={4P3Z3VS<^`xbf!hYqEJ2bG_u$ueG~oGK4R4EBj+K6Wt}<6)!hsTUD` zg6ehpd&Rq#X8%FHY38dY9*X2ifODZ5-hk=)!Xu^x`K!z(Gwb?)P|Ac@D!oSl+PTUT zqpi8g?Sg6I5@kyC!>pz?qpFH1NdO}UOnEoFB=~oL`?^eu)1ukVFqAbuL^dhF74(m# zr2gwKWn@y(aQx)I?00KG=EX%qVFsH&R)i9z(37l>AqIo|)8mg1(r=O@7`|!KlDOO! zQv5j39BT$W;`Kvl#l z!2;-iRY`&0pE^JYk1E>R0tlAh`D{(ta-xpKJZhPCN$n>Pfi{`=^bt0DmQl!TF?VBS zm|{xo|8-Gin)b$UbG%=#GVLIN_goUe^by7o-c?p&PD2oG?i(gZqsC*cbL7+KH4DX&xN|R)u!|odUcVPeUV5; zEb=&$;uda2T3~OQtu-Lx#vz${hiiA%dMCdwhUNMtW%80G*mU(#d=ZV_IMIhY-a-8V zsAN*ooff5A%ul5thZa-CXRFbbj?nu@SUtX%az7XAIXt(MQOz712Sc3Y|I*i4cjwib z7cyAN?l->#YPwwX_mQ2vSC+*a>2nxmVB0N4{jflmrL5C-=`c8we^OVWOuw1DhZGNU zC&P7yhk!!0TcMt^`n=toaCA%Yj{4zQ(hF6h@#tc-BAHlogN1GW(H zsz;wy%bCsWLchkPruAyR@6ZGNb#)Bi0w5uo!OJqtbk;NFclaIda}{njT|ycg39B+| zBJiT)IsV7-HLV5oEMpZmq1pD3fN5lwUyS)rBM_hzWCcN13P}*VMiVv7nm#y&4R0z647FTu zDq0ljqZ^POyBvj$AQ$bT&b|@lEx*_o43kM*Xhp-i7E8|nxfOQQD?2>tXVKveP6?qk$tkGn9fN70TcPZR=l3~Wm{0#9IfmERk z!L`3v3_^t-%qRlftdLuRn31@9m6GJk6fHLRfzw^7#Mv2${bsL`2ddgt!(4bpg~`{_qujr-?*SqlriyDzo} zTEPAEd0sfXMm;%`!oOha++qi7W@-7{<%e3 zu#Sw*Z$YDIrHmE+sDktV658&cK4No(dKwTA1($XS*6xEo?q~UblcGOM@cY&a2n;kQ zw`<<#3O4j8kvK0TD7J zj&;E(Za_Cf3_}>PL+E;4jBJKFg;yKwK$3Lj{_{C#57>Zd2bmz#ah<#`{-0eX2oV3_ zfz*GdRYSXUa9=Cgok!E z?xvU<<(U1QTD5L}*)~3-`A1{y0f;YMWC|Q0;aYo~tsmBQUZHgBWM2hNNe%yN+b<0Q z`L8g)m2pW~L4fkH5qPg7fWl_YwfLQ)8qkA6%7GY|kzhqiVn@zwSMjG8|388JIyjGw z#BD#jDsb8JZbcksd(vpAec5g(`J{eL$Ayw$0Gsu91RFpy;^wm>{K(>{(BmcXY7nl| z$4MGk023`~!6a4gwe5ORCYemci|^{6kTrZno#FCV%cc{07tjzCWTXNdFaCvmpiZyI zmldOc?mj)Dg4$2lsp+=*r@Fvb(GUEEJpL{90ua}8zADx#h zx$S|co(g2R#nOh&FcaX+5yzB*P%AE*kMq7_y8xwp2yuDK<>!w)Fj+uY)4VXboi{|i z0$#}Mj6YI9B^-o|+3u?3_Sz5t4l!KkzH8*+4CH4ESY!~pn4)SR(}z9dl1E@YlA=OX z@&%`blgZ-P%yty9%roaot4DuOWqQ~>Al}5P@8PM`jViP-K|-mR{y z=yOmdOy3GzqbU+`{`mC(n5UMbd}sXClb`AFI-UVZhAUCms}Zy&&v)`+-G62q4}>Up zerMST5{JRmb1>f4!%&!!2MXq&5AAPHLiT{+CCw8UkiAj4d%qQh6NR01N6D{opJq2m zJ1KkHRc6Kw+Up^;L|`7J=~bnTaI z`vy++fE*h0OvgDM(97)b$_unLTEosw!NF-ZuN0Zf3;dZ z7UK$6xNjpFII}o{KwlcI!bwAdH;?B5&=kfSTZt1QH<>`eq39WfU?~@C*)O~upJq%o zO%9ukorsP3#rl4-Zlyy>Y_I*(yl~GSfKb2Pi|CV^g(5Vl!n8;lelkI)z-TW*MEcT2 z@~Rh}aZl{i4lF;ET2+sSCEPO<%eDX^m60+8JddkMTmiQlJU*vVm!=8?2mF#!dFHmfd#1^)g74=RNpP zeZLt_&1p$b(qXJbT92y!@0676WA`AdO7{%s@+MabFy>cEMIH#{Hl(5;h2})4aSm|9 z6D;yj!8tzlo>X~@)W@PcJ=_&j5+Suk9Y~&p#KKyJ$2{t7ju{g6r19`sd(a(uC{(m0 zk3Jvu3iVKIwlpqtR)8;H4ZZ;wji$k2xui5v$Fh9N9#qq;bZlRIrX?|Us@S(gY`w8O z((Mi-&^=%s!qywQh-?9lIJeO2MHHo==VmDNV@geWFh8!4s5*!bb50(Zm=V{A{=a@D z?Gs9E)c!N8rDuLWdrkWUN%NxN(;{Me{4kVj1qMA-RoYI&(Jvle9OUz#;C=qkdtT;P zw>jhPg{%JYn5MSqq~Mshl)yrR2?i>dgjkWPPQr>P-|Zf!V6jiD5Lu7dU!OE}4tLBm z26HmpCb#XWKYt+!*(z%~{EdOKDcF+UfYL)P51;!%!-?NckR^{K%!gT18bvI*g>d}G ze48lsxrAa`|3LMAOW@Y6T<5OuW3VM zRh*v?8y(gfsHV7=d;cH!yl7s*c=0^~1k)i%cyr@>i}3ubS*N8UG8GmX#b~1zP>&IK zHp#RAYGP*`qwHX?DGg7$m$D9E8284z&n@Yx)POr1zAW80)RDS-9!#J7&+7B!j{d~X zL9)Oi(eDa?;qYZ#s&YMY9By-tpHY$lUJbiar7=Y4RkrFQS4_>v>r24?Fy0!Z>}%>QE$Dg)73H)<&1BA z*{9SB^G{VS9qg!Cd&Nh$g>K~>ELogr_$KgW+|j>8GWor93%kfx6qSA;tzdyb#{tkX zIp*%GudB#+%jkG0OSa z&pV^8v$d2CxQ-@7PFTF3d97s(qfZ-0<7R45>^ro-D|#jEBvqN1WrDumAe5u;s^Fn+ zF-gJk6bW1nVT>=6MDBa!NA+ZTT zX+gS??(ULqHr?IbNb{S0ul0Q2_g~i%n3=t2<~l#ed0a9x`K}l}q2Wy#Wp}HjKZhZdS8s4X&I3@j-Ec6B@D-z;vm7| zDS=tk(;bHT%iZCLE%AIDunAn#x4+dIHdLBwWF?x{^X-u_3jGhU;`{XB@4ZeY$ zYVLUfFeNavA1wFHI^CAI0VBmR8?=jelz;F3E-^eBKFGmPrQb(v`tv zxBk@q`0u!v@1+M)gDI0OrISd0SZDPxbcHU_ax%R6mO9i&x$yQ2tH{XKf?u?-dzeX5s-qmJ{(a2|^GHI(vz?L3S0kR!jdDpKA*Y+{`GTgWHs_Bx zqKTEI!*+7S?e?odsXYfGfiX{L8{|!`P;Ob<^Mk&ceNSFh(KDcsgQ^Elk+#zOjnokr zuk=2A*nGToyC}l@3`{TbxME{I!wD71 z!O&X~tUDw3$KO&Fa1RLzQGV)b05=^5k_(TU3Q!ZJB>fBVLz-qrZzgi7uxp+bhj)D^ zl_JW>#@}R3?p-hw^ZeymvAF64WlC;?X)&32zv7~#EdC)d+(Zar&cJvrZ+xs8MPT{* z4f;j-j`~mxen{E&(5WSJ=(0e>$K(#l-#TDSZiwg(Eh~8SfHQ?dqGy;{N3CNLY)Q#r zzDlcipk34=K9L&LB!#&_H6dt?G_4hAb)pmab{@~7WU8vYUcm2}NkeFbX|kX^SXa=F zWATgjOnn2fBg~(M$?d&W*uZ)xt~3wi&JQA#6juOJ35;78IQ*{ zCAGEXqQm%;GVTOBD;5QRL|18#a;WDJFy^=R+m%SRS|5dasnY%B^x`gayZlBRaHp?A zDw@5MNR5S$1zZ2sIbAJV^vxs|Y^AI2?zW6)yRNvOx~zK1J`zXf>#(&W?Cds;4=p90 zvCY#7tf-XiFJ#zSU0*5=wLTObddR>D=AX_tk2}({)7+*qSaJXLb)DL^p)T`d{_#M^ z>EMBZFjRDLudI@vrT^O?R&&*j6xQCJ>>p7G^lvXQK|3rtv)L-y8&+A=-ko*IP;n!h z`Mg-&v zBdUUry4rWNaKFEPNU{uTZN`M?lw;xVXrWuBjHi6;DnOX{!zM#!%~HvKnJmrxIjXqy zig-ZC;`qVLFIh!j0D`VK2@b0uARNotNQ5mdrUNhzgd23?zvSM(5Ptm?YMXcZiMJLG z@|-hMI$QXlvRJ+vw;7zSo~3k(|C%!;=^E!ZdE1`)UbR(zLL58mk>MN>;5X=dvyNdOls|T$BbkEIFRNi`0e&`9l8x? z5N026KVM~n@n0=<^n62Kta=X>!6Yeqgv<29Y(T22l%EON(mKik=l15` z=vB%%MT#YP5nW=sIy}3&tkwsE3z79)~_V|_9>yyjX zge*mJQGQA>eOwynBQ#0C{sv@6$IYUe;<99Jzng%x3!#TV-_wZ8dHW;at;rndN^ve` z96dK`(|Mu_%_-lS;GwN2T36DpFdKTkU2;f;29>+O61^nO3=HMDMq$KDWAQhI*{HC3*qL9efb?XU<-{U1o#(uw(!> zYCG{szTN^-TrTJedck$-bBjG*&-1KeWhIQ2zPCy*xhH}>VsDv3hLGIkVat$mrMs1- z$P#6v9n#?yzr?( z0KA6VG?|2BL0?xMUaP*7FxbrW@Qc2SW$`DhG0I*F+}^WJ9GYV*5MK5eY583Ajv|uS z8qVr@=sB(b7m<$pzf3{X95)ovmpc<^Dx8Ew;Zq4#?M(&LPJK{BVi(AI->&Neq}7NF zi5<;*xNE}5f(&n_q`v?hVE^(k*D;i`%N`{+u|4AucDkYB;jep^XhCB7w$f-5t*Y^a zN>P9EtqehDe5TNXr}}tXp>eVMa~X^e6He9`F*>nytnUrl zVV%Fq4r(~ock{aYS{ABJ`lNTZYx)thx1ghie+BYh_n%890g0N%C^Z0>CVxDuc>c}- zD4z2vu(#D}dF{lHD*0XFUOgOD6wI1PLYX+$8)U{~K)Y3qv1AlVMg#A9Qa2~R3Ov}Y z&p)}Z`Fhlh2_F4uNcsJH4EPZ=J_$PZ0>4fGO0CRRZ6&yM`VZ!Fme{qz4NApl-i03E zO$2W9dnZNm`J$Ysx-5lnt(Hk7Pwq1S`>>HGW>hsk9a|hK6Qr{P3Kr^az`JD|lYR~4 zlwrc2yA|yZ#R4a_Q>GiQP;3Z57}AB~I&Rc;&@gUdV$u=rR?hr19>(jRfvOvy13*E= z@pn9~oSBY5?xTcG8PMX$I>Aa>hA9(&-6JLFlIHHju8z6hS7-oi4LdT>%}fg+*t!L- z#klY_L<%5lfS|eU|AOZFC3{@!r#2u)$Ypaw{sa4)3gzq(C))PXF7Wgnq76 z(4K^dr&Q)03Ce@*J5HME?{i_ys27EeLxCUwBK7PymB5S|f4=qwh@oyq?0ar4N)Vc>k)Et0l5*U>|tSRLJD3IQO z3>7KYic89@chfEOYr0UGKkB*u(A{?eAgf=jP*c*$j6g`(1Iv(_x|Z}qV(wBQ*9}_K zgpS;%?lfZ8Ny%gBR{ZaZou-#Cu4TGF=5BFqJ2=0d=$j#*P<)dVSI|(>mTF{%Y3==W zoRS%DaX04|^c1Pz@wE#XPs^V@0a~(GF2$~X zf%xLV(#Ng#FPT2L-h0iBqin{cjYC!ocSOmc=P!cc?jE42V(tre55`YEE4`rc-A*Av ziPsv=%iwRql@xIT|DMOepZfe8X4}21`*CruolXnFVv{ZW`gFAm{Ld1daSXm?$Z_*g z`R?T~I{_qs-ANeFAK)fuk%+Kv0E9FVMb;R60ej(i5$F~JTA+AZN7@C3Q266tkSN&K z0hvMkJ;3*AouPFO!e^hgoYd<;HdtlO`8w_+&uLG9U(rPo(+?g6uGwU$NtA%h=6FwT zqOP-CQ425`NrqBmu!sBjL4BAoe|P{|QXx6N13(*a;NX+$L_%Ozp|l7BX&h!MXWu7% z_jf=J?V!iULi{jDMO2O5vImLijrJHj!T${S@tT{qV--eV9w{i%QU$B} z=3x<|%U2_;l+Z49SVII%11@5QK!4gyRq622eCtTN@p8_ZBEt0FcbJAwmWOf&7ksd8 zLok+UN|i$*m2Q7^4ObzAM%EODG+thmhhJG>Dy9b2yEi6UaEGf*Xd_f5imYIW^@~ zEn1hzS;83tq3%KMAYhN8*3T)a!A?FAg#2xpgLg2F@tkbVgBzIlGStP3C{ohfrd^hL z!uhkKa2;;PMlMGFn-1(;Gs=q_B>Nf*B1?y9r1_=@8u2uMV12&bR82QQ*GU{IZ{l+IwngMgT4jhDSkZ^sV9E!uohDOgZcj`~@C#8gRE%5HR0HxbuIy`cU z{w|q5%JND&GYzFPl_Rl4p^IzUXt)S`I;HkC6Uj_8>#bpwBuFgUZ(iWdSCjJfwC{n< z#(`KQhv0Ou(10wNu%&wma88~$IrxRcs0b0$*i@wmqXneWX+-8*eXH{hLU=m0V(BV_ zIaFKZAbb)8O&~p(7=+l_b6nkVF@cvkeMN_AfparIt7b=>3;fi&2qD5oo~vf;FrF2 zXS5)Kj6Og_Kxfzka_SD0!teaRjSDD<0-Mpcw661CRnU0f~*x7+vl4tX@6B)<1(d@M%L!(?lAXoxGac)x`=; z{uIR1wFU8#!dHqY1I@d{Oxa?Xqy&Jk5np{B#z@RPFwNuuAuu6KfXmVN*bz}k4pX{m zzSF2UmERTNNq~LxYY>+0#X5|uWJET2RgOc+CHNpySLef<_TIkrc{5%}Yy~@B_Ik;g znwNY~^Y4p9;lrb0HP?!asy@#xpGs-mOB|$kh@}*+8!>oiTfnHr`n{^A2`0{h`GIV@ z)I%3MJ2Q-XPdkdox|gLfH6=j{n*GfDAa5f`&;qe%LSUp0H#-h^9n`lcrJ;50q?VAq zP1`ib4S&Z?h1;i!ix_f|ZE%|#Leb#BPx5ibYx=dc7n@0EZMK_B>0&i(DAEYcPx@&u zGL6(-A?+K-ZoScmcHm~Hy^A09>k(yKaUgTrLD<7RC-~~xJW4O|W{m!$(`q9Oe(YqY zuuAC27uS;)wP&P=GS7Wcj)w0ZZP_{U4F`9a^6>?*x+w${Im@kXAcs;OK28qNWke(8 zXrWX7`x0?vLmU(O%)zYCW}tkZ9zZat_O~>c@3R36jpaIRu#YEIB%3}<3$lHMV{deY z1m(yj@PhXF)WfB+=)$cFkC15$9r>4|d1v?%*Ye9ouN_`zvJDv8*&}>!A4Nm^0PdI8 zJI$D)h=6Md@ga|i#>^%begFsyCHpGua)~`3zjY`#?&)8A1x#0E+XX>d9T$-fcLO{- zoE|%i+Ta$^EKF&bE6ig?_y{;~kNTzQ1QnekHYV0p*vi{0Sh!I&sWenlq@{hE!VqU+ z3-rK@P*Y6nzo_ePYy#4muToQuL3|nfSJ4)Ski=5uyfE-`DYIm>dlD@nm)hLvTBqnP zW|MfLA|l%U8=66IVF9w;+|<7qMiDe|q~OM`ei7?P|0=z$t&3$zS+9Sb@ z7`uY={!O@rEkxkGF0giyL``=Qi9Of+F=hpKj#7w~g9p1y<)*C~i#t*$B9q+Y0~AGw zPlJX-hp3kc-;9c+A%dsdX9vFZ5pIpMMN~$9V_2iskwG-z0+Y78u-Ty+q_G1Xwwx7! zvH04fyP1HxA@^L}i0=M1VtEY^PUVdU`)iuqV$uf72)TuP;2cNM9HK5lE~IA_v}6Qt zCewSl$o0|uEUz%2auXn=aYww{_)JqLVUA&k_Z-XGCKBkTw7GR8t4=N`&5Lf9V0#@u zXvhA3f6K~IIprVZmuQhb#9-1h{|4Z}#kfqwD0IY*r|B)Sa>6wPdVT0kIm#e zclm!YsbuzM9t#`cLY`e^KJiXQ+P6(%>!|g67`m(a}PxjEP4yBv{H?-R*Qk@GxSb4G%df;Wk4z zECk(1n7uX2t?k`pTSfnx7if-O@w2IQr71Uq+ZEo>hB7Rmx__DP#Xf^sLB$I;i_3jT zr+*^8mwc^OAjN~c@zT6*yf~T-#^o7{Bk}dUxJbBtf-cq0sU~e5Nz zI0RS-N&frFFAFo0NL)W1R&TwI=r77HTe1RDgw$`7ZcG}#moHXC+3+oe9yTHmQNrI1 zosS%mT^^S=&n{qcS^vzg@sz~V4bja;<0;br>PJ+q#{D1;M+QrF^Hk%l$@C+aLq(Lg zL(x^Q)#+aBf!;V_C%xc@uJ3saCx zudJ0VWnrb)q?tb7^M!g=Npuo^Sj9fMtbIFM`{RY;hmG<>3P%zg3jO4R1i@84K9AD$mTX9B|7_mw(Oza(q*9i(lCRmZdH<<>N)!N8O1Y)o|L+PG}bsf^ZOi~@v zUK%GuGvI&Z&6x;%pTbzf-2X1KE5!@V^HBcFcX>>QlV&F7uKEX4_6Rd-^?Q1Cu>a0P zJX*x%RJGw&a5>zgzuB+v!(Zddanx zsPB)Z=!5h{xUnyx9-)x{H2n1|M$n~WA#wkJK4r6}|!kVte~4@~j+qowS8@kvi!z$!cME4n&| zIk#%xLuA}ysl_e*2Kfn(=n2Ue7^CcNgS@WCCqp)Hc9uO?$uCSqw_h|xvhDh+UfIM9 zDiwdh8FLC@f5qD0kt|jf>*ocSj~uM&uz_>EHOjK)&%@rP9VCWm9SgT~xSiA1oMLHF z>R%OB8@6G#`2714`{oBz-O!5g>kxd3wYi5Z++XnOPuzu5*Q(7)W{h=s^lh&=gtSrb z&$n4MT`cnSZ+vXts%DrfV)%>pB&x%~Ia&mKtJqcUxWM3X)-qWr@ zr~b1Y!s4g+|CdDX4>dZN1ktR}CV)5N(KH~HOP}G~?;&=^bbydx!iZsyMtgb)<$W{w zedrvuH7CkZ5E2~)^1|TI9yVFDdRF72o+jgK!+igRHno1gVc{jWYCx~g6X=8L?E)xe z90ki9HUF)$@OTz$D-p*mLDn$Y$38u#wSa=rfQQ zMrv8*#g81<@R+(D&5sYf0@&e@P26W*lv635Ty1vsA3m&Y>)KVZq9`c_>td+E6QP5_)6dD?oVSOZ+C+Yb&#f&Kc| zo{rTa@deG))Bj@u*!1fI-6E@}|GoBmwD+7$J~!FDNfbbnG&r3>W0mZS#{h0h_3zY=Z{eK1mbV$992R5xf+M<-{L5v$s7=-^(rFFQE%I;;j1qQ2zHt> z;yzen?^aX~F@K*viC4YSec~nTc}l%^gZre*x*53! zi1&7ZRF1o(yt!BlAWn~tyrJSwK%!U)-T^vt4xZ)(i^JU3(+n5qvQea31aQevyoYNw{NGa|QKSSEGs2}>I2<}Lw*Ue!`MT*yMaskRn{3L)T(_IB9_d_*+`aT!Z0vf>8`nP=#po1JhLpL2tSpL=n zX4cj1{2ov{TyGqf+(->{%Llg%`iZ{-p8y(i7g}0ZUZxOV1Evrd*~BVP5SsAb z4}UOOe>r=7Q8FF|0`-#V?yq7`=iQQVfBUq@f%6PI;K}x%ISvYsd4=!jm7Ib|QkkWlr6F2Iv-WygU}I=(Uj3bP8=9fFYEM?$mDd%Q*iQIxu$V zPeQ=g>?8#m#FA*8wObi-@24`PF`|JmPYM4PssOA8U4rhQB-vJzc@V{uI0(jMlu*}skoLVhA$!CZB1RI> zjL@v76P#(C-4mbw1ctYhh_DNS;Y$cHw!zwQ{bz0)Cl|&FudtKziwi$s;e&1y?F5Xr zN-1_}e|mKhZ=3;R%Ml!0x#9=vrD)M(QK~||cJ{EyP zB8qeuKjfA+&+HLpZ%YsTb#ERpM&1)!<>9?JnnC<4Lf zZBqTBH8baXFj*~-XKQW9!a5d}P)3Wwn6_#mTzl^X^Yw^qgcI0K8HWZnkfr>fcRp_h zXn8qYcLdKlLRE0$g&}4ZpZiy^fHT)d!?Ll$#`iBGfW_AI0@^e+rh&2U!$=3tJ2_59 z8u9dJz7DWKJncFe(%pRRGLNkNmq{E(mPdZPSzF@q;sB}Dk0 zOcXNW#(_oBs%^~)FYF;d<+$);MALCaVjb99%b6)1`W?c_$W2$C1XkS)>yrGGtP2@} z;ea=0^5GNq5?Y@zdo4urhE*g3go`~6dyfZMczFdf?4s}=vJp;;fB-U;4xjTc5Kn)u zzeCUQh65v0frb0}XOUX@X{euSpu>sqtbb71qrSCpZA`cNk_pnW7RSKbl=EV(-@u$m z50@4EMgST$_LaH0q=e}9^w8jA zkg<2Y#1D~fPmlFg^^rZESxXw^LCoJg@ozm8El)?yM-$}6%_T=DK>dR>0dV|Zwl}61 zs@y6Z73o?q&O!a(gM&T4P!^ zJHOM9%_<+kk`s5k(G!4>$vS0W(&bJr-5-D5ei{gaARzt>A`zmUaNEftcdk@G`FtHG zTG>{I`HzrhAe3bIRkI7H15nHf;U8?@ZrtdPZ31hAI6~v{q=YUqHJf3~VKA2$n4FTlnTXiD z&f(xDj0NQ|^-yuUW1;@n!~XBcZ9Q(p>+^+3%Y4GVI_iey0sU3mTkk}jGE%TIHg)(S zl|q>OQ?+lu#oG_W{BWsV{T_{Qs+?|o$vDzjwKalt=5LsvVSSj-!z%dmg+8KdnVi%3 zgFP1iXZhJ8L8P8F0RxyGx4B4@?Q;5Eq815LDoz5ct<*RxVDFU?0hOt5|JIRKn}@l= z6<04OMO;rnXvIIMYvE4nmA-yJ*6VuTb7e=u^3LeP(K<^;>+;i3Y&HT}l9BhK??sWH#`vq)ws8S%DrmP5)NG3F;cc;My5qROZG z@+nmQ*rOl*?p0E@ytTLi^X$^R&VJ;q(Dl0|SrKh0)!@XUsTCV3(si z1gj*v=nyM9*~wz>1AksAH^7?@L`COPkW#m%-X^1^5$tNMLc*9`DmqC8x^CIadk`{w z$yLbTpVVV*^lq@O@*@$YB*o~;L2VMW<%-l9A$*>I6`02>(38aWUSN8HUl-ZnamuCr z!4q>p+%`i;!hN$3Ikc*|?YfRVMON(B3GgO{F=8 z-Cr7%+d+n1=XVYk@ePjK_u%NyV0&~G$mU#9~ zYP7-FGe=#w=E7lweif!?=W{J`zR-_S#Q2WUS825(wu*V7y^7TH5P{A_gplthbXn+JfX?8W$H?xrc+=LrENeVNK zp*4PnXK!^sJv_P(I6MJXQ@`}^nkl21W0oy9Zqfd&!FY{HH9iO0H+_ktuai{uwxQ&@ z%}DiKNm4u(=qGRa8YNNxi{KmNaJ0X(G!MgJ{w6mYoj=YPdsjq2s>dWq;kb!PkCon< zrY^@Huk<@OE_dYH`I5LlMUqsAmjZHx9(ibZnvr1=iWNt+qheuqqZ03dDeQWwkbB25 z2u7BaQ9q1KG)swD3e#@O=7_n$X=o<&b~sUqoXDi$$w7?#{X$BpCj-_cAcc zTU59P<07DZRs|;ZknvqZyMoRz&)QqzlI1dkZ6a|o;1vr&6*{t>K>Jy?1@!;4UR7!1 zFiqe;I;zNuc-Py2Q2BU#1YOKvIhwMayHMyqwgQv>*ET{_17jgnu+t6p1I_k&kd$tE z&oHAft5i`M3L3=t;n1-J0efWa0*RJ5-?RH<||c16hG3NK>Dh zw5j+%&+XbRCRz$jV28DegK4px8T1*W<@D^+C@OR{%3DhK zBHSdE2fB4jRlrnamTh;17y6(t3tN56gW2tTgzR_hQp!!&&koLGdnSSI^u;yCGI-VT zT|!AT08|vLt2awVcqHYK0jj5S3_dC&4a5yI8gXP=lq*$WmiWs!}!n0Lxr$_DC zn!}*pY|c}b#nZHb;)>_lb|aZ`}B6y^?Q>3F%xB^ z5fgvX^QcE@#iy`mm!)?aSZN(n^tCdEFaW}jHgGlRPvS2^Esx*a?Xts;D2#TD98mq@ zd7~HBd^)2bAz^krgU0YN=v+-tg@MRW&2a|CaH3Mv^{=uLeI3T)HX~#yJY1NH6B*FoQ+W_Jy2)U*_0Igel!DRRYQ!N(od6G0yQkA)4GF z!nbkW7hvyCRVXnzEGGfmb4hej0k#&Fcvmq6DZdnm*)LHFEH7so`f(rxtcZ}$Tglq$ zT)RbXKHn4CeR|u5O5g;6rZQ;&UZdUjOMRF{1ifz@wPiLmwSU^BEvIURXHx&w9mH=k zwWrU4VWYBkYA{xuniT5rq~uk((`#QOj9t9H6tcm)rZz&~ zVvRfA3Cyz)o9MR#@X`_D-A$-jl6s^;p;C574re_QF~(hc%WpAD$qLf)()9^{_RqhUgB zV5yP(# z<*#0QUa~p=ZdRHg-+o%-^zi>?R77l-K9S)2(F<%11Ky(UWMf0hG8PjyC+?2l?NO!( z(%iaJ?NxcWFhDRNIR|O-FryyUMs0|VS%DpWG?{jYndDk~bKXzCOzOcnwiMLUC_evv z`9WogJ3Xxbt_eo3jRe8)+lWusfe{^;bd!iNOG@FOiBfESPj05e9N33UTSyRAkZi4% z%(-b1)*k~GVp)98R)whB_mzG|J4scRWrE`J%oXO=Imf^6N>6P+mU?fdtmi47`i_vcx1!(7bZQ%>_UthmD-(#d*Z=wv#LbDs zgDr_LG6Zt*v(^53EjuDrIEQtXqRJWI{QA};E;x<$Lb0pM`5TT5D_>SkV`H&w;|D3m zp&_JQ)Um@N8>n*V7`EPfd(pg-WxtZD$hrv8HT!W_?VI-3M(b$#U$dxV#LVM46Cjs4 ztlPQ>s-^$~Ck8r1H?Ycj%dGN-(Cqj13O9r*MUmnR_+4!zj=9%ddvY+M!=Kxx#k=Oy zK?MYtL$q1hRy6N<@&u9bA&mWxwn5F>^q0p{pH7lPw6D9R-Tf9Nzh@-0fY)5g)L>nu z;i~8FDy|Wb3eAGN;RstMSMcbl3>95;HW6KI$_?wUm&dB+XPM>~2Vt-9v*YCyB;;l0 z9dofiGN6(IQb-h4MAdqb_auEiUZbx_&d5I$wzbWvX7@W9j1fCO-X!J|zs1cvSCt(# z;( zEmm6GA@d!x62)0=z1j=qgm{5)gQ&6+c?{d;wYggrgQNL`T}dlqsh61z+K8IrH}Mz~ zaES4y$$9XXN(pWh<+w||SgIS4)8?*s`ovtm`_vGvfrth%gC5+1M6xkUc1f+2*SuY9 zlXY2A@$+^9gC7r3!eS6BZm0S`{Wu~%`Af}WY;P(zp!5EroE+$qxNgI!`gU3mFWNUv zeihefw?7s}ba~x38-&2EC|h6HbaC80!@d+A(A&d}!N=`_nVD zMf&&>K0DQ1b-7s~HK)UoAo=GI^-!*}++h8!OSxPUi{+)IwB4om9(J6UdT=J|&lPg# zyv!vUkCu^G$o$%OVM15skOxvs_>4u(0AcGO0!?@pL<9?K$NNAR;t zD?hf_%uvkF7C{Uzj0uV2*=PeVx6>U zx+bRFum3~G{`}&++P_Xd=L*vcQ6r=i2sV7VXRQKuuxsfz-~+Mv^~Y|w4MoPRL% z^&P~uU)VLm*s2vT6)ZL@Dfe3J%r)@+mMZ9z0p346h@E4+6tXIHrZe)?XMM*p9kEYg z#p(sz*yBGt2eBDGWC+B7#PAC~@+MbsI``b9zV0w)EOh61EI;o`iSSPLP%K8b-P}DA zZt-$Ln4kLX?DoI3^>{s%P#kK2qn3Et7^xdYQ94n7@)x)d21jgv@VMcX-$x2%vEFa* zwUP17MibR~?;y9_|1p&jF4;oVGx=J}{E#)#et@aD+zX)<%dPPW^TX=H%Ko?Bcc0+E z;zV1Ci6Iy*esV=`WE-~D<=zG7tgYafpxhYy3q)D>cLcwc@h=5_Yduco&=X4EXf?a{Kgvg5($}=%* z^3zxLkcT@IdF?;5zA*Q9Z4}7^J8z}9c|xUcOzxtZdUoWo6fYDaKV9=tQ-;JLW?a7> zrz3Q7*G=>X;W6qjuMv27crczWZbIcL>EY<8SvWiuWhv#K!9rmc2w~l4BwcbwyZx<6K@y|p8F4VNq==-w1lw$o~p z)ZG{b+{eN{$7D0AU)5!Z(hHk^50;ePs`(&J!IrJwvN14WiSke=?+Ss7A$C+EFFRD< zFc_8`G-CuGUhm?Zznd#$EB)k^s{QVAlq{r;nsnrqp2Rf?U&&a?LkWMF^On5nNn`50 zjg?X!X5K~wi~y)jO1+|rb?VOS^3b+~`Lu~8i*i!R5&57f>n&4_mlLwIh{KI3Pi+@I z&1kq%ttKVSICWtT12c?5xULP3LdhkM(mUYk&l!KS$=cbXQ=L#9(Ej&ZIGp(VdiW(0 zGd^9Up*TC$c-Jmi5u|HH?&3{>4=l>vm|{^YWwTVPu(p3bAXtpLb+h)mNrlDdc3PWh zv+MhM-K>yoOv|e%+hMjdfVz9jk%$k`KuaAltA0XM_CtUCSoKeXe1BNP&uO8-!}vmk zS0ttyYV-uJ8~@q7Hm~EuHkW2p8rroP9{DbnDcx+ky{~#{?{eePKpWyr)7GD*2wn86 znOt5J4B&P_-}^}NOw`MUrM(7^5pHdTh5jrV7q(B9l8kFgZ!T+xb)l4dCLw{F_3vn1 zu6i`UG4C6$h?q!3vytRl4b^RSKEC;EW0`9#D5KF-gyOYQj!EN$}a z@~NOU0(sT<%xJ+ZG22exErot1a=-X0Usc4pRy}dEVZ;Y||M^#HNPeZ(Of%NLSD3Qo z?T)K@#8k0pff&R5kuD(54k2$rkk01p_wSy*L^Jx)T=JWu)CvU~1Foa5F7ObY^fwAK zG)OfP6I`+?OtG-|g!0drx%1dzZiG_Ua54R_EWR)c%QPT&tmc>zp`yPL-NJo&o{9t9?E*gt$w;{(J1%X=tq?-W zEXZRwV4G)h(4`oXY=lK)(>AjIIH)t2#ef`QTyhJrhj{)@U7uujybF`%5(p@y(eX+3=qUdIF?Ho2-aYc;$b2EtC#7HJwr05cu^u zj|wSfF!zIE;@cT9g-rYUioa54*OT?ISEc0@Lr8yN1;v-h?l@!ks7v&Db`QsAzq8^^ z6~AJDOA?jH!q=UOdR@}RV>6{NhD-Kj(1}}b&@Yv%Y@5UU+LZEIizaMj_?G7CViXW| z+d8z66yc;($r;HVjiqrBE@d31Lx(i2(CSAsO0bqALFJg-O}B6Lge2&TBYj)At=teG%p6L`hsBhmuyV)= z>IJf9sJ|mKZ#n(IU4Bwco+;pj_m2lmicv4Q-**a=_8yjrNi>p&^!&Rpe7FSHU?JQ({m!{d4FnROdZ#ajwu5(P) zST=REj$RGqA~YE67s-gRtx%P%mWQYAJJ@4G;UP=j$}*V%{Ar&X(Y6izpX-Re9aoLg zXZjeA315AJ;st-9I?t-n3;M$`Q7@{o&$X|i zDn2K$^$KG_lGFIxm-)Z~}isMRqDBnMS?Qr*7 z#=@HZi0X@+!0i~lgJ(P~+f&!{Svzm-ONH6TsHD4kdkbpPo%YAmM~V){A*?f;%a6pu za`)|JzRiGSdqo%6y%RBd8Npes6$kd2;(1@z9FQ4bNt^0J@qAtaVBbaD6`)#T@4oCL z`=8Q!Le?Q=IA#CJ+;PhfDB79VPRMWpq_p3vHS2^g;3YxS`OLo&OkJUa(j@k{F#cf~ z>K%h_l2{NHlF{LQeceVN5&$Wp_?f_A&;4GnpwGkc+C%)NKW7GcHdDP&m81TbOU^vL z&wU3*wI+YV^5$K$WNVp&)vgsEyjD$AlmYx& z@3WihWk&xT%e<3AX)TDFrrU;EQ?cW7EzkKGUb`KnSKq2VVbNxI_`5S-KSn=yL$4wo ze(9grx#aWSz~)`XV^nhf7mE_|KM@t?dD7B#sx|GtDRBt9lZAz9wN1g>LO5Pp?q&qe zz?7dGDA6fUCv6RGeCdG7z2a zfkGGuurZ;J@k+7bz81(pv+c-T$D(bqFTe&y1&-7y<_~9wlU2D7i=p<=9bfn~mxf(H z=XqwDYLP@`9_01PYWUD51Tn%*1C1CtEEgodX;**Geq#CO6LHY5F#Z;4%Np&quN#X0nCA2d+6 zf;#}jY&@Z4?nzp}rmDe6)le@RupMtCR#>p<#!X2E0FGqrUqCCQt$+c(dNY84IV(39 z-L$Obv>Cc_Bew!uQ|>*m|0s)~m88Gx?$l?dGw4soeFXeGGqym_YLa}>4fs+hcz)kL zlJm3)!r;XgsT!>CyJ2=2pbAZ5n6>~|H<4slif_l9MI{fhV!&i8DPBWc%XaUuWT+KD zxXhvZA@WvTE&+GU+=@UrCP_?~R)+HRe&$r-#9tdyx}WT~);PgiuZwGx)qkX1Y=nu0@*3!nKv8s*bnb)-}h+<%#PBCl@ILT64 z0wTS=AVYxN9ij(x6^%<^veI>cV3Zz<;(a_ozhLT;bz#gHU~*$z{|i(>yx|^*1hOG` z0OS3`Fdc#_l<_og9qvIX@d5~Mudg#V{`{xN(TfBp!^5i?cDu zfGdH2!zf#Oq@h>g41mp}^KM*NAfVJzIim&T`V*Z9%xP*2n@3_X3Ej?W(B~e*O-~5( zR@v?;i@56#oDLk05a}}__zy+OF9x=Q}8uB19C$P zu7wV($xvGS1w^Y%fU(^VN8{I<$-a6408f?I^aIxb(G1;0SQ$SNY#}B?BvsU10OWzCwMIfw?FIn%A3iA;-te1tutYfno`dI7v?V0B8!)u;p zrv z49|RNhyXH<=tCZ?4!~nB^k(^W$oC+EJ|)P@gN}fQ&Nc<`{D4W7vJ`2HAa6cG4pCG22#(;fQ)3YV_QYN|x!->?n770cP10FqY9S<{a>Id-EpuzN zIoL03B`()-)QDNZN#sjlhN`ms_g5wo2@E2&wnzaW)AT?QYpFz88x;*ldFhW?gBla3 z`6ZF^te^5YX=+;c$)b|+nQ876-gNy2&2ylwlhhgZMCy77q2nTcTSGGG!}baafc@%5 z;lEhc(|U*+M!_MeMH-SocS^cI07nqZnl~koHt*9Ux-|+#=a;eSuZNt;A4cf0-)zJ4$Cs*e@(N7JDox7dhJ2HGNU zFlA|8M;sPAZwI<_EBZNu9a^#*gx1q@2^#4G+p>+}p!^Z^{dVkuxMhY)efGlhqhCBDjQd8)aClHRS2PJgz`CFpbLgl zpPp%~@!tmwRB;K`cR3`IcFnmdN?W5P(!}o!GA`6bRs2mX-PgV%k2JgKfU=bYQl9LG z@FaQ^?s@^9DC394i~dBQP*E+Uu54M^8tjBSF?A3mqa+Ws-+~Yx^s+%YHc=eX36+gL z-XmxVxFP#E6L&v%ViR95pZf1V83lkEe97d1t}jltRvcnZZ|5sZfB@)-X0SJfL&l(Y z$6d=)V(P}Vib{^`anc4*MCY;*s3)(7ZoMOp2vMhTQ*SzymB|hh9Bgua+Ea=4$4FC# z1~ixqeugbi!M%d^uS5Y?WBqUhUkN$~$QmsXH`vUzZXt?*c%Vw)ar?h&ex+VHN@1rB z0who}F(emYYS6_hKd%l1AY=xIzLS-!2h!n7|7$Pb@Vi#ZMs}$eHtQp_Kf+&_M?xc* zv2qWRQT$YI@oAebX5}}~zyi6${qvDOB(=OX>h40OBNJUugGwYhl_#INbJR1V>jI{XNmD+!K(oD`)@LQq`Z=m(=T-zRFfxuQWlS z0u7yhZl9MYYA&s(qGDdaswl3ER4+POn@SIeDp|D{P~V-SNFqq!O06dhy#Uw`&CyCbn$+0l%)#<}!d zR*66*CX>i7hvYq3&qLX|k)j+Ivn&fTQ^$E!OX}hpk{OFS5#@nm^EH%R)9?6tf%a+7 z%?NRtEOIAZeUA~|KXO7RVxx%BeGldPWvYxHmvqiY6OAn(3_;>AO~poYp@Dq_j>tc>a^SKX7 zRXhDr;9&idnLSJgx$kMKYiNZTBR(eq@| zu{vxQCVO-ynlY&v50UVnW>Nj@)BRIsa)`d0tQ1$;$F7OqTKrrP9AXV!5m(7Ub_sLE zT%1j;FAZ{kIM~X6(qirQ;4r$n_1)}zZ{wq7flmA-D-!AJ{s|#RM4HG@HDa4>6yJ~< zHwrZNH}kcR4!5RQ!Q99kV&!7LqboLA!^ms4{@l8#92U;?@M*-ENJqz`xQ;xwaV^n&w6tDZ9j?J zlh$JnvOegVdra+21o@^sF`^53HO-Hu3V9Kf(Kh%ElaiifvK4#nL^O{jvQGud^rWML zP9?a^~TD;VvF)Tivp`)k>z%nH80xz_%3c4{SDFu(E|(n+BsBWA^({tS$vii>)sB* z`NbjHD~A@RwRRIpT+72E$m6~0fBx@GKSG7UwGvOra$!<86I~(N4>5uxr3meY17GX~ z^hxJYBTfh{UJgi0t7MFQEg(wqy1bJW!!Kv%LJ;L@DEp@2KMjtSgwJFhZcZ+)OFkRL z<9|r}=Pi(8lKP60-#k^3m+f=7DQaTo2pFZIj%gii*8Tc`qB{6Zos)`}c#?eSJ|UVc zPm~5D7>8q9N3CXA!WC=YyuMaI-f3&e_%g71=fkmp!M}B7Tns%(O*VzKh2dauLrsjn z#1=VI9b>g|dzC_$tpu7(i-H4rs0O|-Q+ZX2t!Z_mX_)3QE~y7W^e$^6rESF7jP>`u zNBiPaVDf>HC_JLYos6vC1X;N^59OEY$P)Hp?ukOx!Vw2K2x65+yyA;aY96q~?^8y0 ze`#Dj(HhIw6Dt0axAeB2aAbk?+bMpsAku9Ot&|x^ylU)mxzbQbVC`zmPSB&0lE;%!U%#<9fXp*{Y{mgEPe`8F;?=&pW1;hl_@amM&r89udU88p0VHU zMLb`YtPD&#-R=kTGMntiY$*PDFhjoHE}r`I&a0+3am0nH5sqY(bna(e?7qusJ6>x( zK5fR&8Tz0edo`^?QPueNC^l}*wbUuF?j4Sql!jiO4zV@gu6pzOnJMDzE$N&7No5Jy zSzOfFjX4x+e~dVFa{W5hSINqz#3!c=HkH2hqn7!4O)kBw2u=Q@0vnIfJBOQI{)v1e zE#gE9Jn~4tzi3upGSe+(D6y2W`7RD;5V7DXc&gnqv=eEx1hrjFu5cJ@HT4shnrWo- z`QgQ|Qt&RQ>dxc)I)KxKXPe6n(i|gIWTTY4U{7BSTuym%+L3)}w091jt9))ZNj&St zF_E9s7Qr?@aI+Z)+M7w-ArmnEH+lKpvJt{DF%94mG7a*g!Vq>FV z6%otTN8XQ+l3qLmM(icfnGF-l6=~8b-|bMoYCxO&2%fS+F>tt1SqvEa)uVU|KkP2| zHx>;qp00=kG`_1lEInsf7P1eKi&;l;zqL;$4-7$zI9Hmc#m`}~AH{uou*+vnRnNL5 z-X+t?KY(P6)vCvk5h1nv*+`oj>LY;}D!DeU(jv1`98Xp56qyQxz1FX*qV1wCUp?%2 zwH6&oLQc1et2I;{Nzbxetxw}{;UO9S9vA!2ly)wbPiX&rsx+kNW9#4sk4*2{)j~^# zl?`Gj;xe;Pxb1ypK}?biHxGvs(vI|NJ^bU-njnReAd%yMypG=AY_L`a9CyQr>v}hK zI#KZ0mKxZHRzZ7Utq~NG7{u|8MV8WvX@~U#b@87V;wH8LndlgIgJb49T~Q2m;>!NJ zmZZyO%ah?YGvZ>~&3I=rsgvAYY=Zz$Tx5M-vn5O{{C@%@@S7)TK6xuUs0LvqU*NAV@f3^Je-L-c)eh$M9bm z%s8ECoyRKyoBul33C?tgdqV^hoyl&O{O@^TY=)aq^(Ur|O8 zyiwI^^tIeB{^Pv5Nl`2Rm(cQdMxQc6aT-QGYMt6O%@SCZuav%f+g|lsa>jDmR>%)HAN3!KARJ1WOmd{%H|<@+UXd_2nRuh*lQW z39};QxW-roR-3mqg6Fl0qg{AIJ1s2wO%8xdXZ4!>aNK3*@=i~qh10Kvp#R;J@9K`s zM{@6Z9V~fc7B(_t`GrPihfxHkYhM*mwh7C&r`V&CY=A|0E_Wu7wh2BrcdFQ;*TxQu zM=?X!EaHta)aog+^?55RoI|xrzholy zz)r`rwCIJ^!>{FnMrp7bq3!>M*ncR<#YR2$)2&9n|EUIIB>p%jYpqqxOuCTHKI5u5 zVaBF)rYfI`l-w>0wH6^(+hE$GGL}H!(kWx2eo`Tx0n;jIwc&%JC{F%Xj#(?G{@5fI zB2jyjk5dxQb~^%0H14{;8)N;?ev!{{2+Bz(LPot{_r@a(beM9GxIl$vY_C}+diim~ zXecx{Oq-hCuqVc(+X81$kH5)1vxJak1);I8QHZCM&TaZ!_RE$*39cU2>?g&9gO{I@ z?^#li^md2@B;STpT07MS}>yg2EcK&-HHGUX(AJy zA+4tpC=#^n$KvA#;LgcIJ2K(G_(dCDHZkNRB{ArH$CvJ>pT`d#aX z8SKjc!Z~*U5^zHpc>A*~PS&<%cH%3v7y58``F0K%ElSJus{*>H+~(c_H*AAx_} zyuO{>GqJ8|P#Y|6u;2d*h^UQxmuwipToOu3UCe=rYQ{~I3f>-X!jR^P#*Pz}GznDZ zB^v$Js`{Gd?-@aJ{V4{v3WX}M1xjxXSr#=GM9quv$tSuslCO0Ho9)10+5EI&=p`p@(MC)iuDq3 z2n5Pl5uf0$Vm+Wi4Gzn5S_fueZ%z-%m+Mc5ihcqim`s3VS6=8aun)9Jq=)uA(H>%* ztt1j{z{ixXK;eR?<~XT(|0hCzhi`gitg;B>7!zB|7$x#$vpr2O&Vn>TC{79_sjatv zJ}iv3ID3Z$>X59L5sCdIoS!~2Wh{?9Cyme=8oNFJK8Eoko7WJS*~WuBEoes3QHu9g z8YyUXf!Z_|h_$_(9Qlyy(+oG9s%Yp!7MyKF^e`(g|B?4<(XIwpIV9hP_zW@F%KqdW1OCS z-LC;m^BwJ&7*Dh{fI#&L4h(Dn=7Q;u2e}*X0qog+n?wcd?f(OPKgTIbl`EWxMsmh0a8$+&Ax3&sWq!^7{cr~)3$mVASh zA2p=;zsFI&NK^lXN2eNOHh>9~$`iC6@R1LG5<4}ZANYHN_`(SvIuq#_sy(5T?<;^z zUuF9gi}K`Efo!kee>C7&;LAm<=PYU$6`IvY z4&=BaRWXfU0Kj`%i98ecK&%On*93#M8>ZHSD+!gwUfjT_D6M4AK&FvPMf9;~3HTkx z`FFm(g(8&Z0^zfLAXeG>2#8T18DaUI@a`Gl4$?oPgeF^)aL+P!)Qx=@MdMKBp8D8# z3`NAo&7af^cNJY3vLdxtH20f`TD z3~ke;1p;$!Z>#`br(z@PrJ#LiM^*Fk$p6L-z~hz!^uh#uf~UyB?>-|2#^ucb!6atq zFMQyAU_Ey00dg8}Rp<0lfY=xz09fQ`UFQS$J;aX#k2r8dac+TB? zhjNp_3}-Gi3N;4?q4Jmw{RRx(f1Ln<-)ZWTUmR-FDmSTj4xJK5sbnCGZ_6f(>R(zG zdJ3Ob*hp7YqmegAXIX3YAMX5N{5m=qvmRh_(Lb#k;ttbWd}@21YW^F!|NWYYt33um ze`M5-hWX?^-Pl*WiN3tw`|yu%qx1ZYz+P8e_<`SJ$EB zcm&ECX>%$ag(=-<)%Jr>sc=;S;bMWl@NVGCv57=<1blH~{)>MrlOaRp{jmrC;te=_ z)(FrBEIyb@N%mc@+mvLF0qjwh9{y$P!gQc;i09og5cTGU7dU$rC^9Qjc(uS9fX4u{ zyC~Eu8XF#Q)C1UVVc(KbDhM~oRkra)tTZUr(mP1sWIEQDEde4?G1el$yW7Vl=W?!3 zS0P^;7dCf2Hys3uiWEL_ye=d;1SY77!_gnx^~7IZoC3M7$3#2_oa8V6r~sO#&xQnQ z;1go{L5^$nlH>DfQ5S4hB$Id-wXn)OY5*;)7+sZ**8$D2RYbz|=iU3+Rrwx6f{n~Rt#K{E^ciOy ze;@^)5;Pc2#mG~SzlGMZr)QZirR?tZmPxiDqvv@BNftppEBzlJ&Ky5Z&Qt^XOQE<( zhdd|(9pt1o1B`|(_hUgJAB|4nMc5cU8ZrbubpTuxgQjj*yfy(Tob;I&`)u=YwLW+Zo6f0z>zvajoNNZDfri4L z8G3}#A2IeP32e7!XMuFN2CC~7`r%d;fu%3-auUi@fvF9-2@&E4s<6e;S$-(pU;lqE z0N&ZtpJ;tur99pz#&uT2Ofjq`G$A?SSD!Z)C91Lf7BA4bkI?P>Um9ya+1V+Pf2-pe z(m3Stf0NGEIX608Dx5j^Lb~_yjXm}Ja*w;wvn-!6;$)Qxy~}ROrIs)Kb;G^|-_XEu zwfB1O6I^N(qTZo+>opCV#?VbBkw#@kH;I#J#X^q-Oj#9ynv%5kK>z0hsmnVM$G zI0!DTz}dus#wX?2Y14s_pw;e=Zk@89jzej+fevnT)>a!p*5HFr3PJSi40#0dNd!6@ z085PwM5*6{;|+jSn=4%s%%|qH2@>&g1Zc~>ii(geofc3tjnk*Of_p?Rqthxf`!)HEai&lSWdS$Q@Kq{{1`>?Pf8TrUVQRGQsuc2ull))?T*>bS!#e$iZ=Z73sjnT^E3%>G}2E`(SuZz= z$#_Km9dvvJ2Db6MTY`|Ux z_P6ZX3P*mc`D?Va%`^)19qXUJ4thnN2KIw~su9e`w`Gh{&|A_WHsN0?^Bt%6$A zf)QH6jF2bO81@VAV~RB~I_obg@$)Ryn~R4c1q`sN(33?+5^KK}H-gDbg7@-iNwTr~ z9OT1aS1nkFv6&>lsx+DxC6*C#33q8jfI%@wO?jJvdGim-oY+i2>KAndV(gi~&ZFJY z>49J8$h)#y8!>tg$owfv`n)KK3CG0|)*wSr&uyNb8ScNq%z^80nRj&vW?aes$R^mJ zZ>d8VJ@@NI#$Ht*!ON@0afOa+Iz8I8ue)Hcth24}9>SLc1eO5Tf-8bL;HSV7tWZPm zP>w1$a(v#Wd<)roF_X6?LAUrDfMK}8O>b|(8!ZbmnKfEXoorwdr1j-jYd2KMHbs>K z|3(%>_C7{j>B5<6b$~M84Q^G?65e)Iy+59-Fej0%62;h`7dnu)ArsdDZ>X2LJ>dIn zE&oL*1IeD=y>!Fe6hgj}?hQKF@75%f1)hzUII~XXpQC?f|K2#cn_QBkFk@O%kc@aU z%_jiq+~IVa!@`Mtct?dxZus6#?wt=H`K4pB{e%b?0*56x%vmD!9kVl~=|u*Q2X;DKH;D)$1kAz3*wuQsu_) zH;rm?wQwBZiYhq+HZ&nBkyMyKIpe+d$56SyK=T?eEDoue4UbBIe8}erG4pbO-4{(! zUa@o$1f@gT6Qz@;-0&F5yyIfBEjZ_|lURA-pztORO?dBcjcyi0%GqZa@VM9XO#4Fy zhc`k?OhOK(0GkM-b=wbUyN(qa|L1=I&U%{@MDav2&4J=70{$#+xU<1KR-lr*tcrE9 z_JI0lk>Gs{{fJQsCT3Hg&=Cu!ejSQ-HyU<<3D@*6i0ozX>shYJ6Bg=8zgdH@bU3|#~o=xgXN=yoZY zX%|4&9Yrb6y?UkJf}O*+{x)#{z}>QbxV(zoaD7AL{y@y`*#Kfg84mb5|KRE?*K-7s;2MuIjkU`=Em$0?#{wI2awZp_Fxl8!rM5C zcnzFvCCxrEud*8=v)8f2_&M9$sHRA!YQNE6gTC4s`$OLguf$ctJD~9Ye!`a`21SY5 z|5VRCE-C~VB2T3PS3_?t5HkaQQT+o%<8k1v=3NelRZF~*1aD@7SC?XF)}bX)pLD}= zG7*78C`n1!1D!KN&Q9K>^M6@?gV~{@orU+91SF7G)}QUFaB!Bx?QaU#Bk^XUJH2Ts z26^><_2eegZBEFM#4@>L5v*|b{sGeY#4@Irzlix<$3!D2FL(xUu#G`MyHkrNq{^RH zRbiUc3)WcqfCrZnMwbSj1uF!Kg;)t)<%BalOCu!1nAwg8I;H`zXtthI_N5z*O1a z>uM6M=P$tZ)PkrJcxSO#xu%F?{nLJ>k`_XMANVwrYo0)}m3_s5ZJJ%oNAp`gY=Jh9 z1>Ju#`m=Z2mb~boh(LUwnhYq~b)KSX_Zv4Yv+y9`xl!;km5kl))mRCu1VBPcvHx1@ zK}HO;$-fTR11>QIW`5U6{dPv|`YR6>@VZl^8=8-i2F1sr2*<@>=_2EW(^gj>+<8O3 zej&|F3IHm_6^RwkDhcDp>7vibW*EM|%?hnVi>ZCH^I)Mbfn&|TbH1{9ACHv=92jY1 zOS=~J5>^bd_yj0}AM50V&~=+d8^Sd|$$I)(JL3{9&*XQgk*B7(BmHeQQUO(E6xJ%P z(ZL*d$=fip{mKrc?4MuU6bYatoNhxj#yO^tuilvq{S?9tveHqX7XDqQ*6SsYykn$* zmW=H)D%@&AcxtHLr-E^Xc}U(}&wIM}6Tpk_i5xO@TqxUFf^u@_|Re+6b)}nhsF-m#*hfln71dAx!oY%;V9vDt<_#z<;plv zvNuOvecsDEl~G~9-*D_&GcuZ8Z&cC#ye+pp1kR~YzFH)2@5Aizqy$+<64<@#TQJ!> zjF-mJ#r+mZrItt&wH@J7M}Nm;#yVpvPd1;|j+Hd9&c%K>x3JOHjcZG3ea!cr%pvwa zPEY=iIy|oubl*b>Wz|;%zyvgPPLwA*g|TNZxYOM%-ikgpktV9>Ia*97`J*w0$JSUn zgh?#BAlifC_IMB;@2^R64r>`F9g_#JmzUE#-8dqom$oWf6v8<5hUMl?4jQhil0%r` z_QwaLD;uja=x)3;Ngw7U;Rn{o@-JTEs5v!!4Os8Mq&exed>*%q5o2GOkXC7*P}4Dw z1EMSvCDl}ngOe%|6`rdB~@I%+l~yjnM~)OPvBFwtTDw{=O1QtR&6!{QBF z#&qm1(cYZWllJXzu1o{yJJE->rN82d#fUYEkS1R1952*y-sG+-J;+&Ez)^r&iEtQ( zFHCAY4fR#@m3^484)Ig^e{Yd!ma&DEs1g|u@w3in)l|<@c}tp{<3^^1Z56SQDMp?=4Cf&tp+Zv6#f8xI7L>7CbuuV!#U3SlfNiA)mimS$t5JyS!0YP) z8GZao-C>fMY~vH8G^-lI(Qj)hrcbdA?`AO1lImfLj@?BFZ8_Ikrt@z<2ZX#^h+#&d z-r(uTcb5p6KEP2*`1Yo;{QFUMGdgO_v|YOw{ zDZzONKQOJ?;@Tl;|Ct0OwlPayPfpB9^;5`?Hesf)Rb8p(bd^o2P!~9_pyTWvBK%x2 z_F{@z4(Xt~kQ=#oFR#vI<addHqa_lE3o!gf2PO_-L9{)N!!329OCK0elFfq3nKYP$GU zD*}v-#WB$A!S3bkNTN%j;y*#-+G1F%+MVtO22$SwoZL!nbd99Z4ryb z3*m27#Cv)jLykIjOhd^zE7-K7&x4KuYu3~zZo2R3Ar+BY&=+I+a_szDt#E_(l!OB( zZOn3NAWocsrO_nMYfiMp5*q=AkrhzKt}D)BqwU(Mw^uA|XpCVm_XliA@<#$9YqW8E zZ_&1p&l?UkJdHQUG$CmU+aT@^a9;~XwuK$6bRa7m6NSyWDfc>8L$m`e*i5a18d03^ zW?%*%t?DGqCXB9DK%i+JzWJemhP?GiUgG8WgQt@_eScSEOI!UOV$y241RMdo^|%6I z-;)%Hik7)P^|^EB8nRUFYWW&G4)Ke^>8>oui?NlQ$`IygTTztVB6g&GWd3oF9D?Ct z4}S1BpOA~PjV6b`NIg7(Y(wqFopy;HH_9_|E0h_8nwAO5l&}V~!TN8$zsX{J%S5jA z@|xDmR!I<2=;Yr|E>j@8$iKHYFpY_S`@NGy<6c;$S52@51SbX_*D?|LoIAEdEC=~L7_7^u05rRqHz8TZqF8pYjt$#oKpAvbjR)Sjp7?*h{$ZL zu7|GArBHcYl~lC^DZ#WnXf4L~fHT-Fh0B0YZH&h&L+AL)v)4d;7I~XnwA!(2T~OS* zRMtYGB(vDje@^ncRK+&oy936$V%6f8pR+8-l*c_`QD864?tS9Z%iaQK?*r1kqB z=^zzOk^fx>)t{XmsJ@OsuGI#uA=5!dk=?0(5)J5|zNRjXzEV@wg6J3-b*GQ($+WAfI)|bdIXUyC$=0v3ZUkuL-#BJX5=pa~6{i~w7>-aX_LiJQS)jsh^ zqUb`fz|YV4Ik>S&5sQ8+fApR#+Bmqa36e4IoW3T5cI(ykRHljdL*MR)dXtgv_xyHa z+@7+YBY9O-`-RWyfAg=m9Q_Oh5hZ6CNIRu*UR+h$=q|B>S|=79N{(>rs}0zf+RrDI z@YJo*4s3J_*Pg5F37EdL`mOaYlZvFY^FB3H*>u!5fwai^baL1C4TKwUDf(SYd7P2f z`od9kD;pPQ!UJFJa}Kb0M)2*hF~;#(?~?WL3Ke}Z*>_i5V+#_Hu8J`HQ;P^GTd&jK zxXmD1Y*egyyb)ohj63VuRq_xG^rBt3A1F)xc#Ly5X})`Ox-M7VKrS7uy^`a$@c6-~ zZE{!KTR)plKr6tBHI9dsrS=+Al&(`7P5YGR&nN%uww>ikeh43Sw`!5$Csx9=%qoN` z%p+}b5`(#o<}Xw>WJL1DH)6%EhhdU4kJ2#za%qQ~n`l^huf5XZ=Aa$ zZp2Y@8RTj(#{4n&JG2Q$s7M+%B^|m+76#kjdH4TF9)6$6OuvI^~^)D<&@qq7wD)%4bxPB1MzgF@}Xoz8bN4>%+v)6H2aj!I>0TRK<+lw<{9zsdsPOL|B6C$ZU}y6?QqM}l*pSUc*_V{RTu#XS~38EuWI?Czc3JC(DRW$KMG zN0pAjM>&Y2H(!74IivzRfV}b~G6Q4$p=K^a^!B7p(XT0yOX;JQ^x%6{+gF{R^*u72 z9rAdhqOR7+Mc6?H#dZlg7TmfJ2yKMbB2$CKR@$w>DWW*cRK&VHib)WeYApT)miyl* z`58NtT(BYLe&O8iyIePjOi7vvg;0x=rb-Ika>>yrri_0zIK)$3BV10+DkZM+B74(J z7Ar<=R!7NhR?#5|nu}vi2v?SwuUwRk4>Zs5NQ7?(_hvh985!@pu0|8=f0&*b@f}&#bhh(2(L%0<+rD*?|lds zEmb;yjv!0LpQ8gvEWKfi$SO%iHIwzmf&$P?e}XnUvE>1jBCq|X-fCkXs)KwHKUJER zuBUg4T7Q#MNA|RHjJ^4jW4SEIcvTSJWCVfSmet$pT**o`%;%8e9Q1At+bt?Qa#$wo zDoVO}<|%E99b=y$IY{ATBT*qsvNMPO1?ZGw56=juEITHaI;Y5%?>Y=y8nsiC~qTgMh6Rwt8=8PoZBdQ*QHWpVk}C;(#fM0d&%o_ z5*}#I!J3enA?KfPG);{s7kS*sKDPfdc6~d*;0@E228lt31m%kKR2X7IHF#`pk6g;m zFect|M>}h+yJKoXf5&9?Bia^Q3I1v!GAb8bYk=g?x1U$JDs}Gr-TXfAZm$R`sJdmO zX~kA#lX|?v^cRar9vz4>!+}|l&2)MT{c15mk>$G?Lj0CJTWAD*h3Lk$K*zDr%(Gza z=uVZfug}Yfwl6n;m@(mXBBRPq&KS;Y8OD0`6<42#VMxla3?S#BoQJ=aFIhb*G-oYz^C)Zh zx>?N7M0PeUW(`%0)=$oa1*?FHB*pKT_uVn`KB>%(b+r!--)`c|ba9VISZI zbHXXYkML$hAZ%j^=PSc8nKEL1l}^848^&cl9sT}XV?Bmd>4TW(wR?1JgvVi*x1c%|wY;9xjz1R@%*PKfjV~IW`T(;01J)$Um2BN_tQA zUv+^hzwsJCO!R5mLfD6kkiRUyi`?l7?Nh_rk|RVX*A@u&dXwP8$?e+hpFlt%uka)B zPYWjPB2k)NoEKXkfap371Typ&z{Ue}Dk8U98qD%Fs?t+lN@?-kvITrVEH1_~0L0g8b zFA{Yj6)QN# z7G2;`&bxrojohIzzV+}&X2#9d>?F_;XbJBC%$NKR&La14C-7(k)W?r4aGk3XU~h{D zbWs@rtx3Y+3TYKAyj7uYvk0Ikpa9U3A;bDj{EUO@IeMN75Lyy1MBs%d5h>k%q<#9@ zW)@7O{sGJ^>|zf7@#m6K)m22a3!WGPIEBrea5OK7EKiXt?=MjCI9IF+uS_GRg7+PU zxZNRx4uBc8E(7h+d2K)T|BBV({?6q7H3!Op1g`-)rm}=wc|Q>3qkl$+cfh=#<6SgG zY=GB#QN*GnfEJ2`ZAc(p@D@F06hY-zOezeiMxJYPS%BTeGTkDDv-@$}X$*-#(G*U) zb_KdTxkH;vTL7MNG}`hgQY{d^%mfS^0>9dfn2(&t3cu!imgPpIr5OkN93D(IqznSe zQ!dC#o6N4VZWnFm9>`}hoO6{`9}k0nh8hq9Ix5&@8s4pUux!kcbUDiv^?|^1K0&axY^*;1R$)$}nIoi@%eZ0eU3q6<9$@17pH~Cm}NgM|5!v zU0`{BK-vl4m(ymFN}Bj?IhAjkk|L*0Ns+9{4}kis<$Q19jq z0UyC_@&KUtTLI8=w)9s&GHjXiQR7qqF;y@v5!HHU3$BP@nURc4YV>9u11M|=15$?r z{`w<4Ipqt+*x%KNhyp^HHN+fNE~X*gOBSigxL+B}Yk(_o@dlRD2;-m4ZeV?J5B;FJ z_02x|-jnK6-Mmm$zKcVG2|C*R$^dx*!Um_-*9y0jGac8sX^8b)zxfM6e*mKh`}zZr zuwxtj3pn3ezVy!}_Gi+YgJ_h2E#~(6%ng1+IsUJFZv7N zc_+I6V*Ywvg4otuMnkZ4h3%nB{Ty_U3AO+BRKeNPk#9~roMtJM7idR__G z`E_4nPnH)K?JMdrkh$CTKy>%)U5)=ssf;W#F8yCc#bp)fTN!$*9B)ejss7OIkXDny z&i`h_fJ(;!7SxBxGJ?LTNsPu&U%-Bcvo&EZF0cU@I} zq99&pZw9R0@C2U+s92(Od~?KumUl8TGbXn_h~r?ffJy>1=3OOMGN@k$SZ6e%gS{go zGE*6I%9?jt_;o+Y;x%B^n8eUje;*?TGMF!D-* ztcP|nbdy?XaghzNl54XViwYR!4LM2_8S%TW53X+a`ZO4^t+lE%RkDF3uQ=7El?HyT z#|p~n&z+dJgJ=TCS7TfgL-^J}L1+@kFCa1Pdf6Ps3LG#~E>xm~=hD9c0oWA-HZC(Ku(asfTGj>US@kUT(F4``jy>)j8(*h8s(sNhB+;9zSX`h1lq zvf|iYrKnAjN!QU|G;r`g_ab1Nns-3GXc!)04sN);`21;SaX(2zdFgA0WV!Np6(wvY z1MJlQpaPo+Wd>%%3(c(AE?_#aW>5b{M@Z|wcs~;!6zzNZ1rkW5byO0Z?RWG*@M?k9 z2iYSvhXajD__ExT%t90F3rWSoJi^xyh0B}4TR~Ky+@B8t&!-ExY|f8()thu^J#v|= zg|dx7UvT{RnPmrE45M6ch0|tjx4~sVfL;xhLBPUNSsM%w9qlO!o@Y)y2r@c*$ws06 zOe?BI&NXyRQe$L-l?}>=69`-szEIfN%S>pm94r9$=z+Mb`gsi@RL2?DJEe%6({+QY z@FUgIzl&KyMI!`ZebDz0N@T%6?fM6p5zaEnP?OIb#x5JyZ9Mp$<)xZ&d7;l~SFE6% ztSA8h6}OufH0+P~{0$}pdowGYx;`g#DCF$b5xBivC3<^wEv@ot0~RF{*Q_R=77>SQ z91@5$vlkr;({Ik{I+Ln?(O?sFo^foUmhi_PQAna(BXHRl{#y6ZN=oyy&AZ16sxwnfABL!+k0K&JNT*rLjP(P^ zB7e*&ut@T)L6r&%zsb=}d_>rMCNI?Mi16_ylB7No5x!a0Va{XGwY4`KFV68Wjtf-= z>w3d%dnXoLNIJA)abUN@2s)MW{!T$hNeUaDYQ?6xdU=|V5(g*)EvQHHpIa0KhFR#z zR!H;l?Q>#CN~_-_STI@T^#-s9$5Ck+JF#v?7`9a@-NFJ}SdEA677&1{Nklt5Gj}Kc z@}j&7D%YV9?RA?E*8{UglxuQfe>zw~-<(!j3poWD-x@T<9{X)*g$hOO1Q&=)EKGm4$gwmNI*@9*LVc;%e7)J0$?R*mx&WOqJxI-Of*u;KNj zLeTnxTF`3o+)r!#G)Ca+Dvrz6b*huShPy|;Vy0(;&TWx3W0k=r)mLI`v{t&HR$k$Xj#L!+*(zeLK`xcd zIQ(Owm=Vbt1@c!sOHZOV#!HCV#Yce}+3 zcv?hF*6`;mI=rGBO9=DET*Ga$(lE%|$)|F`U~w+T-s!0`VYv+%_zKm5tO0FIC6?`X zRT6C8m4;KA#F4C%jZE@t)-+F-2g2Oh+>I<73#gr})==$#m?nk9w_ zK1CzvI+#F{*(uaW$UU00l#+w}O-aEi4yN02*OftL^ZoXW_Chl9Q!hfRO6$)MW(R0- za`M!sM{h@IfYjlr_2*xOV((RdO#)_PX4Wf%Jlfp^�_awr;XVrsyF@l5Z(k@P15R=k=o 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%0D?Cf$&Y#^2@x`iT7O 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 diff --git a/src/public/app/doc_notes/en/User Guide/navigation.html b/src/public/app/doc_notes/en/User Guide/navigation.html index 50fbc4f0f..31bb6e3cb 100644 --- a/src/public/app/doc_notes/en/User Guide/navigation.html +++ b/src/public/app/doc_notes/en/User Guide/navigation.html @@ -132,6 +132,11 @@
    21. Cloning Notes +
    22. Protected Notes From 0b0d2128549c65ea88d84466d0f87500cd9621f8 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 21:53:31 +0300 Subject: [PATCH 25/69] feat(docs): document recent changes --- docs/User Guide/!!!meta.json | 68 +++++++++++++++--- .../Basic Concepts and Features/Notes.md | 4 +- .../UI Elements/1_Recent Changes_image.png | Bin 0 -> 82374 bytes .../UI Elements/Recent Changes.md | 14 ++++ .../UI Elements/Recent Changes_image.png | Bin 0 -> 1422 bytes .../app/doc_notes/en/User Guide/!!!meta.json | 68 +++++++++++++++--- .../Basic Concepts and Features/Notes.html | 10 +-- .../UI Elements/1_Recent Changes_image.png | Bin 0 -> 82374 bytes .../UI Elements/Recent Changes.html | 33 ++++++++- .../UI Elements/Recent Changes_image.png | Bin 0 -> 1422 bytes 10 files changed, 173 insertions(+), 24 deletions(-) create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Recent Changes_image.png create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Recent Changes_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes_image.png diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index f71a078ad..c68018d90 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -2222,11 +2222,56 @@ "value": "bx bx-history", "isInheritable": false, "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OR8WJ7Iz9K4U", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 50 } ], "format": "markdown", "dataFileName": "Recent Changes.md", - "attachments": [] + "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" + } + ] } ] }, @@ -2301,13 +2346,6 @@ "isInheritable": false, "position": 80 }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 90 - }, { "type": "label", "name": "shareAlias", @@ -2321,6 +2359,20 @@ "value": "bx bx-notepad", "isInheritable": false, "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "r5JGHN99bVKn", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 120 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes.md index 381e59000..f8d870232 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes.md @@ -23,7 +23,7 @@ Tree structure of notes can resemble file system - but compared to that notes in When you delete a note in Trilium, it is actually only marked for deletion (soft-delete) - the actual content, title, attributes etc. are not deleted, only hidden. -Within (by default) 7 days, it is possible to undelete these soft-deleted notes - open Recent Changes dialog, and you will see a list of all modified notes including the deleted ones. Notes available for undeletion have a link to do so. This is kind of "trash can" functionality known from e.g. Windows. +Within (by default) 7 days, it is possible to undelete these soft-deleted notes - open the Recent Changes dialog, and you will see a list of all modified notes including the deleted ones. Notes available for undeletion have a link to do so. This is kind of "trash can" functionality known from e.g. Windows. Clicking an undelete will recover the note, it's content and attributes - note should be just as before being deleted. This action will also undelete note's children which have been deleted in the same action. @@ -33,4 +33,4 @@ After the 7 days (configurable) the notes will be "erased" - their title, conten ## See also -* [Read-only note](Notes/Read-Only%20Notes.md) \ No newline at end of file +* Read-Only Notes \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Recent Changes_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Recent Changes_image.png new file mode 100644 index 0000000000000000000000000000000000000000..0a34b08e6a15ebb87d463e97231eadaf01d96f1d GIT binary patch literal 82374 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

      cKP`E#=&SMPp?pZ)xDzBY9qStXQ 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 literal 0 HcmV?d00001 diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md index e69de29bb..8c5929fdb 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md @@ -0,0 +1,14 @@ +# Recent Changes +

      + +## Accessing the recent changes + +* For an overview of the changes across all documents, press the button in the Launch Bar. + * If there is a [hoisted note](../Navigation/Note%20Hoisting.md) or a [workspace](../Navigation/Workspaces.md), the list of recent changes will be limited to the descendents of the hoisted note, or the workspace. +* To limit the list of recent changes to a note and its descendants, look for the corresponding option in the Note tree contextual menu → Advanced. + +## Interaction + +* Notes which were changed will appear in reverse chronological order (latest update first). +* The title of the note is displayed, as well as the note path. Clicking on the note title will dismiss the dialog and navigate to that particular note. +* Deleted notes will also be listed here, at their time of deletion. Press the _Undelete_ link next to them in order to recover them. \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes_image.png new file mode 100644 index 0000000000000000000000000000000000000000..93c1615d56551527627d1dd85b1fdb6346f8d4d4 GIT binary patch literal 1422 zcmV;91#$X`P)P000#T1^@s6vnxdy00004b3#c}2nYxW zdFc{=KpU9&($05L5T3UM4 z+S+P`vA^-X4IBfvz)u>X0U{dUMMj|L;^LxoaBwhpe}6xLYciS4|MKO_n}UJ@e{yni z==%CPf;G|7(oziWP-Bl+rBdB?c6NR(EG%5ZH>3IixCA3od?)}$@WK4jAGg4?ypUFdohJ_IB>@@UR(eBoRaSD zZV3jAf*xlhMbB}d&}y}6ap116ukW9-va&UaM6!u>rr;+K1el5+B9Z7+uh+ZF%gg09 zn@#0#I5ayuJ8|GDg7eqd<0a7o*$nxY_4Rer#>Peh4hP!W+H5&FIjfkbM+dyzZntNy ztgIB_LNmUZf&YMAjYhNH-rjD5K`%2fIXP*HL?T&O)6oDUiRA~Pu*}cT8!(o=diClG z-h9QF5J;553B%CPQ0AvkpVBeU6f>$bz^c>fw(9EYC|B|F@^UKDPIVduBQf|;VNwS& zl}L@ava-^P_c`XT0P?`g=ujM>0hnHbVqv=7fE_Bcr=_L&E-x=*_xAR5n9~ZWQt}|e zRH6pt(7z-#HC0d@_Xv-mLPnklFdezT6CerjKw&?!va)V4j%;mh(IFLcD%3^#@$oS| zldIM0C@6^=c#xOf0gOU;WGKuO;7?3gu=i?UV8CHEn-9UI&uBEV2*n7|fh z^6czv{=~#Y0iw`jQL($b8}8`nP!|;yWxRX$&W=kiFz*AHGFCFdu0XM{LohO`&Iv?| z@!&0i5e14^FXhCG7cZjM*47l8o163&qKE|0Hrx#j4K5g9=;Xu?TtW=rQc_Y_=`_Oh z1#yK3sv>v1TnQP=xu(@>J-ElobX_SFibKdX9R-*GUP1`j)zZ>pLuKz`{a=83zwbjJ zm0;Uo1Oi_)MhCS%pU>cQIvJrTJw2UbaB|ZnV8w;&O-)Uop(tx}bMxM_XU|xC-vD|@ z0|bq6ZVUMQ02<^RBUT?C9_pZ~SagbDettf=ykR7?<^ZA~KYve8k2x<^uB_4Q^5a z9db^hNxr~O7-OF0J}r<50X><$_D-{gJ#_|Y^oGsAz7AL;&%PRw+YQwNPuDS{y$ zrZFEplFiM{84yVds>^%M+3l(@YBNhKF2~IqesQ)rq4%4Mt;Trf<;PB*xpGdML?O7i+e{w^xgaS?`;(o z6`$dR6?6Ll+mi3Gk;gwTwwVmzH#E(s_%RvbZ4!*J7f}e@%O`+#eum%gd3}BTu~Mld z2Ri^GpeiYl&|@P!#KVk;UebGZTFb*b3+j35cDoHMwxpz_0Q%Gkj4=0;M1& literal 0 HcmV?d00001 diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 5560b4d28..d6f2de8d2 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -2222,11 +2222,56 @@ "value": "bx bx-history", "isInheritable": false, "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OR8WJ7Iz9K4U", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 50 } ], "format": "html", "dataFileName": "Recent Changes.html", - "attachments": [] + "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" + } + ] } ] }, @@ -2301,13 +2346,6 @@ "isInheritable": false, "position": 80 }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 90 - }, { "type": "label", "name": "shareAlias", @@ -2321,6 +2359,20 @@ "value": "bx bx-notepad", "isInheritable": false, "position": 100 + }, + { + "type": "relation", + "name": "internalLink", + "value": "r5JGHN99bVKn", + "isInheritable": false, + "position": 110 + }, + { + "type": "relation", + "name": "internalLink", + "value": "CoFPLs3dRlXc", + "isInheritable": false, + "position": 120 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html index 30a2f01c3..30bbda0d1 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html @@ -43,10 +43,10 @@ (soft-delete) - the actual content, title, attributes etc. are not deleted, only hidden.

      Within (by default) 7 days, it is possible to undelete these soft-deleted - notes - open Recent Changes dialog, and you will see a list of all modified - notes including the deleted ones. Notes available for undeletion have a - link to do so. This is kind of "trash can" functionality known from e.g. - Windows.

      + notes - open the Recent Changes dialog, + and you will see a list of all modified notes including the deleted ones. + Notes available for undeletion have a link to do so. This is kind of "trash + can" functionality known from e.g. Windows.

      Clicking an undelete will recover the note, it's content and attributes - note should be just as before being deleted. This action will also undelete note's children which have been deleted in the same action.

      @@ -60,7 +60,7 @@ href="../Installation%20%26%20Setup/Backup.html">Backup).

      See also

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Recent Changes_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/1_Recent Changes_image.png new file mode 100644 index 0000000000000000000000000000000000000000..0a34b08e6a15ebb87d463e97231eadaf01d96f1d GIT binary patch literal 82374 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

      cKP`E#=&SMPp?pZ)xDzBY9qStXQ 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 literal 0 HcmV?d00001 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html index 006cb65aa..b045ed36c 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html @@ -12,7 +12,38 @@

      Recent Changes

      -
      +
      +
      + +
      +

      Accessing the recent changes

      +
        +
      • For an overview of the changes across all documents, press the + button in the Launch Bar. +
          +
        • If there is a hoisted note or + a workspace, the list of recent + changes will be limited to the descendents of the hoisted note, or the + workspace.
        • +
        +
      • +
      • To limit the list of recent changes to a note and its descendants, look + for the corresponding option in the Note tree contextual menu → + Advanced.
      • +
      +

      Interaction

      +
        +
      • Notes which were changed will appear in reverse chronological order (latest + update first).
      • +
      • The title of the note is displayed, as well as the note path. Clicking + on the note title will dismiss the dialog and navigate to that particular + note.
      • +
      • Deleted notes will also be listed here, at their time of deletion. Press + the Undelete link next to them in order to recover them.
      • +
      +
      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes_image.png new file mode 100644 index 0000000000000000000000000000000000000000..93c1615d56551527627d1dd85b1fdb6346f8d4d4 GIT binary patch literal 1422 zcmV;91#$X`P)P000#T1^@s6vnxdy00004b3#c}2nYxW zdFc{=KpU9&($05L5T3UM4 z+S+P`vA^-X4IBfvz)u>X0U{dUMMj|L;^LxoaBwhpe}6xLYciS4|MKO_n}UJ@e{yni z==%CPf;G|7(oziWP-Bl+rBdB?c6NR(EG%5ZH>3IixCA3od?)}$@WK4jAGg4?ypUFdohJ_IB>@@UR(eBoRaSD zZV3jAf*xlhMbB}d&}y}6ap116ukW9-va&UaM6!u>rr;+K1el5+B9Z7+uh+ZF%gg09 zn@#0#I5ayuJ8|GDg7eqd<0a7o*$nxY_4Rer#>Peh4hP!W+H5&FIjfkbM+dyzZntNy ztgIB_LNmUZf&YMAjYhNH-rjD5K`%2fIXP*HL?T&O)6oDUiRA~Pu*}cT8!(o=diClG z-h9QF5J;553B%CPQ0AvkpVBeU6f>$bz^c>fw(9EYC|B|F@^UKDPIVduBQf|;VNwS& zl}L@ava-^P_c`XT0P?`g=ujM>0hnHbVqv=7fE_Bcr=_L&E-x=*_xAR5n9~ZWQt}|e zRH6pt(7z-#HC0d@_Xv-mLPnklFdezT6CerjKw&?!va)V4j%;mh(IFLcD%3^#@$oS| zldIM0C@6^=c#xOf0gOU;WGKuO;7?3gu=i?UV8CHEn-9UI&uBEV2*n7|fh z^6czv{=~#Y0iw`jQL($b8}8`nP!|;yWxRX$&W=kiFz*AHGFCFdu0XM{LohO`&Iv?| z@!&0i5e14^FXhCG7cZjM*47l8o163&qKE|0Hrx#j4K5g9=;Xu?TtW=rQc_Y_=`_Oh z1#yK3sv>v1TnQP=xu(@>J-ElobX_SFibKdX9R-*GUP1`j)zZ>pLuKz`{a=83zwbjJ zm0;Uo1Oi_)MhCS%pU>cQIvJrTJw2UbaB|ZnV8w;&O-)Uop(tx}bMxM_XU|xC-vD|@ z0|bq6ZVUMQ02<^RBUT?C9_pZ~SagbDettf=ykR7?<^ZA~KYve8k2x<^uB_4Q^5a z9db^hNxr~O7-OF0J}r<50X><$_D-{gJ#_|Y^oGsAz7AL;&%PRw+YQwNPuDS{y$ zrZFEplFiM{84yVds>^%M+3l(@YBNhKF2~IqesQ)rq4%4Mt;Trf<;PB*xpGdML?O7i+e{w^xgaS?`;(o z6`$dR6?6Ll+mi3Gk;gwTwwVmzH#E(s_%RvbZ4!*J7f}e@%O`+#eum%gd3}BTu~Mld z2Ri^GpeiYl&|@P!#KVk;UebGZTFb*b3+j35cDoHMwxpz_0Q%Gkj4=0;M1& literal 0 HcmV?d00001 From eea141225d6cf5dd5e55849f86fd016a431e04e3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 22:48:57 +0300 Subject: [PATCH 26/69] refactor(calendar): dedicated method for building event content --- .../app/widgets/view_widgets/calendar_view.ts | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/public/app/widgets/view_widgets/calendar_view.ts b/src/public/app/widgets/view_widgets/calendar_view.ts index def38b547..c9c725713 100644 --- a/src/public/app/widgets/view_widgets/calendar_view.ts +++ b/src/public/app/widgets/view_widgets/calendar_view.ts @@ -155,28 +155,7 @@ export default class CalendarView extends ViewMode { locale: await CalendarView.#getLocale(), height: "100%", nowIndicator: true, - eventContent: (e) => { - let html = ""; - const { iconClass, promotedAttributes } = e.event.extendedProps; - - // Title and icon - if (iconClass) { - html += ` `; - } - html += utils.escapeHtml(e.event.title); - - // Promoted attributes - if (promotedAttributes) { - for (const [name, value] of promotedAttributes) { - html += `\ - `; - } - } - - return { html }; - }, + eventContent: this.#buildEventContent, dateClick: async (e) => { if (!this.isCalendarRoot) { return; @@ -199,6 +178,29 @@ export default class CalendarView extends ViewMode { return this.$root; } + #buildEventContent(e: EventDropArg) { + let html = ""; + const { iconClass, promotedAttributes } = e.event.extendedProps; + + // Title and icon + if (iconClass) { + html += ` `; + } + html += utils.escapeHtml(e.event.title); + + // Promoted attributes + if (promotedAttributes) { + for (const [name, value] of promotedAttributes) { + html += `\ + `; + } + } + + return { html }; + } + static async #getLocale() { const locale = options.get("locale"); From b1c8e625b2e933bb70ba061c92c699f3c05aba4a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 23:28:27 +0300 Subject: [PATCH 27/69] fix(calendar_view): display hours in calendar view --- .../app/widgets/view_widgets/calendar_view.ts | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/public/app/widgets/view_widgets/calendar_view.ts b/src/public/app/widgets/view_widgets/calendar_view.ts index c9c725713..f05e247ad 100644 --- a/src/public/app/widgets/view_widgets/calendar_view.ts +++ b/src/public/app/widgets/view_widgets/calendar_view.ts @@ -155,7 +155,31 @@ export default class CalendarView extends ViewMode { locale: await CalendarView.#getLocale(), height: "100%", nowIndicator: true, - eventContent: this.#buildEventContent, + eventDidMount: (e) => { + const { iconClass, promotedAttributes } = e.event.extendedProps; + + // Append promoted attributes to the end of the event container. + if (promotedAttributes) { + let promotedAttributesHtml = ""; + for (const [name, value] of promotedAttributes) { + promotedAttributesHtml = /*html*/`\ + `; + } + + let mainContainer; + switch (e.view.type) { + case "timeGridWeek": + mainContainer = e.el.querySelector(".fc-event-main"); + break; + case "listMonth": + mainContainer = e.el.querySelector(".fc-list-event-title"); + break; + } + $(mainContainer ?? e.el).append($(promotedAttributesHtml)); + } + }, dateClick: async (e) => { if (!this.isCalendarRoot) { return; @@ -178,29 +202,6 @@ export default class CalendarView extends ViewMode { return this.$root; } - #buildEventContent(e: EventDropArg) { - let html = ""; - const { iconClass, promotedAttributes } = e.event.extendedProps; - - // Title and icon - if (iconClass) { - html += ` `; - } - html += utils.escapeHtml(e.event.title); - - // Promoted attributes - if (promotedAttributes) { - for (const [name, value] of promotedAttributes) { - html += `\ - `; - } - } - - return { html }; - } - static async #getLocale() { const locale = options.get("locale"); From 05a006facac8e0b5017cfaecea5f618d55e6be9d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 23:33:57 +0300 Subject: [PATCH 28/69] fix(calendar_view): add back note icon --- .../app/widgets/view_widgets/calendar_view.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/public/app/widgets/view_widgets/calendar_view.ts b/src/public/app/widgets/view_widgets/calendar_view.ts index f05e247ad..231df60dc 100644 --- a/src/public/app/widgets/view_widgets/calendar_view.ts +++ b/src/public/app/widgets/view_widgets/calendar_view.ts @@ -158,6 +158,27 @@ export default class CalendarView extends ViewMode { eventDidMount: (e) => { const { iconClass, promotedAttributes } = e.event.extendedProps; + // Prepend the icon to the title, if any. + if (iconClass) { + let titleContainer; + switch (e.view.type) { + case "timeGridWeek": + case "dayGridMonth": + titleContainer = e.el.querySelector(".fc-event-title"); + break; + case "multiMonthYear": + break; + case "listMonth": + titleContainer = e.el.querySelector(".fc-list-event-title a"); + break; + } + + if (titleContainer) { + const icon = /*html*/` `; + titleContainer.insertAdjacentHTML("afterbegin", icon); + } + } + // Append promoted attributes to the end of the event container. if (promotedAttributes) { let promotedAttributesHtml = ""; From 43c281829947d6794995d25ec5e95205aabfc675 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 8 Apr 2025 23:38:04 +0300 Subject: [PATCH 29/69] fix(calendar_view): promoted attributes overlap --- src/public/app/widgets/view_widgets/calendar_view.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/public/app/widgets/view_widgets/calendar_view.ts b/src/public/app/widgets/view_widgets/calendar_view.ts index 231df60dc..22689af8c 100644 --- a/src/public/app/widgets/view_widgets/calendar_view.ts +++ b/src/public/app/widgets/view_widgets/calendar_view.ts @@ -65,6 +65,7 @@ const TPL = /*html*/` .calendar-container .promoted-attribute { font-size: 0.85em; opacity: 0.85; + overflow: hidden; } @@ -192,8 +193,11 @@ export default class CalendarView extends ViewMode { let mainContainer; switch (e.view.type) { case "timeGridWeek": + case "dayGridMonth": mainContainer = e.el.querySelector(".fc-event-main"); break; + case "multiMonthYear": + break; case "listMonth": mainContainer = e.el.querySelector(".fc-list-event-title"); break; From 8d09ff429904811cb9fef2794edabd0ecbd88e4f Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Tue, 8 Apr 2025 23:50:53 +0200 Subject: [PATCH 30/69] fix(routes): remove unused wildcard in apiRoute "/api/options/:name/:value*" the updateOption function that handles the req.param is just destructuring `const { name, value } = req.params;` and does nothing else with the path or any params. The remaining parts of the wildcard (which can be accessed via req.param[0]) are just ignored here. even with express v4, this would *always* just take and process the very first part of the path, in the exact wildcard's place, e.g. `/api/options/locale/de` and `/api/options/locale/de/test/whatever` would *both* end up destructuring "value" from req.param as "de" (because it is in the exact place of the 'value' wildcard) in express v5 the wildcard behaviour changes -> here req.param.value would return an array with the paths split into separate string. but since the code previously regarded only the first part of the path -> we can just get rid of the wildcard and use a named route param the only thing to keep in mind: if a request with more than one "value" is received, (e.g. `/api/options/locale/de/test/whatever`) -> since we don't have the wildcard anymore -> this will turn to a 404. IMHO that is actually desirable here though --- src/routes/routes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 25a48a742..37bca7988 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -238,7 +238,7 @@ function register(app: express.Application) { apiRoute(GET, "/api/options", optionsApiRoute.getOptions); // FIXME: possibly change to sending value in the body to avoid host of HTTP server issues with slashes - apiRoute(PUT, "/api/options/:name/:value*", optionsApiRoute.updateOption); + apiRoute(PUT, "/api/options/:name/:value", optionsApiRoute.updateOption); apiRoute(PUT, "/api/options", optionsApiRoute.updateOptions); apiRoute(GET, "/api/options/user-themes", optionsApiRoute.getUserThemes); apiRoute(GET, "/api/options/codeblock-themes", optionsApiRoute.getSyntaxHighlightingThemes); From 26d5462af4bcf59869757fe676523d896a5ffd74 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 00:17:30 +0200 Subject: [PATCH 31/69] refactor(routes/custom): update path "/custom/*path" for express v5 --- src/routes/custom.ts | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/routes/custom.ts b/src/routes/custom.ts index 093a0e6eb..e4494a6cd 100644 --- a/src/routes/custom.ts +++ b/src/routes/custom.ts @@ -8,9 +8,26 @@ import type { Request, Response, Router } from "express"; import { safeExtractMessageAndStackFromError } from "../services/utils.js"; function handleRequest(req: Request, res: Response) { - // express puts content after first slash into 0 index element - const path = req.params.path + req.params[0]; + // handle path from "*path" route wildcard + // in express v4, you could just add + // req.params.path + req.params[0], but with v5 + // we get a split array that we have to join ourselves again + + // @TriliumNextTODO: remove typecasting once express types are fixed + // they currently only treat req.params as string, while in reality + // it can also be a string[], when using wildcards + const splitPath = req.params.path as unknown as string[]; + + //const path = splitPath.map(segment => encodeURIComponent(segment)).join("/") + // naively join the "decoded" paths using a slash + // this is to mimick handleRequest behaviour + // as with the previous express v4. + // @TriliumNextTODO: using something like => + // splitPath.map(segment => encodeURIComponent(segment)).join("/") + // might be safer + + const path = splitPath.join("/") const attributeIds = sql.getColumn("SELECT attributeId FROM attributes WHERE isDeleted = 0 AND type = 'label' AND name IN ('customRequestHandler', 'customResourceProvider')"); @@ -70,7 +87,7 @@ function handleRequest(req: Request, res: Response) { function register(router: Router) { // explicitly no CSRF middleware since it's meant to allow integration from external services - router.all("/custom/:path*", (req: Request, res: Response, _next) => { + router.all("/custom/*path", (req: Request, res: Response, _next) => { cls.namespace.bindEmitter(req); cls.namespace.bindEmitter(res); From 80dd925231ed184270c90fd4a1a8aeeda9a23303 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 08:19:20 +0200 Subject: [PATCH 32/69] chore(lint): fix minor lint issues in recovery_codes /home/pano/Programming/0_repos/TriliumNextNotes/src/services/encryption/recovery_codes.ts 2:1 error Imports should be sorted alphabetically sort-imports 3:1 error Imports should be sorted alphabetically sort-imports 13:9 error 'encryptedRecoveryCodes' is never reassigned. Use 'const' instead prefer-const 57:5 error Unexpected var, use let or const instead no-var --- src/services/encryption/recovery_codes.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/services/encryption/recovery_codes.ts b/src/services/encryption/recovery_codes.ts index 72c0012a8..7cca40744 100644 --- a/src/services/encryption/recovery_codes.ts +++ b/src/services/encryption/recovery_codes.ts @@ -1,6 +1,6 @@ -import sql from '../sql.js'; -import optionService from '../options.js'; import crypto from 'crypto'; +import optionService from '../options.js'; +import sql from '../sql.js'; function isRecoveryCodeSet() { return optionService.getOptionBool('encryptedRecoveryCodes'); @@ -10,7 +10,7 @@ function setRecoveryCodes(recoveryCodes: string) { const iv = crypto.randomBytes(16); const securityKey = crypto.randomBytes(32); const cipher = crypto.createCipheriv('aes-256-cbc', securityKey, iv); - let encryptedRecoveryCodes = cipher.update(recoveryCodes, 'utf-8', 'hex'); + const encryptedRecoveryCodes = cipher.update(recoveryCodes, 'utf-8', 'hex'); sql.transactional(() => { optionService.setOption('recoveryCodeInitialVector', iv.toString('hex')); @@ -54,7 +54,7 @@ function verifyRecoveryCode(recoveryCodeGuess: string) { } const recoveryCodes = getRecoveryCodes(); - var loginSuccess = false; + let loginSuccess = false; recoveryCodes.forEach((recoveryCode: string) => { if (recoveryCodeGuess === recoveryCode) { removeRecoveryCode(recoveryCode); From af85ef0b4716b39408ab960f1a5460953188f62c Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 08:34:42 +0200 Subject: [PATCH 33/69] types(services/sql): explicitly cast return value as type variable T instead of any previously the type variable was useless, because `const ret = (dbConnection.transaction(func) as any).deferred();` was inferred as "any". --- src/services/sql.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/sql.ts b/src/services/sql.ts index 72dd6a8e3..d135b54da 100644 --- a/src/services/sql.ts +++ b/src/services/sql.ts @@ -278,7 +278,7 @@ function transactional(func: (statement: Statement) => T) { ws.sendTransactionEntityChangesToAllClients(); } - return ret; + return ret as T; } catch (e) { console.warn("Got error ", e); const entityChangeIds = cls.getAndClearEntityChangeIds(); From eae68064e5e7aaef138264dc9f3ff0c3f4bbcab3 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 08:41:55 +0200 Subject: [PATCH 34/69] types(recovery_codes): use sql.transactional Generics to simplify typings --- src/services/encryption/recovery_codes.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/encryption/recovery_codes.ts b/src/services/encryption/recovery_codes.ts index 7cca40744..9fb7d4d3c 100644 --- a/src/services/encryption/recovery_codes.ts +++ b/src/services/encryption/recovery_codes.ts @@ -27,7 +27,7 @@ function getRecoveryCodes() { return [] } - return sql.transactional(() => { + return sql.transactional(() => { const iv = Buffer.from(optionService.getOption('recoveryCodeInitialVector'), 'hex'); const securityKey = Buffer.from(optionService.getOption('recoveryCodeSecurityKey'), 'hex'); const encryptedRecoveryCodes = optionService.getOption('recoveryCodesEncrypted'); @@ -41,7 +41,7 @@ function getRecoveryCodes() { } function removeRecoveryCode(usedCode: string) { - const oldCodes: string[] = getRecoveryCodes(); + const oldCodes = getRecoveryCodes(); const today = new Date(); oldCodes[oldCodes.indexOf(usedCode)] = today.toJSON().replace(/-/g, '/'); setRecoveryCodes(oldCodes.toString()); @@ -55,7 +55,7 @@ function verifyRecoveryCode(recoveryCodeGuess: string) { const recoveryCodes = getRecoveryCodes(); let loginSuccess = false; - recoveryCodes.forEach((recoveryCode: string) => { + recoveryCodes.forEach((recoveryCode) => { if (recoveryCodeGuess === recoveryCode) { removeRecoveryCode(recoveryCode); loginSuccess = true; From 05917fd815fdc6c252ebb9abd648a63084387344 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 09:21:20 +0200 Subject: [PATCH 35/69] fix(routes/api/recovery_codes): convert number into string fixes type error, as usedStatus is expecting string[] and "indexOf" returns a number --- src/routes/api/recovery_codes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/api/recovery_codes.ts b/src/routes/api/recovery_codes.ts index 848820981..a98e1e38c 100644 --- a/src/routes/api/recovery_codes.ts +++ b/src/routes/api/recovery_codes.ts @@ -47,7 +47,7 @@ function getUsedRecoveryCodes() { recoveryCodes.forEach((recoveryKey: string) => { if (dateRegex.test(recoveryKey)) usedStatus.push(recoveryKey); - else usedStatus.push(recoveryCodes.indexOf(recoveryKey)); + else usedStatus.push(String(recoveryCodes.indexOf(recoveryKey))); }); return { From 68ea84a2cb90cc2bcf80f936636b0daa1729d355 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 09:24:28 +0200 Subject: [PATCH 36/69] refactor(routes/api/recovery_codes): use .map instead of .forEach it doesn't make sense to use a forEach here, when all we do is push values into an array => just use .map directly as it returns an array --- src/routes/api/recovery_codes.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/routes/api/recovery_codes.ts b/src/routes/api/recovery_codes.ts index a98e1e38c..78be09966 100644 --- a/src/routes/api/recovery_codes.ts +++ b/src/routes/api/recovery_codes.ts @@ -43,12 +43,10 @@ function getUsedRecoveryCodes() { const dateRegex = RegExp(/^\d{4}\/\d{2}\/\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/gm); const recoveryCodes = recovery_codes.getRecoveryCodes(); - const usedStatus: string[] = []; - recoveryCodes.forEach((recoveryKey: string) => { - if (dateRegex.test(recoveryKey)) usedStatus.push(recoveryKey); - else usedStatus.push(String(recoveryCodes.indexOf(recoveryKey))); - }); + const usedStatus = recoveryCodes.map(recoveryKey => { + return (dateRegex.test(recoveryKey)) ? recoveryKey : String(recoveryCodes.indexOf(recoveryKey)) + }) return { success: true, From da649d75c079d983231e3606402b5deeb0fc4195 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 09:43:38 +0200 Subject: [PATCH 37/69] refactor(routes/api/recovery_codes): use Array.from with mapFn in generateRecoveryCodes gives us the identical result as before, but a lot more concise and "DRY" --- src/routes/api/recovery_codes.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/routes/api/recovery_codes.ts b/src/routes/api/recovery_codes.ts index 848820981..4ff80614b 100644 --- a/src/routes/api/recovery_codes.ts +++ b/src/routes/api/recovery_codes.ts @@ -20,16 +20,7 @@ function checkForRecoveryKeys() { } function generateRecoveryCodes() { - const recoveryKeys = [ - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64'), - randomBytes(16).toString('base64') - ]; + const recoveryKeys = Array.from({ length: 8 }, () => randomBytes(16).toString('base64')); recovery_codes.setRecoveryCodes(recoveryKeys.join(',')); From 6d74f6c1c4da248a4e9b86180bedac7c9a36b1f8 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Wed, 9 Apr 2025 09:52:01 +0200 Subject: [PATCH 38/69] chore(deps): run npm audit fix fixes vite 6.2.0 - 6.2.4 Severity: moderate Vite allows server.fs.deny to be bypassed with .svg or relative paths - https://github.com/advisories/GHSA-xcj6-pq6g-qj4x --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bb7e57f6..6ff080159 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20806,9 +20806,9 @@ } }, "node_modules/vite": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", - "integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", + "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", "dev": true, "license": "MIT", "dependencies": { From 27ad451bd89c727ae6d81716ea593e9ab2c1fcb9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 9 Apr 2025 14:10:05 +0300 Subject: [PATCH 39/69] feat(electron): support transparency on Linux if background effects are enabled --- src/services/window.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/services/window.ts b/src/services/window.ts index f5c7857a1..91bedb40c 100644 --- a/src/services/window.ts +++ b/src/services/window.ts @@ -212,8 +212,15 @@ function getWindowExtraOpts() { } // Window effects (Mica) - if (optionService.getOptionBool("backgroundEffects") && isWindows) { - extraOpts.backgroundMaterial = "auto"; + if (optionService.getOptionBool("backgroundEffects")) { + if (isMac) { + // Vibrancy not yet supported. + } else if (isWindows) { + extraOpts.backgroundMaterial = "auto"; + } else { + // Linux or other platforms. + extraOpts.transparent = true; + } } return extraOpts; From f7fbda1b00a7b61294b5e10ea1818d32ffd93966 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 9 Apr 2025 14:46:21 +0300 Subject: [PATCH 40/69] fix(docs): import errors due to file case errors --- .../Advanced Usage/{Bulk actions.md => Bulk Actions.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/User Guide/User Guide/Advanced Usage/{Bulk actions.md => Bulk Actions.md} (100%) diff --git a/docs/User Guide/User Guide/Advanced Usage/Bulk actions.md b/docs/User Guide/User Guide/Advanced Usage/Bulk Actions.md similarity index 100% rename from docs/User Guide/User Guide/Advanced Usage/Bulk actions.md rename to docs/User Guide/User Guide/Advanced Usage/Bulk Actions.md From 652fc48a86ac427783cf7164c274fa7bd1fb71b0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 9 Apr 2025 15:13:10 +0300 Subject: [PATCH 41/69] chore(docs): sync --- docs/User Guide/!!!meta.json | 244 ++++++------------ .../Notes/Cloning Notes/Branch prefix.md | 2 +- .../Note Tree/Multiple selection.md | 2 +- .../Note Tree/Note tree contextual menu.md | 2 +- .../UI Elements/Recent Changes.md | 2 +- .../app/doc_notes/en/User Guide/!!!meta.json | 244 ++++++------------ .../{Bulk actions.html => Bulk Actions.html} | 4 +- .../Notes/Cloning Notes.html | 1 - .../UI Elements/Recent Changes.html | 3 +- 9 files changed, 168 insertions(+), 336 deletions(-) rename src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/{Bulk actions.html => Bulk Actions.html} (98%) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index c68018d90..67e2a5f94 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -1199,6 +1199,13 @@ "isInheritable": false, "position": 20 }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 30 + }, { "type": "label", "name": "shareAlias", @@ -1212,13 +1219,6 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YtSN43OrfzaA", - "isInheritable": false, - "position": 60 } ], "format": "markdown", @@ -1269,128 +1269,128 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-menu", + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "oPVyFC7WL2Lp", + "value": "yTjUdsOi4CIE", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "yTjUdsOi4CIE", + "value": "OR8WJ7Iz9K4U", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "3seOhtN8uLIY", + "value": "KC1HB96bqqHX", "isInheritable": false, "position": 40 }, { "type": "relation", "name": "internalLink", - "value": "OR8WJ7Iz9K4U", + "value": "bwg0e8ewQMak", "isInheritable": false, "position": 50 }, { "type": "relation", "name": "internalLink", - "value": "KSZ04uQ2D1St", + "value": "IakOLONlIfGI", "isInheritable": false, "position": 60 }, { "type": "relation", "name": "internalLink", - "value": "KC1HB96bqqHX", + "value": "mHbBMPDPkVV5", "isInheritable": false, "position": 70 }, { "type": "relation", "name": "internalLink", - "value": "bwg0e8ewQMak", + "value": "eIg8jdvaoNNd", "isInheritable": false, "position": 80 }, { "type": "relation", "name": "internalLink", - "value": "IakOLONlIfGI", + "value": "ivYnonVFBxbQ", "isInheritable": false, "position": 90 }, { "type": "relation", "name": "internalLink", - "value": "r5JGHN99bVKn", + "value": "TBwsyfadTA18", "isInheritable": false, "position": 100 }, { "type": "relation", "name": "internalLink", - "value": "mHbBMPDPkVV5", + "value": "0vhv7lsOLy82", "isInheritable": false, "position": 110 }, { "type": "relation", "name": "internalLink", - "value": "eIg8jdvaoNNd", + "value": "zEY4DaJG4YT5", "isInheritable": false, "position": 120 }, { "type": "relation", "name": "internalLink", - "value": "ivYnonVFBxbQ", + "value": "aGlEvb9hyDhS", "isInheritable": false, "position": 130 }, { "type": "relation", "name": "internalLink", - "value": "TBwsyfadTA18", + "value": "wArbEsdSae6g", "isInheritable": false, "position": 140 }, { "type": "relation", "name": "internalLink", - "value": "0vhv7lsOLy82", + "value": "3seOhtN8uLIY", "isInheritable": false, "position": 150 }, { "type": "relation", "name": "internalLink", - "value": "W8vYD3Q1zjCR", + "value": "KSZ04uQ2D1St", "isInheritable": false, "position": 160 }, { "type": "relation", "name": "internalLink", - "value": "aGlEvb9hyDhS", + "value": "r5JGHN99bVKn", "isInheritable": false, "position": 170 }, { "type": "relation", "name": "internalLink", - "value": "zEY4DaJG4YT5", + "value": "W8vYD3Q1zjCR", "isInheritable": false, "position": 180 }, @@ -1402,11 +1402,11 @@ "position": 190 }, { - "type": "relation", - "name": "internalLink", - "value": "wArbEsdSae6g", + "type": "label", + "name": "iconClass", + "value": "bx bx-menu", "isInheritable": false, - "position": 200 + "position": 10 } ], "format": "markdown", @@ -2217,39 +2217,39 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-history", + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "xYmIYSP6wE3F", + "value": "OR8WJ7Iz9K4U", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "YtSN43OrfzaA", + "value": "9sRHySam5fXb", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "OR8WJ7Iz9K4U", + "value": "YtSN43OrfzaA", "isInheritable": false, "position": 40 }, { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", + "type": "label", + "name": "iconClass", + "value": "bx bx-history", "isInheritable": false, - "position": 50 + "position": 10 } ], "format": "markdown", @@ -2342,10 +2342,24 @@ { "type": "relation", "name": "internalLink", - "value": "ODY7qQn5m2FT", + "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", @@ -2359,20 +2373,6 @@ "value": "bx bx-notepad", "isInheritable": false, "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "r5JGHN99bVKn", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 120 } ], "format": "markdown", @@ -2579,9 +2579,9 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-rename", + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", "isInheritable": false, "position": 10 }, @@ -2593,11 +2593,11 @@ "position": 20 }, { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", + "type": "label", + "name": "iconClass", + "value": "bx bx-rename", "isInheritable": false, - "position": 30 + "position": 10 } ], "format": "markdown", @@ -2803,6 +2803,13 @@ "isInheritable": false, "position": 10 }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 20 + }, { "type": "label", "name": "shareAlias", @@ -2816,13 +2823,6 @@ "value": "bx bx-sort-up", "isInheritable": false, "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 40 } ], "format": "markdown", @@ -8761,30 +8761,30 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-plus", + "type": "relation", + "name": "internalLink", + "value": "HI6GBBIduIgv", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "oPVyFC7WL2Lp", + "value": "Cq5X6iKQop6R", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "HI6GBBIduIgv", + "value": "oPVyFC7WL2Lp", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "Cq5X6iKQop6R", + "value": "yTjUdsOi4CIE", "isInheritable": false, "position": 40 }, @@ -8803,11 +8803,11 @@ "position": 60 }, { - "type": "relation", - "name": "internalLink", - "value": "yTjUdsOi4CIE", + "type": "label", + "name": "iconClass", + "value": "bx bx-list-plus", "isInheritable": false, - "position": 70 + "position": 10 } ], "format": "markdown", @@ -9300,90 +9300,6 @@ "value": "bx bx-hide", "isInheritable": false, "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_globalNoteMap", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_sqlConsole", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_search", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_bulkAction", - "isInheritable": false, - "position": 200 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_backendLog", - "isInheritable": false, - "position": 210 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_userHidden", - "isInheritable": false, - "position": 220 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_lbTplRoot", - "isInheritable": false, - "position": 230 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_share", - "isInheritable": false, - "position": 240 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_lbRoot", - "isInheritable": false, - "position": 250 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_options", - "isInheritable": false, - "position": 260 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_lbMobileRoot", - "isInheritable": false, - "position": 270 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_help", - "isInheritable": false, - "position": 280 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md index cac96c46b..85f2b782b 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.md @@ -1,4 +1,4 @@ -# Branch prefix +# Branch prefix Since a single note can appear into multiple places in the Note Tree via a process called Cloning Notes, it's recommended to choose a generalized name that fits into all locations instead of something more specific to avoid confusion. In some cases this isn't possible so Trilium provides "branch prefixes", which is shown before the note name in the tree and as such provides a specific kind of context. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md index a19b597a1..84318ff0f 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.md @@ -1,4 +1,4 @@ -# Multiple selection +# Multiple selection It is possible to select multiple notes at one time. To do so, first select the note to start the selection with. Then hold Shift and click on the note to end the selection with. All the notes between the start and the end note will be selected as well. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md index 31c92c9b6..8b463e848 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.md @@ -1,4 +1,4 @@ -# Note tree contextual menu +# Note tree contextual menu
      The _note tree menu_ can be accessed by right-clicking in the Note Tree. diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md index 8c5929fdb..ae86363f4 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.md @@ -1,4 +1,4 @@ -# Recent Changes +# Recent Changes
      ## Accessing the recent changes diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index d6f2de8d2..9267e6565 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -1199,6 +1199,13 @@ "isInheritable": false, "position": 20 }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 30 + }, { "type": "label", "name": "shareAlias", @@ -1212,13 +1219,6 @@ "value": "bx bxs-tree-alt", "isInheritable": false, "position": 50 - }, - { - "type": "relation", - "name": "internalLink", - "value": "YtSN43OrfzaA", - "isInheritable": false, - "position": 60 } ], "format": "html", @@ -1269,128 +1269,128 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-menu", + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "oPVyFC7WL2Lp", + "value": "yTjUdsOi4CIE", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "yTjUdsOi4CIE", + "value": "OR8WJ7Iz9K4U", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "3seOhtN8uLIY", + "value": "KC1HB96bqqHX", "isInheritable": false, "position": 40 }, { "type": "relation", "name": "internalLink", - "value": "OR8WJ7Iz9K4U", + "value": "bwg0e8ewQMak", "isInheritable": false, "position": 50 }, { "type": "relation", "name": "internalLink", - "value": "KSZ04uQ2D1St", + "value": "IakOLONlIfGI", "isInheritable": false, "position": 60 }, { "type": "relation", "name": "internalLink", - "value": "KC1HB96bqqHX", + "value": "mHbBMPDPkVV5", "isInheritable": false, "position": 70 }, { "type": "relation", "name": "internalLink", - "value": "bwg0e8ewQMak", + "value": "eIg8jdvaoNNd", "isInheritable": false, "position": 80 }, { "type": "relation", "name": "internalLink", - "value": "IakOLONlIfGI", + "value": "ivYnonVFBxbQ", "isInheritable": false, "position": 90 }, { "type": "relation", "name": "internalLink", - "value": "r5JGHN99bVKn", + "value": "TBwsyfadTA18", "isInheritable": false, "position": 100 }, { "type": "relation", "name": "internalLink", - "value": "mHbBMPDPkVV5", + "value": "0vhv7lsOLy82", "isInheritable": false, "position": 110 }, { "type": "relation", "name": "internalLink", - "value": "eIg8jdvaoNNd", + "value": "zEY4DaJG4YT5", "isInheritable": false, "position": 120 }, { "type": "relation", "name": "internalLink", - "value": "ivYnonVFBxbQ", + "value": "aGlEvb9hyDhS", "isInheritable": false, "position": 130 }, { "type": "relation", "name": "internalLink", - "value": "TBwsyfadTA18", + "value": "wArbEsdSae6g", "isInheritable": false, "position": 140 }, { "type": "relation", "name": "internalLink", - "value": "0vhv7lsOLy82", + "value": "3seOhtN8uLIY", "isInheritable": false, "position": 150 }, { "type": "relation", "name": "internalLink", - "value": "W8vYD3Q1zjCR", + "value": "KSZ04uQ2D1St", "isInheritable": false, "position": 160 }, { "type": "relation", "name": "internalLink", - "value": "aGlEvb9hyDhS", + "value": "r5JGHN99bVKn", "isInheritable": false, "position": 170 }, { "type": "relation", "name": "internalLink", - "value": "zEY4DaJG4YT5", + "value": "W8vYD3Q1zjCR", "isInheritable": false, "position": 180 }, @@ -1402,11 +1402,11 @@ "position": 190 }, { - "type": "relation", - "name": "internalLink", - "value": "wArbEsdSae6g", + "type": "label", + "name": "iconClass", + "value": "bx bx-menu", "isInheritable": false, - "position": 200 + "position": 10 } ], "format": "html", @@ -2217,39 +2217,39 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-history", + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "xYmIYSP6wE3F", + "value": "OR8WJ7Iz9K4U", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "YtSN43OrfzaA", + "value": "9sRHySam5fXb", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "OR8WJ7Iz9K4U", + "value": "YtSN43OrfzaA", "isInheritable": false, "position": 40 }, { - "type": "relation", - "name": "internalLink", - "value": "9sRHySam5fXb", + "type": "label", + "name": "iconClass", + "value": "bx bx-history", "isInheritable": false, - "position": 50 + "position": 10 } ], "format": "html", @@ -2342,10 +2342,24 @@ { "type": "relation", "name": "internalLink", - "value": "ODY7qQn5m2FT", + "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", @@ -2359,20 +2373,6 @@ "value": "bx bx-notepad", "isInheritable": false, "position": 100 - }, - { - "type": "relation", - "name": "internalLink", - "value": "r5JGHN99bVKn", - "isInheritable": false, - "position": 110 - }, - { - "type": "relation", - "name": "internalLink", - "value": "CoFPLs3dRlXc", - "isInheritable": false, - "position": 120 } ], "format": "html", @@ -2579,9 +2579,9 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-rename", + "type": "relation", + "name": "internalLink", + "value": "IakOLONlIfGI", "isInheritable": false, "position": 10 }, @@ -2593,11 +2593,11 @@ "position": 20 }, { - "type": "relation", - "name": "internalLink", - "value": "IakOLONlIfGI", + "type": "label", + "name": "iconClass", + "value": "bx bx-rename", "isInheritable": false, - "position": 30 + "position": 10 } ], "format": "html", @@ -2803,6 +2803,13 @@ "isInheritable": false, "position": 10 }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 20 + }, { "type": "label", "name": "shareAlias", @@ -2816,13 +2823,6 @@ "value": "bx bx-sort-up", "isInheritable": false, "position": 30 - }, - { - "type": "relation", - "name": "internalLink", - "value": "oPVyFC7WL2Lp", - "isInheritable": false, - "position": 40 } ], "format": "html", @@ -8761,30 +8761,30 @@ "mime": "text/html", "attributes": [ { - "type": "label", - "name": "iconClass", - "value": "bx bx-list-plus", + "type": "relation", + "name": "internalLink", + "value": "HI6GBBIduIgv", "isInheritable": false, "position": 10 }, { "type": "relation", "name": "internalLink", - "value": "oPVyFC7WL2Lp", + "value": "Cq5X6iKQop6R", "isInheritable": false, "position": 20 }, { "type": "relation", "name": "internalLink", - "value": "HI6GBBIduIgv", + "value": "oPVyFC7WL2Lp", "isInheritable": false, "position": 30 }, { "type": "relation", "name": "internalLink", - "value": "Cq5X6iKQop6R", + "value": "yTjUdsOi4CIE", "isInheritable": false, "position": 40 }, @@ -8803,11 +8803,11 @@ "position": 60 }, { - "type": "relation", - "name": "internalLink", - "value": "yTjUdsOi4CIE", + "type": "label", + "name": "iconClass", + "value": "bx bx-list-plus", "isInheritable": false, - "position": 70 + "position": 10 } ], "format": "html", @@ -9300,90 +9300,6 @@ "value": "bx bx-hide", "isInheritable": false, "position": 20 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_globalNoteMap", - "isInheritable": false, - "position": 170 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_sqlConsole", - "isInheritable": false, - "position": 180 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_search", - "isInheritable": false, - "position": 190 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_bulkAction", - "isInheritable": false, - "position": 200 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_backendLog", - "isInheritable": false, - "position": 210 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_userHidden", - "isInheritable": false, - "position": 220 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_lbTplRoot", - "isInheritable": false, - "position": 230 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_share", - "isInheritable": false, - "position": 240 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_lbRoot", - "isInheritable": false, - "position": 250 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_options", - "isInheritable": false, - "position": 260 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_lbMobileRoot", - "isInheritable": false, - "position": 270 - }, - { - "type": "relation", - "name": "internalLink", - "value": "_help", - "isInheritable": false, - "position": 280 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html similarity index 98% rename from src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html rename to src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html index 56424e4a2..d2d43a367 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk actions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html @@ -33,7 +33,7 @@
    23. Right click in the Note Tree and - select Advanced Apply bulk actions.
    24. + select AdvancedApply bulk actions.
    25. By default, only the selected notes will be affected. To also include all the descendants of the notes, check Include descendants of the selected notes. The number of affected notes at the top of the dialog will update to reflect @@ -131,7 +131,7 @@ FNote, for example:
        -
      • NEW: ${note.title} will prefix all notes with NEW: .
      • +
      • NEW: ${note.title} will prefix all notes with NEW: .
      • ${note.dateCreatedObj.format('MM-DD:')}: ${note.title} will prefix the note titles with each note's creation date (in month-day format).
      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html index f46346f7a..2b8735e20 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html @@ -103,7 +103,6 @@ the "Note Paths" tab in the Ribbon toolbar.

      Titles of cloned notes in the tree view have an asterisk to the right to easily see that the note is also placed into some other location.

      -

       

      Deleting notes/clones

      With clones, it might not be immediately obvious how deleting works.

      If you try to delete a note, it works like this:

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html index b045ed36c..57ebfed8d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html @@ -17,7 +17,8 @@ -

      Accessing the recent changes

      + +

      Accessing the recent changes

      • For an overview of the changes across all documents, press the Date: Wed, 9 Apr 2025 15:48:03 +0300 Subject: [PATCH 42/69] feat(edit-docs): rewrite links to allow navigation in help --- electron-docs-main.ts | 50 +++++++++++++++++++++++++++++++++++++- src/services/export/zip.ts | 24 ++++++++++++++---- 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/electron-docs-main.ts b/electron-docs-main.ts index 2646e5194..cc2af4875 100644 --- a/electron-docs-main.ts +++ b/electron-docs-main.ts @@ -9,6 +9,7 @@ import type { WriteStream } from "fs"; import debounce from "./src/public/app/services/debounce.js"; import { extractZip, initializeDatabase, startElectron } from "./electron-utils.js"; import cls from "./src/services/cls.js"; +import type { AdvancedExportOptions } from "./src/services/export/zip.js"; const NOTE_ID_USER_GUIDE = "pOsGYCXsbNQG"; const markdownPath = path.join("docs", "User Guide"); @@ -69,7 +70,54 @@ async function exportData(format: "html" | "markdown", outputPath: string) { // First export as zip. const { exportToZipFile } = (await import("./src/services/export/zip.js")).default; - await exportToZipFile(NOTE_ID_USER_GUIDE, format, zipFilePath); + + const exportOpts: AdvancedExportOptions = {}; + if (format === "html") { + exportOpts.customRewriteLinks = (originalRewriteLinks, getNoteTargetUrl) => { + return (content: string, noteMeta: NoteMeta) => { + content = content.replace(/src="[^"]*api\/images\/([a-zA-Z0-9_]+)\/[^"]*"/g, (match, targetNoteId) => { + const url = getNoteTargetUrl(targetNoteId, noteMeta); + + return url ? `src="${url}"` : match; + }); + + content = content.replace(/src="[^"]*api\/attachments\/([a-zA-Z0-9_]+)\/image\/[^"]*"/g, (match, targetAttachmentId) => { + const url = findAttachment(targetAttachmentId); + + return url ? `src="${url}"` : match; + }); + + content = content.replace(/href="[^"]*#root[^"]*attachmentId=([a-zA-Z0-9_]+)\/?"/g, (match, targetAttachmentId) => { + const url = findAttachment(targetAttachmentId); + + return url ? `href="${url}"` : match; + }); + + content = content.replace(/href="[^"]*#root[a-zA-Z0-9_\/]*\/([a-zA-Z0-9_]+)[^"]*"/g, (match, targetNoteId) => { + const components = match.split("/"); + components[components.length - 1] = `_help_${components[components.length - 1]}`; + return components.join("/"); + }); + + return content; + + function findAttachment(targetAttachmentId: string) { + let url; + + const attachmentMeta = (noteMeta.attachments || []).find((attMeta) => attMeta.attachmentId === targetAttachmentId); + if (attachmentMeta) { + // easy job here, because attachment will be in the same directory as the note's data file. + url = attachmentMeta.dataFileName; + } else { + console.info(`Could not find attachment meta object for attachmentId '${targetAttachmentId}'`); + } + return url; + } + }; + }; + } + + await exportToZipFile(NOTE_ID_USER_GUIDE, format, zipFilePath, exportOpts); await extractZip(zipFilePath, outputPath); } finally { if (await fsExtra.exists(zipFilePath)) { diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index 495d074f4..392b58cd2 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -23,7 +23,20 @@ import type { Response } from "express"; import { RESOURCE_DIR } from "../resource_dir.js"; import type { NoteMetaFile } from "../meta/note_meta.js"; -async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response | fs.WriteStream, setHeaders = true) { +type RewriteLinksFn = (content: string, noteMeta: NoteMeta) => string; + +export interface AdvancedExportOptions { + /** + * Provides a custom function to rewrite the links found in HTML or Markdown notes. This method is called for every note imported, if it's of the right type. + * + * @param originalRewriteLinks the original rewrite links function. Can be used to access the default behaviour without having to reimplement it. + * @param getNoteTargetUrl the method to obtain a note's target URL, used internally by `originalRewriteLinks` but can be used here as well. + * @returns a function to rewrite the links in HTML or Markdown notes. + */ + customRewriteLinks?: (originalRewriteLinks: RewriteLinksFn, getNoteTargetUrl: (targetNoteId: string, sourceMeta: NoteMeta) => string | null) => RewriteLinksFn; +} + +async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response | fs.WriteStream, setHeaders = true, zipExportOptions?: AdvancedExportOptions) { if (!["html", "markdown"].includes(format)) { throw new ValidationError(`Only 'html' and 'markdown' allowed as export format, '${format}' given`); } @@ -253,6 +266,8 @@ async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "h return url; } + const rewriteFn = (zipExportOptions?.customRewriteLinks ? zipExportOptions?.customRewriteLinks(rewriteLinks, getNoteTargetUrl) : rewriteLinks); + function rewriteLinks(content: string, noteMeta: NoteMeta): string { content = content.replace(/src="[^"]*api\/images\/([a-zA-Z0-9_]+)\/[^"]*"/g, (match, targetNoteId) => { const url = getNoteTargetUrl(targetNoteId, noteMeta); @@ -297,8 +312,7 @@ async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "h function prepareContent(title: string, content: string | Buffer, noteMeta: NoteMeta): string | Buffer { if (["html", "markdown"].includes(noteMeta?.format || "")) { content = content.toString(); - - content = rewriteLinks(content, noteMeta); + content = rewriteFn(content, noteMeta); } if (noteMeta.format === "html" && typeof content === "string") { @@ -591,7 +605,7 @@ ${markdownContent}`; taskContext.taskSucceeded(); } -async function exportToZipFile(noteId: string, format: "markdown" | "html", zipFilePath: string) { +async function exportToZipFile(noteId: string, format: "markdown" | "html", zipFilePath: string, zipExportOptions?: AdvancedExportOptions) { const fileOutputStream = fs.createWriteStream(zipFilePath); const taskContext = new TaskContext("no-progress-reporting"); @@ -601,7 +615,7 @@ async function exportToZipFile(noteId: string, format: "markdown" | "html", zipF throw new ValidationError(`Note ${noteId} not found.`); } - await exportToZip(taskContext, note.getParentBranches()[0], format, fileOutputStream, false); + await exportToZip(taskContext, note.getParentBranches()[0], format, fileOutputStream, false, zipExportOptions); log.info(`Exported '${noteId}' with format '${format}' to '${zipFilePath}'`); } From 475c3bdde839338c263e0bb506047eac36e18d8f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 9 Apr 2025 15:57:19 +0300 Subject: [PATCH 43/69] chore(docs): add rewritten links for navigation (closes #1643) --- .../Advanced Usage/Advanced Showcases.html | 14 +-- .../Advanced Showcases/Day Notes.html | 10 +-- .../Advanced Showcases/Task Manager.html | 29 +++--- .../Advanced Showcases/Weight Tracker.html | 16 ++-- .../User Guide/Advanced Usage/Attributes.html | 14 +-- .../Attributes/Attribute Inheritance.html | 10 +-- .../Advanced Usage/Attributes/Labels.html | 86 +++++++++--------- .../Attributes/Promoted Attributes.html | 4 +- .../Advanced Usage/Attributes/Relations.html | 26 +++--- .../Advanced Usage/Bulk Actions.html | 26 +++--- .../Trilium instance.html | 8 +- .../Custom Request Handler.html | 10 +-- .../User Guide/Advanced Usage/Database.html | 14 +-- .../Advanced Usage/Database/Demo Notes.html | 10 +-- .../Manually altering the database.html | 4 +- .../SQL Console.html | 4 +- .../Advanced Usage/Default Note Title.html | 6 +- .../Advanced Usage/Hidden Notes.html | 90 +++++++++---------- .../User Guide/Advanced Usage/Note ID.html | 2 +- .../Note Map (Link map, Tree map).html | 8 +- .../Advanced Usage/Note source.html | 39 ++++---- .../User Guide/Advanced Usage/Sharing.html | 18 ++-- .../Advanced Usage/Technologies used.html | 2 +- .../Technologies used/CKEditor.html | 2 +- .../Technologies used/Excalidraw.html | 4 +- .../Technologies used/Leaflet.html | 2 +- .../Technologies used/MindElixir.html | 2 +- .../User Guide/Advanced Usage/Templates.html | 20 ++--- .../Import & Export/Markdown.html | 2 +- .../Keyboard Shortcuts.html | 24 ++--- .../Navigation/Jump to Note.html | 2 +- .../Navigation/Note Hoisting.html | 7 +- .../Navigation/Note Navigation.html | 2 +- .../Navigation/Quick search.html | 14 +-- .../Navigation/Search.html | 10 +-- .../Navigation/Similar Notes.html | 2 +- .../Navigation/Tree Concepts.html | 4 +- .../Navigation/Workspaces.html | 6 +- .../Basic Concepts and Features/Notes.html | 20 ++--- .../Notes/Archived Notes.html | 6 +- .../Notes/Attachments.html | 20 ++--- .../Notes/Cloning Notes.html | 2 +- .../Notes/Cloning Notes/Branch prefix.html | 8 +- .../Notes/Export as PDF.html | 8 +- .../Notes/Note List.html | 18 ++-- .../Notes/Note Revisions.html | 2 +- .../Notes/Protected Notes.html | 8 +- .../Notes/Read-Only Notes.html | 21 +++-- .../Notes/Sorting Notes.html | 8 +- .../Basic Concepts and Features/Themes.html | 14 +-- .../UI Elements/Floating buttons.html | 12 +-- .../UI Elements/Global menu.html | 2 +- .../UI Elements/Launch Bar.html | 20 ++--- .../UI Elements/Note Tree.html | 8 +- .../Note Tree/Multiple selection.html | 2 +- .../Note Tree/Note tree contextual menu.html | 65 +++++++------- .../UI Elements/Note buttons.html | 10 +-- .../UI Elements/Options.html | 13 +-- .../UI Elements/Recent Changes.html | 12 +-- .../UI Elements/Ribbon.html | 53 ++++++----- .../UI Elements/Right Sidebar.html | 8 +- .../UI Elements/Split View.html | 10 +-- .../UI Elements/Tabs.html | 12 +-- .../Vertical and horizontal layout.html | 30 +++---- .../en/User Guide/User Guide/FAQ.html | 29 +++--- .../Installation & Setup/Backup.html | 20 ++--- .../Installation & Setup/Data directory.html | 6 +- .../Desktop Installation.html | 6 +- .../Installation & Setup/Mobile Frontend.html | 10 +-- .../Server Installation.html | 28 +++--- .../Docker Server Installation.html | 4 +- .../Manual server installation.html | 2 +- .../Packaged server installation.html | 6 +- .../TLS Configuration.html | 6 +- .../Installation & Setup/Synchronization.html | 6 +- .../Upgrading TriliumNext.html | 10 +-- .../Installation & Setup/Web Clipper.html | 6 +- .../en/User Guide/User Guide/Note Types.html | 48 +++++----- .../User Guide/Note Types/Book.html | 6 +- .../User Guide/Note Types/Code.html | 27 +++--- .../User Guide/Note Types/File.html | 32 +++---- .../User Guide/Note Types/Geo Map.html | 2 +- .../Note Types/Mermaid Diagrams.html | 7 +- .../User Guide/Note Types/Mind Map.html | 6 +- .../User Guide/Note Types/Note Map.html | 2 +- .../User Guide/Note Types/Relation Map.html | 19 ++-- .../User Guide/Note Types/Render Note.html | 22 ++--- .../User Guide/Note Types/Saved Search.html | 4 +- .../User Guide/Note Types/Text.html | 8 +- .../Text/Developer-specific formatting.html | 9 +- .../Code blocks.html | 14 +-- .../Note Types/Text/Formatting toolbar.html | 4 +- .../Note Types/Text/Highlights list.html | 10 +-- .../User Guide/Note Types/Text/Images.html | 10 +-- .../Text/Images/Image references.html | 14 +-- .../Note Types/Text/Include Note.html | 2 +- .../User Guide/Note Types/Text/Links.html | 2 +- .../Note Types/Text/Table of contents.html | 8 +- .../User Guide/Note Types/Web View.html | 2 +- .../en/User Guide/User Guide/Quick Start.html | 14 +-- .../en/User Guide/User Guide/Scripting.html | 16 ++-- .../Custom Widgets/Widget Basics.html | 10 +-- .../Custom Widgets/Word count widget.html | 6 +- .../User Guide/Scripting/Events.html | 10 +-- .../Examples/New Task launcher button.html | 28 +++--- .../User Guide/Scripting/Frontend Basics.html | 10 +-- .../Creating a custom theme.html | 2 +- .../Theme development/Reference.html | 2 +- .../User Guide/Troubleshooting.html | 19 ++-- .../Troubleshooting/Anonymized Database.html | 12 +-- .../Troubleshooting/Error logs.html | 6 +- .../Synchronization fails with 504.html | 2 +- 112 files changed, 734 insertions(+), 745 deletions(-) diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html index 6069a6f40..3dc7a92ca 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases.html @@ -13,18 +13,18 @@

        Advanced Showcases

        -

        Trilium offers advanced functionality through Scripts and +

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

        + href="#root/_help_OFXdgB2nNk1F">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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html index f9b3cbf2e..935e6d0d7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Day Notes.html @@ -27,7 +27,7 @@

        -

        This pattern works well also because of Cloning Notes functionality +

        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

        @@ -38,11 +38,11 @@ - there's a note for the whole year 2017, under it, you have "12 - December" which then contains "18 - 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.

        + 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.

        Templates

        -

        Trilium provides template functionality, +

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

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html index cccd12df6..d74071e5e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Task Manager.html @@ -13,9 +13,9 @@

        Task Manager

        -

        Task Manager is a promoted attributes and +

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

        + href="#root/_help_CdNpE2pqjmI6">scriptsshowcase present in the demo notes.

        Demo

        @@ -24,23 +24,22 @@ 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 +

        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) + href="#root/_help_zEY4DaJG4YT5">relation(see attribute inheritance) pointing to the task template.

        Attributes

        -

        Task template defines several promoted 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.

        + - 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({
        @@ -64,7 +63,7 @@
                 

        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 +

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

        span.fancytree-node.todo .fancytree-title {
             color: red !important;
         }
        @@ -72,9 +71,9 @@
         span.fancytree-node.done .fancytree-title {
             color: green !important;
         }
        -

        This code note has #appCss +

        This code note has #appCss labelwhich is recognized by Trilium on startup and loaded as CSS into + href="#root/_help_zEY4DaJG4YT5">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" diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html index 77557868b..2093984ba 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Advanced Showcases/Weight Tracker.html @@ -16,19 +16,19 @@

        -

        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 +

        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 + a placeholder where a script can render its output.

        -

        Scripts for Render Notes are defined in a relation called ~renderNote. +

        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 + 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 @@ -36,7 +36,7 @@ href="https://www.chartjs.org/">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 +

        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');
        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html
        index a52792cbb..21f01f1f2 100644
        --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html	
        +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes.html	
        @@ -21,26 +21,26 @@
                   additional metadata or functionality. There are two primary types of attributes:

        1. -

          Labels can +

          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.

          + href="#root/_help_HI6GBBIduIgv">Labels.

        2. -

          Relations define +

          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.

          + class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations.

        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, + 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.

        @@ -52,11 +52,11 @@

        Attribute Definitions and Promoted Attributes

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

        + href="#root/_help_OFXdgB2nNk1F">Promoted Attributes.

        Attribute Inheritance

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

        + href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html index 043bcf0d0..f103a2b8f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Attribute Inheritance.html @@ -13,9 +13,9 @@

        Attribute Inheritance

        -

        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).

        +

        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 @@ -23,7 +23,7 @@ descendants.

        To make an attribute inheritable, simply use the visual editor for  Labels or Relations. + class="reference-link" href="#root/_help_HI6GBBIduIgv">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, @@ -59,7 +59,7 @@ 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. +

        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.

        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html index 87c801fe6..2b5656b90 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Labels.html @@ -13,24 +13,24 @@

        Labels

        -

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

        +

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

        Common use cases

        • Metadata for personal use: Assign labels with optional values for categorization, such as #year=1999, #genre="sci-fi", or #author="Neal Stephenson". This can be combined with  Promoted Attributes to make their display more user-friendly.
        • + class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes to make their display more user-friendly.
        • Configuration: Labels can configure advanced features or settings (see reference below).
        • Scripts and Plugins: Used to tag notes with special metadata, - such as the "weight" attribute in the Weight Tracker.
        • + such as the "weight" attribute in the Weight Tracker.

        Creating a label using the visual editor

        1. Go to the Owned Attributes section in the Ribbon.
        2. + href="#root/_help_BlN9DFI679QC">Ribbon.
        3. Press the + button (Add new attribute) to the right.
        4. Select Add new label for the relation.
        @@ -44,12 +44,12 @@
      • Set the desired name
      • Optionally, set the value of the label. Labels can exist without a value.
      • Check Inheritable if the label should be inherited by the child - notes as well. See Attribute Inheritance for + notes as well. See Attribute Inheritance for more information.

      Creating a label manually

      In the Owned Attributes section in the Ribbon:

      + href="#root/_help_BlN9DFI679QC">Ribbon:

      • To create a label called myLabel with no value, simply type #myLabel.
      • To create a label called myLabel with a value value, @@ -83,28 +83,28 @@ disableVersioning - Disables automatic creation of Note Revisions for + 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 + 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. + href="#root/_help_l0tKav7yLHGF">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. + optionally be hidden in the Note Tree. excludeFromExport @@ -114,7 +114,7 @@ run, runOnInstance, runAtHour - See Events. + See Events. disableInclusion @@ -157,20 +157,20 @@ hidePromotedAttributes - Hide Promoted Attributes on + 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, + 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 + Disables automatic read-only mode for the given note. @@ -178,14 +178,13 @@ 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. + href="#root/_help_AlhDUqhENtH7">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 + Trilium options. See Theme development for more information. @@ -194,14 +193,14 @@ 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. + href="#root/_help_WFGzWeUK6arS">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. + given note in the Note Tree. This can be useful for advanced theming. Can be used in template notes. @@ -215,23 +214,23 @@ pageSize Specifies the number of items per page in Note List. + href="#root/_help_0ESUbbAxVnoK">Note List. customRequestHandler - See Custom Request Handler. + See Custom Request Handler. customResourceProvider - See Custom Resource Providers. + 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 + component tree. See Custom Widgets for more information. @@ -239,11 +238,11 @@ New search notes will be created as children of this note (see  Saved Search). + class="reference-link" href="#root/_help_m523cpzocqaD">Saved Search). workspace and related attributes - See Workspaces. + See Workspaces. inbox @@ -255,31 +254,31 @@ sqlConsoleHome - Default location of SQL Console notes + Default location of SQL Console notes bookmarked - Indicates this note is a bookmark. + 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 + to its children). See Bookmarks for more information. share* - See the attribute reference in Sharing. + 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 + a Relation Map (both + the note type and the Note Map (Link map, Tree map) general functionality). @@ -297,7 +296,7 @@
      • to mirror the parent's template.
      -

      See Default Note Title for +

      See Default Note Title for more info.

      @@ -305,13 +304,13 @@ template This note will appear in the selection of available template when creating - new note. See Templates for + new note. See Templates for more information. toc - Controls the display of the Table of contents for + 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. @@ -349,7 +348,7 @@ excludeFromNoteMap Notes with this label will be hidden from the Note Map. + href="#root/_help_bdUJEHsAPYQR">Note Map. newNotesOnTop @@ -359,12 +358,12 @@ hideHighlightWidget - Hides the Highlights list widget + Hides the Highlights list widget hideChildrenOverview - Hides the Note List for + Hides the Note List for that particular note. @@ -383,19 +382,18 @@ Indicates the latitude and longitude of a note, to be displayed in a  Geo Map. + class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map. calendar:* - Defines specific options for the Calendar View. + 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. + href="#root/_help_0ESUbbAxVnoK">Note List for more information. diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html index e44de65a9..81450f2ff 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Promoted Attributes.html @@ -13,7 +13,7 @@

      Promoted Attributes

      -

      Promoted attributes are attributes which +

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

      @@ -37,7 +37,7 @@

      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, + 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.

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html index bfb1d8d1c..c80064712 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Attributes/Relations.html @@ -13,26 +13,26 @@

      Relations

      -

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

      +

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

      Common use cases

      • Metadata Relationships for personal use: For example, linking a book note to an author note. -
        This can be combined with Promoted Attributes to +
        This can be combined with Promoted Attributes to make their display more user-friendly.
      • Configuration: For configuring some notes such as  Render Note, or configuring Sharing or  + class="reference-link" href="#root/_help_HcABDtFCkbFN">Render Note, or configuring Sharing or  Templates (see the list below).
      • + class="reference-link" href="#root/_help_KC1HB96bqqHX">Templates (see the list below).
      • Scripting: Attaching scripts to events or conditions related to the note.

      Creating a relation using the visual editor

      1. Go to the Owned Attributes section in the Ribbon.
      2. + href="#root/_help_BlN9DFI679QC">Ribbon.
      3. Press the + button (Add new attribute) to the right.
      4. Select Add new relation for the relation.
      @@ -47,12 +47,12 @@
    26. Set the Target note (the note to point to). Unlike labels, relations cannot exist with a target note.
    27. Check Inheritable if the label should be inherited by the child - notes as well. See Attribute Inheritance for + notes as well. See Attribute Inheritance for more information.
    28. Creating a relation manually

      In the Owned Attributes section in the Ribbon:

      + href="#root/_help_BlN9DFI679QC">Ribbon:

      • To create a relation called myRelation:
          @@ -60,7 +60,7 @@
        • After this, an autocompletion box should appear.
        • Type the title of the note to point to and press Enter to confirm (or click the desired note).
        • -
        • Alternatively copy a note from the Note Tree and +
        • Alternatively copy a note from the Note Tree and paste it after the = sign (without the @ , in this case).
        @@ -92,7 +92,7 @@ runOn* - See Events + See Events @@ -106,14 +106,14 @@ inherit note's attributes will be inherited even without a parent-child relationship. - See Templates for - a similar concept. See Attribute Inheritance in + See Templates for + a similar concept. See Attribute Inheritance in the documentation. renderNote - notes of type Render Note will + 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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html index d2d43a367..3f354ef4a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Bulk Actions.html @@ -23,16 +23,16 @@

        Interaction

        • The first step is to select the notes in the Note Tree. - It's possible to apply bulk actions to: + href="#root/_help_oPVyFC7WL2Lp">Note Tree. It's possible to apply bulk + actions to:
          • A single note (and potentially its child notes) simply by clicking on it (with a left click or a right click).
          • -
          • Multiple notes. See Multiple selection on +
          • Multiple notes. See Multiple selection on how to do so.
        • -
        • Right click in the Note Tree and +
        • Right click in the Note Tree and select AdvancedApply bulk actions.
        • By default, only the selected notes will be affected. To also include all the descendants of the notes, check Include descendants of the selected notes. @@ -55,12 +55,12 @@

        Actions

        Labels

        -

        These actions operate the Labels of +

        These actions operate the Labels of a note:

        • Add label
            -
          • For each note, if it doesn't already have a label of +
          • For each note, if it doesn't already have a label of the given name, it will create it. Keep the New value field empty to create a label without a value, or complete it to assign a value.
          • If a note already has this label, its value will be updated.
          • @@ -68,7 +68,7 @@
          • Update label value
              -
            • For each note, if it has a label of +
            • For each note, if it has a label of the given name, it will change its value to the specified one. Leave New value field empty to create a label without a value.
            • Notes without the label will not be affected.
            • @@ -76,7 +76,7 @@
            • Rename label
                -
              • For each note, if it has a label of +
              • For each note, if it has a label of the given name, it will be renamed/replaced with a label of the new name. The value of the label (if present) will be kept intact.
              • Notes without the label will not be affected.
              • @@ -91,7 +91,7 @@

              Relations

              -

              These actions operate the Relations of +

              These actions operate the Relations of a note:

              • Add relation @@ -129,7 +129,7 @@
              • As a more advanced use case, the note can be a “template string” which allows for dynamic values with access to the note information via  FNote, for example: + class="reference-link" href="#root/_help_habiZ3HU8Kw8">FNote, for example:
                • NEW: ${note.title} will prefix all notes with NEW: .
                • ${note.dateCreatedObj.format('MM-DD:')}: ${note.title} will @@ -142,7 +142,7 @@
                  • For each note, it will be moved to the specified parent note.
                  • As an alternative for less complex situations, the notes can be moved - directly from within the Note Tree via + directly from within the Note Tree via cut → paste or via the contextual menu.
                • @@ -150,13 +150,13 @@
                  • For each note, it will be deleted.
                  • As an alternative for less complex situations, the notes can be removed - directly from within the Note Tree by + directly from within the Note Tree by selecting them and pressing Delete.
                • Delete note revisions
                • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html index 6e447278e..6d35bddce 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Configuration (config.ini or environment variables)/Trilium instance.html @@ -14,10 +14,10 @@

                  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.

                  + href="#root/_help_cbkrhQjrkKrh">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
                  diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html index 1c3bce6b6..c825d72da 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Custom Request Handler.html @@ -13,14 +13,14 @@

                  Custom Request Handler

                  -

                  Trilium provides a mechanism for scripts to +

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

                  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') {
                  @@ -55,7 +55,7 @@ Content-Type: application/json
                   }+++++++++++++++++++++++++++++++++++++++++++++++

                  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. + 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 @@ -68,12 +68,12 @@ Content-Type: application/json and you need to take care of this yourself.

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

                  + href="#root/_help_GLks18SNjxmC">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.

                  +

                  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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html index be62b8869..1abcd2e14 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database.html @@ -16,30 +16,30 @@

                  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.

                  + 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.

                  +

                  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 +

                  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 +

                  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 + 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.

                  + the configuration file to provide + all config.ini values as environment variables instead.

                  diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html index bc15cd499..236e974bf 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Demo Notes.html @@ -16,15 +16,15 @@

                  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

                  diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html index d831e67c7..b1316d019 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database.html @@ -20,7 +20,7 @@ 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.

                  +

                  See SQL Console.

                  Externally modifying the database

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

                  @@ -32,7 +32,7 @@

                  To do so:

                  1. In the main menu, select File → Open database… and navigate to the database - in the Data directory.
                  2. + in the Data directory.
                  3. Select the Execute SQL tab.
                  4. Type in the desired SQL statement.
                  5. Press the "Play" button in the toolbar underneath the "Execute SQL" tab diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html index b46213d83..ea1a5e518 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Database/Manually altering the database/SQL Console.html @@ -14,7 +14,7 @@

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

                    -

                    It can be accessed by going to the global menu → +

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

                    @@ -42,7 +42,7 @@

                    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.

                    + button. Once saved, the note will appear in Day Notes.

                    • The SQL expression will not be displayed by default, but it can still be viewed by going to the note context menu and selecting Note source.
                    • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html index 05a4a570e..2bb827d7e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Default Note Title.html @@ -18,7 +18,7 @@ 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, + href="#root/_help_zEY4DaJG4YT5">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 @@ -43,8 +43,8 @@ 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 + the parent FNote.

                      +

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

                      Examples

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html index dcc25240f..3e72952d6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Hidden Notes.html @@ -20,19 +20,20 @@

                        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.

                        + href="#root/_help_zEY4DaJG4YT5">Attributes, Relations 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 + href="#root/_help_wX4HbRucYSDD">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, +

                        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:

                        @@ -51,51 +52,50 @@ - Note Map + Note Map -

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

                        +

                        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.

                        + can be linked to from other notes or bookmarked.

                        - SQL Console History + 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.

                        + href="#root/_help_YKWqdJhzi2VY">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 + 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 + 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.

                        + href="#root/_help_eIg8jdvaoNNd">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 + 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 + Bulk Action -

                        This section is used for Bulk Actions. +

                        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 @@ -103,80 +103,80 @@ - Backend Log + Backend Log

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

                        + href="#root/_help_qzNzp9LYQyPT">Error logs).

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

                        - User Hidden + 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 + 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 + 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.

                        + class="reference-link" href="#root/_help_xYmIYSP6wE3F">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 + Shared Notes -

                        This tree lists all of the notes that are shared publicly. +

                        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 + going to the Global menu and selecting Show Shared Notes Subtree.

                        Sub-notes cannot be created here.

                        - Launch Bar + Launch Bar

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

                        + href="#root/_help_xYmIYSP6wE3F">Launch Bar.

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

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

                        Sub-notes cannot be created here.

                        - Options + Options -

                        This section stores the list of 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 +
                        • Going to the Global menu and selecting Options.
                        • Pressing the dedicated Options icon in the Launch Bar.
                        • + href="#root/_help_xYmIYSP6wE3F">Launch Bar.
                        - Mobile Launch Bar + Mobile Launch Bar

                        This is very similar to the Launch Bar, but is dedicated for the @@ -186,7 +186,7 @@ - User Guide + 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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html index b3a926fea..7c980c19a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note ID.html @@ -22,7 +22,7 @@

                        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.

                        + import/export process such as Attachments.

                        Note collisions

                        Since the Note ID is a fixed-width randomly generated number, due to the Note Map, which shows the hierarchical tree structure.

                      Link Map

                      -

                      Shows relations between notes:

                      +

                      Shows relations between notes:

                      @@ -33,11 +33,11 @@

                      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 + in full screen. See Note Map for more information.

                      See also

                      -

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

                      +

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

                      • note map is automatically generated while relation map must be created manually
                      • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html index 493f48c2f..85c1bd410 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Note source.html @@ -15,48 +15,47 @@

                        Understanding the source code of the different notes

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

                        + on the Note Types.

                        For example:

                          -
                        • Text notes are +
                        • Text notes are represented internally as HTML, using the CKEditor representation. - Note that due to the custom plugins, some HTML elements are specific to - Trilium only, for example the admonitions.
                        • -
                        • Code notes are + href="#root/_help_MI26XDLSAlCD">CKEditor representation. Note + that due to the custom plugins, some HTML elements are specific to Trilium + only, for example the admonitions.
                        • +
                        • Code notes are plain text and are represented internally as-is.
                        • -
                        • Geo Map notes +
                        • Geo Map notes contain only minimal information (viewport, zoom) as a JSON.
                        • -
                        • Canvas notes +
                        • Canvas notes are represented as JSON, with Trilium's own information alongside with  Excalidraw's internal JSON representation format.
                        • -
                        • Mind Map notes + class="reference-link" href="#root/_help_H0mM1lTxF9JI">Excalidraw's internal JSON representation format.
                        • +
                        • Mind Map notes are represented as JSON, with the internal format of MindElixir.
                        • + href="#root/_help_N4IDkixaDG9C">MindElixir.

                        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.

                        + href="#root/_help_0vhv7lsOLy82">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="../Note%20Types.html">
                        +	<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 + menu in Note buttons and selecting Note source.

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html index 3486a2104..9a1dc9135 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html @@ -18,8 +18,8 @@ from your Trilium notes, making it accessible to others online.

                        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.

                        + href="#root/_help_WOcw2SLH6tbX">Server Installation of Trilium. + This is necessary because the notes will be hosted from the server.

                        How to Share a Note

                        1. @@ -59,21 +59,21 @@

                          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.

                          + To protect an entire subtree, make sure the label is inheritable.

                          Advanced Sharing Options

                          Customizing the Appearance of Shared Notes

                          The default shared page is basic in design, but you can customize it using your own CSS:

                          • Custom CSS: Link a CSS Code note to the shared page - by adding a ~shareCss relation to the note. If you want this - style to apply to the entire subtree, make the label inheritable. You can - hide the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
                          • + href="#root/_help_6f9hih2hXXZk">Code note to the shared page by + adding a ~shareCss relation to the note. If you want this style + to apply to the entire subtree, make the label inheritable. You can hide + the CSS code note from the tree navigation by adding the #shareHiddenFromTree label.
                          • Omitting Default CSS: For extensive styling changes, use the #shareOmitDefaultCss label to avoid conflicts with Trilium's default stylesheet.
                          • + href="#root/_help_Wy267RK4M69c">default stylesheet.

                          Adding JavaScript

                          You can inject custom JavaScript into the shared note using the ~shareJs relation. @@ -175,7 +175,7 @@ for (const attr of parentNote.attributes) { Note will be served in its raw format, without HTML wrapper. See also  Serving directly the content of a note for an alternative method + class="reference-link" href="#root/_help_Qjt68inQ2bRj">Serving directly the content of a note for an alternative method without setting an attribute. diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html index 6c582ad34..4b8226d47 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used.html @@ -15,7 +15,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 + href="#root/_help_KSZ04uQ2D1St">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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html index 5415ff3ae..10b249a16 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/CKEditor.html @@ -15,7 +15,7 @@

                          Editor core

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

                          + 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, diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html index cf06c53a5..f416dcb34 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Excalidraw.html @@ -14,8 +14,8 @@

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

                          + 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.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html index ee1258c1d..3d8fe8bac 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/Leaflet.html @@ -13,7 +13,7 @@

                          Leaflet

                          -

                          Leaflet is the library behind Geo map notes.

                          +

                          Leaflet is the library behind Geo map notes.

                          Plugins

                          Leaflet is also highly customizable via external plugins.

                          Currently we use:

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html index b11d97c6c..d3281f871 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Technologies used/MindElixir.html @@ -13,7 +13,7 @@

                          MindElixir

                          -

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

                          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.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html index 49062292e..cc29ee7b2 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Advanced Usage/Templates.html @@ -18,10 +18,10 @@ 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. + 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.
                          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. @@ -32,7 +32,7 @@

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

                            • Promoted Attributes: Such as publication year, author, - etc. (see promoted attributes).
                            • + etc. (see promoted attributes).
                            • Outline: An outline for a book review, including sections like themes, conclusion, etc.
                            • Child Notes: Additional notes for highlights, summary, @@ -51,7 +51,7 @@

                              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, + 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 @@ -60,11 +60,11 @@

                              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, +

                              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 + href="#root/_help_xYjQUYhpbUEW">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.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html index 22d071fdf..4d635ebe0 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export/Markdown.html @@ -66,7 +66,7 @@
                        2. 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.
                        3. -
                        4. Admonitions are +
                        5. Admonitions are supported using GitHub's format.
                        6. Links are supported. “Reference links” (internal links that mirror a note's title and display its icon) are embedded as HTML in order to preserve the diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html index 0a05c3540..ef62868b3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Keyboard Shortcuts.html @@ -28,7 +28,7 @@
                        7. , - collapse/expand node
                        8. Alt + , Alt + - go back / forwards in the history
                        9. -
                        10. Ctrl + J - show "Jump to" dialog +
                        11. Ctrl + J - show "Jump to" dialog
                        12. Ctrl + . - scroll to current note (useful when you scroll away from your note or your focus is currently in the editor)
                        13. @@ -36,13 +36,13 @@
                        14. Alt + C - collapse whole note tree
                        15. Alt + - (alt with minus sign) - collapse subtree (if some subtree takes too much space on tree pane you can collapse it)
                        16. -
                        17. you can define a label #keyboardShortcut with +
                        18. you can define a label #keyboardShortcut with e.g. value Ctrl + I . Pressing this keyboard combination will then bring you to the note on which it is defined. Note that Trilium must be reloaded/restarted (Ctrl + R ) for changes to be in effect.
                      -

                      See demo of some of these features in note navigation.

                      +

                      See demo of some of these features in note navigation.

                      Tabs

                      • Ctrl + 🖱 Left click - (or middle mouse click) on note @@ -59,8 +59,8 @@
                        • CTRL+O - creates new note after the current note
                        • CTRL+P - creates new sub-note into current note
                        • -
                        • F2 - edit prefix of - current note clone
                        • +
                        • F2 - edit prefix of current + note clone

                        Moving / cloning notes

                          @@ -75,7 +75,7 @@
                        • Shift+🖱 Left click - multi select note which you clicked on
                        • Ctrl+C - copies current note (or current selection) - into clipboard (used for cloning + into clipboard (used for cloning
                        • Ctrl+X - cuts current (or current selection) note into clipboard (used for moving notes)
                        • @@ -85,8 +85,8 @@
                        • Del - delete note / sub-tree

                        Editing notes

                        -

                        Trilium uses CKEditor 5 for the text notes and - CodeMirror 5 for code notes. Check +

                        Trilium uses CKEditor 5 for the text notes and + CodeMirror 5 for code notes. Check the documentation of these projects to see all their built-in keyboard shortcuts.

                          @@ -97,9 +97,9 @@
                        • Enter in tree pane switches from tree pane into note title. Enter from note title switches focus to text editor. Ctrl+. switches back from editor to tree pane.
                        • -
                        • Ctrl+K - create / edit external link +
                        • Ctrl+K - create / edit external link
                        • -
                        • Ctrl+L - create internal (note) link +
                        • Ctrl+L - create internal (note) link
                        • Alt+T - inserts current date and time at caret position
                        • Ctrl+. - jump away from the editor to tree pane and @@ -122,9 +122,9 @@
                        • Alt+M - distraction-free mode - display only note editor, everything else is hidden
                        • F11 - toggle full screen
                        • -
                        • Ctrl + S - toggle search form +
                        • Ctrl + S - toggle search form in tree pane
                        • -
                        • Alt +A - show note attributes dialog
                        • +
                        • Alt +A - show note attributes dialog
                    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html index 48eaaa916..af72ea565 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Jump to Note.html @@ -22,7 +22,7 @@ a full search or create notes.

                    Entering jump to note

                      -
                    • In the Launch Bar, +
                    • In the Launch Bar, press button.
                    • Using the keyboard, press Ctrl + J.
                    • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html index cad1ec4a3..96f254b8b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Hoisting.html @@ -20,9 +20,10 @@

                      In addition to showing only this subtree, this also narrows both full - text search and “jump to note” to just - notes present in hoisted subtree.

                      -

                      See also Workspace which extends this feature.

                      + text search and “jump to note” to + just notes present in hoisted subtree.

                      +

                      See also Workspace which extends + this feature.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html index d7755002e..4c2d1f72e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Note Navigation.html @@ -27,7 +27,7 @@

                      This is useful to quickly find and view arbitrary notes - click on Jump to button on the top or press Ctrl + J . Then type part of the note name and autocomplete will help you pick the desired note.

                      -

                      See Jump to Note for +

                      See Jump to Note for more information.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html index 143daa0e7..02ac325dd 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Quick search.html @@ -21,20 +21,20 @@ searches through the content of notes and not just the title of a note) and displays the result in an easy-to-access manner.

                      The alternative to the quick search is the Search function, which opens in a dedicated - tab and has support for advanced queries.

                      + href="#root/_help_eIg8jdvaoNNd">Search function, which opens in + a dedicated tab and has support for advanced queries.

                      For even faster navigation, it's possible to use Jump to Note which will only search + href="#root/_help_F1r9QtzQLZqm">Jump to Note which will only search through the note titles instead of the content.

                      Layout

                      -

                      Based on the Vertical and horizontal layout, +

                      Based on the Vertical and horizontal layout, the quick search is placed:

                      • On the vertical layout, it is displayed right above the Note Tree.
                      • + href="#root/_help_oPVyFC7WL2Lp">Note Tree.
                      • On the horizontal layout, it is displayed in the Launch Bar, where it can - be positioned just like any other icon.
                      • + href="#root/_help_xYmIYSP6wE3F">Launch Bar, where it can be positioned + just like any other icon.
                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html index 81c7e98e7..b0cfa115d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html @@ -20,12 +20,12 @@ In the desktop (electron) version, a separate dialog will apear.

                      Note Search

                      Note search enables you to find notes by searching for text in the title, - content, or attributes of - the notes. You also have the option to save your searches, which will create - a special search note which is visible on your navigation tree and contains - the search results as sub-items.

                      + content, or attributes of the notes. + You also have the option to save your searches, which will create a special + search note which is visible on your navigation tree and contains the search + results as sub-items.

                      To search for notes, click on the magnifying glass icon on the toolbar - or press the Ctrl + S keyboard shortcut.

                      + or press the Ctrl + S keyboard shortcut.

                      Simple Note Search Examples

                      • rings tolkien: Full-text search to find notes containing diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html index 1ebb12eea..42f4f5033 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Similar Notes.html @@ -21,7 +21,7 @@ note by looking at the content of the notes, their relationships, as well as the date they were created.

                        To access the list of similar notes, press the “Similar Notes” tab in - the Ribbon.

                        + the Ribbon.

                        Interaction

                        • Hover over a note to see a short preview of the note.
                        • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html index a7c2886a3..0e87256b5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Tree Concepts.html @@ -16,7 +16,7 @@

                          This page explains the basic concepts related to the tree structure of notes in TriliumNext.

                          Note

                          -

                          A note is the central entity in TriliumNext. For more details, see Note.

                          +

                          A note is the central entity in TriliumNext. For more details, see Note.

                          Branch

                          A branch describes the placement of a note within the note tree. Essentially, it is a tuple of parentNoteId and noteId, indicating @@ -24,7 +24,7 @@

                          Each note can have multiple branches, meaning any note can be placed in multiple locations within the tree. This concept is referred to as " cloning."

                          + href="#root/_help_IakOLONlIfGI">cloning."

                          Prefix

                          A prefix is a branch-specific title modifier for a note. If you place your note in two different locations within the tree and want to alter diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html index ba02c1a86..4dd0e9316 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Workspaces.html @@ -13,7 +13,7 @@

                          Workspaces

                          -

                          Workspace is a concept built up on top of note hoisting. +

                          Workspace is a concept built up on top of note hoisting. It is based on the idea that a user has several distinct spheres of interest. An example might be "Personal" and "Work", these two spheres are quite distinct and don't interact together. When I focus on Work, I don't really @@ -21,7 +21,7 @@

                          So far workspace consists of these features:

                          • -

                            note hoisting - you can "zoom" into +

                            note hoisting - you can "zoom" into a workspace subtree to focus only on the relevant notes

                          • @@ -69,7 +69,7 @@ workspaceCalendarRoot Marking a note with this label will define a new per-workspace calendar - for Day Notes. + for Day Notes. If there's no such note, the global calendar will be used. diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html index 30bbda0d1..120195603 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes.html @@ -17,14 +17,14 @@ and content.

                            Note types

                            The main note type is a rich-text note type called Text. For diagrams and drawing there - is Canvas and  + href="#root/_help_iPIMuisry3hd">Text. For diagrams and drawing there + is Canvas and  Mermaid Diagrams.

                            + class="reference-link" href="#root/_help_s1aBHPd79XYj">Mermaid Diagrams.

                            There are also more complex note types such as Saved SearchRender Note that usually - go hand-in-hand with Scripting.

                            + href="#root/_help_m523cpzocqaD">Saved Search, Render Note that usually go hand-in-hand + with Scripting.

                            In Trilium there's no specific "folder" note type. Any note can have children and thus be a folder.

                            Root note

                            @@ -32,7 +32,7 @@ tree. All other notes are placed below it in the structure.

                            Tree structure

                            Importantly, note itself doesn't carry information on its placement in - note tree. See Cloning Notes for + note tree. See Cloning Notes for details.

                            Tree structure of notes can resemble file system - but compared to that notes in Trilium can act as both file and directory - meaning that note @@ -43,7 +43,7 @@ (soft-delete) - the actual content, title, attributes etc. are not deleted, only hidden.

                            Within (by default) 7 days, it is possible to undelete these soft-deleted - notes - open the Recent Changes dialog, + notes - open the Recent Changes dialog, and you will see a list of all modified notes including the deleted ones. Notes available for undeletion have a link to do so. This is kind of "trash can" functionality known from e.g. Windows.

                            @@ -57,10 +57,10 @@

                            After the 7 days (configurable) the notes will be "erased" - their title, content, revisions and attributes will be erased, and it will not be possible anymore to recover them (unless you restore a Backup).

                            + href="#root/_help_ODY7qQn5m2FT">Backup).

                            See also

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html index a17d35816..e8a34d6ea 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Archived Notes.html @@ -13,10 +13,10 @@

                          Archived Notes

                          -

                          Archived notes are notes which have archived attribute - - either directly or inherited.

                          +

                          Archived notes are notes which have archived attribute - + either directly or inherited.

                          Such notes are then by default not shown in the autocomplete and in the - full text search.

                          + full text search.

                          This can be useful for notes which are no longer very useful but still valuable enough to keep around without them getting too much in the way.

                          You can control whether archived notes are displayed in the note tree diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html index 59de51c1c..277fd6326 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Attachments.html @@ -13,11 +13,11 @@

                          Attachments

                          -

                          A note in Trilium can own one or more - attachments, which can be either images or files. These attachments can - be displayed or linked within the note that owns them.

                          -

                          This can be especially useful to include dependencies for your scripts. - The Weight Tracker shows +

                          A note in Trilium can own one + or more attachments, which can be either images or files. These attachments + can be displayed or linked within the note that owns them.

                          +

                          This can be especially useful to include dependencies for your scripts. + The Weight Tracker shows how to use chartjs which is attached to the script note.

                          Each note exclusively owns its attachments, meaning attachments cannot @@ -29,19 +29,19 @@ text of the owning note; otherwise, they will be automatically deleted after a configurable timeout period if not referenced.

                          Converting notes to attachments

                          -

                          File notes +

                          File notes can be easily converted to attachments of the parent note.

                          To do so:

                          • For a single note, press the context menu from the Note buttons and select Convert into attachment.
                          • + href="#root/_help_8YBEPzcpUgxw">Note buttons and select Convert into attachment.
                          • For multiple notes, select the given notes in the Note Tree, right click → Advanced - → Convert to attachment.
                          • + href="#root/_help_oPVyFC7WL2Lp">Note Tree, right click → Advanced → + Convert to attachment.

                          Attachment previews

                          Attachments share the same content preview for images, videos, PDFs, etc. - as the File note + as the File note type.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html index 2b8735e20..7df321b92 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes.html @@ -98,7 +98,7 @@

                          In the demo, you can see how a clone can be created using the context menu. It's possible to do this also using the Add Link dialog or with Ctrl+C and Ctrl+V keyboard shortcuts.

                          + href="#root/_help_A9Oc6YKKc65v">keyboard shortcuts.

                          As seen in the demo, you can view the list of all available clones in the "Note Paths" tab in the Ribbon toolbar.

                          Titles of cloned notes in the tree view have an asterisk to the right diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html index 34ec03533..9b67e3486 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Cloning Notes/Branch prefix.html @@ -14,10 +14,10 @@

                          Since a single note can appear into multiple places in the Note Tree via a process - called Cloning Notes, - it's recommended to choose a generalized name that fits into all locations - instead of something more specific to avoid confusion.

                          + href="#root/_help_oPVyFC7WL2Lp">Note Tree via a process called  + Cloning Notes, it's recommended to choose a generalized name that + fits into all locations instead of something more specific to avoid confusion.

                          In some cases this isn't possible so Trilium provides "branch prefixes", which is shown before the note name in the tree and as such provides a specific kind of context.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html index 41632d37b..fc4d9eb4b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Export as PDF.html @@ -37,7 +37,7 @@

                          Should you encounter any visual issues in the resulting PDF file (e.g. a table does not fit properly, there is cut off text, etc.) feel free to report the issue. In this case, it's best to offer a sample note (click + href="#root/_help_wy8So3yZZlH9">report the issue. In this case, it's best to offer a sample note (click on the button, select Export note → This note and all of its descendants → HTML in ZIP archive). Make sure not to accidentally leak any personal information.

                          @@ -45,7 +45,7 @@

                          When exporting to PDF, there are no customizable settings such as page orientation, size, etc. However, it is possible to specify a given note to be printed as a PDF in landscape mode by adding the #printLandscape attribute - to it (see Attributes).

                          + to it (see Attributes).

                          Page size

                          By default, the resulting PDF will be in Letter format. It is possible to adjust it to another page size via the #printPageSize attribute, @@ -53,8 +53,8 @@

                          Keyboard shortcut

                          It's possible to trigger the export to PDF from the keyboard by going to Keyboard shortcuts in Options and assigning a key - combination for the exportAsPdf action.

                          + href="#root/_help_4TIF1oA4VQRO">Options and assigning a key combination + for the exportAsPdf action.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html index 84d567f21..922ba55c5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note List.html @@ -19,7 +19,7 @@
                          • To hide the note list for a particular note, simply apply the hideChildrenOverview label.
                          • + href="#root/_help_zEY4DaJG4YT5">label.
                          • For some view types, such as Grid view, only a subset of notes will be displayed and pagination can be used to navigate through all of them for performance reasons. To adjust the number of notes per page, set pageSize to @@ -30,10 +30,9 @@ some other view types available.

                            Grid view

                            @@ -43,11 +42,11 @@

                            This view presents the child notes in a grid format, allowing for a more visual navigation experience.

                              -
                            • For Text notes, +
                            • For Text notes, the text can be slighly scrollable via the mouse wheel to reveal more context.
                            • -
                            • For Code notes, +
                            • For Code notes, syntax highlighting is applied.
                            • -
                            • For File notes, +
                            • For File notes, a preview is made available for audio, video and PDF notes.
                            • If the note does not have a content, a list of its child notes will be displayed instead.
                            • @@ -70,8 +69,7 @@

                              In the calendar view, child notes are represented as events, with a start date and optionally an end date. The view also has interaction support such as moving or creating new events. See Calendar View for more - information.

                              + href="#root/_help_xWbu3jpNWapp">Calendar View for more information.

                              diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html index ba2a49c18..5d3252d03 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Note Revisions.html @@ -21,7 +21,7 @@ data to store.

                              To turn off note versioning for a particular note (or subtree), add disableVersioning labelto the note.

                              + href="#root/_help_zEY4DaJG4YT5">labelto the note.

                              Note Revision Snapshots Limit

                              The limit on the number of note snapshots can be configured in the Options -> Other dialog. The note revision snapshot number limit refers to the diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html index 0a677f5f4..0e7c9eae7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Protected Notes.html @@ -21,8 +21,8 @@

                            • Encryption: Protected notes are encrypted using a key derived from your password. This ensures that without the correct password, protected notes remain indecipherable. Even if someone gains access to - your Trilium database, - they won't be able to read your encrypted notes.
                            • + your Trilium database, they won't + be able to read your encrypted notes.
                            • Time-limited access: To access protected notes, you must first enter your password, which decrypts the note for reading and writing. However, after a specified period of inactivity (10 minutes by default), @@ -63,7 +63,7 @@
                              • Note structure (i.e., it remains visible that there are protected notes)
                              • Metadata, such as the last modified date
                              • -
                              • Attributes +
                              • Attributes

                              Encryption Details

                              @@ -84,7 +84,7 @@
                              • The data encryption key is encrypted using AES-128 with a random IV.
                              • -
                              • The data encryption key is randomly generated during the database initialization +
                              • The data encryption key is randomly generated during the database initialization and remains constant throughout the document’s lifetime. When the password is changed, only this key is re-encrypted.
                              diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html index 4fed7df74..8a322b034 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Read-Only Notes.html @@ -13,9 +13,9 @@

                              Read-Only Notes

                              -

                              Some note types such as Text and  +

                              Some note types such as Text and  Code notes in Trilium can be set to read-only. When a note is + class="reference-link" href="#root/_help_6f9hih2hXXZk">Code notes in Trilium can be set to read-only. When a note is in read-only mode, it is presented to the user in a non-editable view, with the option to switch to editing mode if needed.

                              Automatic read-only mode

                              @@ -26,12 +26,12 @@ of the next section.

                              In addition, it's possible to change the number of characters at which the automatic read-only mode will trigger in Options by going to the options - for Text Notes and  + href="#root/_help_4TIF1oA4VQRO">Options by going to the options + for Text Notes and  Code Notes.

                              + class="reference-link" href="#root/_hidden/_options/_help__optionsCodeNotes">Code Notes.

                              Changing a note's read-only behavior

                              -

                              Via the Ribbon, +

                              Via the Ribbon, by going to the Basic Properties tab and looking for the Editable selection. The following options are possible:

                                @@ -50,8 +50,7 @@ type does not support read-only mode.

                                Manually setting the options

                                Apart from using the ribbon as previously mentioned, it's also possible - to use labels to change - the behavior:

                                + to use labels to change the behavior:

                                • To set as read-only, apply the readOnly label to the note.
                                • To disable automatic read-only (always editable), apply the autoReadOnlyDisabled label.
                                • @@ -59,17 +58,17 @@

                                  Temporarily editing a read-only note

                                  When accessing a read-only note, it's possible to temporarily edit it by using the - button in the Floating buttons area.

                                  + button in the Floating buttons area.

                                  When pressed, the note will become editable but will become read-only again after navigating to a different note.

                                  Special read-only behavior

                                  Some note types have a special behavior based on whether the read-only mode is enabled:

                              diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html index 97c9026ee..274ac59cc 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Notes/Sorting Notes.html @@ -15,9 +15,9 @@

                              Manual sorting

                              You can sort notes by right-clicking the parent note in the Note Tree and selecting - Advanced -> Sort notes by ... This will sort existing notes, but will - not automatically sort future notes added to this parent note.

                              + href="#root/_help_oPVyFC7WL2Lp">Note Tree and selecting Advanced + -> Sort notes by ... This will sort existing notes, but will not automatically + sort future notes added to this parent note.

                              The sorting dialog allows:

                              • Sorting by title, creation or modification date.
                              • @@ -26,7 +26,7 @@
                              • Natural sort, based on the sorting rules of a particular language.

                              Automatic/Permanent Sorting

                              -

                              Child notes can be automatically sorted by attaching specific labels to +

                              Child notes can be automatically sorted by attaching specific labels to the parent note:

                              • #sorted: Enables sorting. Can optionally include the name diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html index 6c2e5a0f9..456d44b5a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Themes.html @@ -25,9 +25,9 @@

                                Trilium supports custom user themes, allowing you to personalize the application's appearance. To create a custom theme, follow these steps:

                                  -
                                1. Create a CSS Code Note: Start by creating a new code note with +
                                2. Create a CSS Code Note: Start by creating a new code note with the CSS type.
                                3. -
                                4. Annotate with #appTheme: Add the attribute #appTheme=my-theme-name to +
                                5. Annotate with #appTheme: Add the attribute #appTheme=my-theme-name to your note, where my-theme-name is the name of your custom theme.
                                6. Define Your Styles: Write your custom CSS within the note. Below is an example of a custom theme:
                                7. @@ -89,7 +89,7 @@ body .CodeMirror {
                                  1. Go to "Menu" -> "Options" -> "Appearance."
                                  2. In the theme selection dropdown, you should see your custom theme listed - under the name you provided with the #appTheme label.
                                  3. + under the name you provided with the #appTheme label.
                                  4. Select your custom theme to activate it.

                                  If you make changes to your theme, press Ctrl + R to @@ -112,9 +112,9 @@ body .CodeMirror {

                                  To use custom CSS:

                                  1. Create a CSS Code Note: Create a new Code note with the CSS type.
                                  2. + href="#root/_help_6f9hih2hXXZk">Code note with the CSS type.
                                  3. Add the appCss Label: Annotate - the note with the #appCss label.
                                  4. + the note with the #appCss label.
                                  5. Write Your CSS: Add your custom CSS rules to the note.

                                  For example:

                                  /* Custom CSS to style specific elements */
                                  @@ -132,7 +132,7 @@ body .CodeMirror {
                                           

                                  To apply specific styles to certain notes in the tree:

                                  • Use the cssClass Attribute: - Add the cssClass attribute to + Add the cssClass attribute to a note, and assign it a value representing the desired CSS class.
                                  • Define an iconClass: You can also define a custom icon for a note using the iconClass attribute, selecting @@ -143,7 +143,7 @@ body .CodeMirror {

                                    User-Provided Themes

                                    A gallery of user-created themes is available, showcasing the variety of customizations that the Trilium community has developed. For more information, - check the Theme Gallery.

                                    + check the Theme Gallery.

                                    Asset Path Management

                                    When referencing built-in assets like images in your custom themes or CSS, you can avoid hardcoding version numbers by using the vX alias. diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html index d65c8486a..71c0ca462 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Floating buttons.html @@ -18,18 +18,18 @@ height="144">

                            Depending on the current note, a panel will appear near the top-right - of the note, right underneath the Ribbon. + of the note, right underneath the Ribbon. These buttons offer additional interaction that is specific to that particular note.

                            For example:

                              -
                            • For Mermaid Diagrams and  +
                            • For Mermaid Diagrams and  Canvas, there are buttons to download the SVG representation of the + class="reference-link" href="#root/_help_grjYqerjn243">Canvas, there are buttons to download the SVG representation of the note, or to copy a reference to the note for pasting it a Text note.
                            • -
                            • For read-only notes, there - is a button to temporarily edit the note for quick modifications.
                            • + href="#root/_help_iPIMuisry3hd">Text note. +
                            • For read-only notes, there is a + button to temporarily edit the note for quick modifications.

                            Interaction

                            The floating button area can be collapsed by pressing the two right arrows diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html index 49c0e7b47..b63aae59a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Global menu.html @@ -19,7 +19,7 @@

                            Accessing the global menu

                            -

                            See Vertical and horizontal layout since +

                            See Vertical and horizontal layout since the position of the global menu is changed based on which layout has been selected.

                            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html index 69b0c6224..37137327f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Launch Bar.html @@ -16,7 +16,7 @@

                            Position of the Launch bar

                            Depending on the layout selected, the launcher bar will either be on the left side of the screen with buttons displayed vertically or at the top - of the screen. See Vertical and horizontal layout for + of the screen. See Vertical and horizontal layout for more information.

                            Terminology

                              @@ -33,10 +33,10 @@
                            • Right click in the empty space between launchers on the launch bar and select Configure Launchbar.
                            • -
                            • Click on the Global menu and +
                            • Click on the Global menu and select Configure Launchbar.
                            -

                            This will open a new tab with the Note Tree listing +

                            This will open a new tab with the Note Tree listing the launchers.

                            @@ -51,13 +51,13 @@

                            Similarly, to remove it from the launch bar, simply look for it in Visible Launchers then right click it and select Move to available launchers or use drag-and-drop.

                            Drag-and-drop the items in the tree in order to change their - order. See Note Tree for more - interaction options, including using keyboard shortcuts.

                            + order. See Note Tree for + more interaction options, including using keyboard shortcuts.

                            Customizing the launcher

                            • The icon of a launcher can be changed just like a normal note. See  Note Icons for more information.
                            • + href="#root/_help_p9kXRFAkwN4o">Note Icons for more information.
                            • The title of the launcher can also be changed.

                            Resetting

                            @@ -76,7 +76,7 @@
                          • Set the target promoted attribute to the note to navigate to.
                          • Optionally, set hoistedNote to hoist a particular note. See  Note Hoisting for more information.
                          • + href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting for more information.
                          • Optionally, set a keyboardShortcut to trigger the launcher.
                  @@ -84,7 +84,7 @@

                  Script Launcher
                  An advanced launcher which will run a script upon pressing. See  Scripts for more information.

                  + href="#root/_help_CdNpE2pqjmI6">Scripts for more information.

                  1. Set script to point to the desired script to run.
                  2. Optionally, set a keyboardShortcut to trigger the launcher.
                  3. @@ -95,7 +95,7 @@

                    Allows defining a custom widget to be rendered inside the launcher. See  Widget Basics for more information.

                    + href="#root/_help_SynTBQiBsdYJ">Widget Basics for more information.

                  4. Spacers @@ -103,7 +103,7 @@ visual distinction.

                  -

                  Launchers are configured via predefined Promoted Attributes.

                  +

                  Launchers are configured via predefined Promoted Attributes.

                  diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html index 26cacc0de..723dabd75 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree.html @@ -28,7 +28,7 @@

                  Example of using keyboard keys to move a noteTrilium offers efficient keyboard-based manipulation using the following shortcuts:

                  + href="#root/_help_A9Oc6YKKc65v">shortcuts:

                  • Ctrl + and Ctrl +: Move the note up or down in the order.
                  • @@ -42,10 +42,10 @@

                  Context Menu

                  You can also move notes using the familiar cut and paste functions available - in the context menu, or with the associated keyboard shortcuts: CTRL-C ( + 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 + href="#root/_help_IakOLONlIfGI">copy), Ctrl + X (cut) and Ctrl + V (paste).

                  +

                  See Note Tree Menu for more information.

                  diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html index 9fc40be16..5389d65d6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Multiple selection.html @@ -22,7 +22,7 @@

                  In the right-click menu, operations such as Cut, Copy, Move to, Clone to or Delete will apply to all the selected notes. It is also possible - to apply Bulk Actions to + to apply Bulk Actions to them. The rest of the options will not be available and will appear disabled in the menu.

                  diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html index c85c18882..664642ec3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note Tree/Note tree contextual menu.html @@ -19,14 +19,14 @@

                  The note tree menu can be accessed by right-clicking in the  Note Tree.

                  + class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree.

                  Interaction

                  The contextual menu can operate:

                  • On a single note, by right clicking it in the note tree.
                  • On multiple notes, by selecting them first. See Multiple selection on how to - do so. + href="#root/_help_yTjUdsOi4CIE">Multiple selection on how to do + so.
                    • When right clicking, do note that usually the note being right clicked is also included in the affected notes, regardless of whether it was selected @@ -42,7 +42,7 @@
                      • Open in a new tab
                          -
                        • Will open a single note in a new tab.
                        • +
                        • Will open a single note in a new tab.
                      • Open in a new split @@ -54,14 +54,13 @@
                      • Hoist note
                        • Will focus the note tree on this note. See Note Hoisting for - more information.
                        • + href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting for more information.
                      • Insert note after
                          -
                        • Allows easy creation of a note with a specified note type.
                        • -
                        • Templates will +
                        • Allows easy creation of a note with a specified note type.
                        • +
                        • Templates will also be present (if any) at the end of the list.
                        • The note will be added on the same level of hierarchy as the note selected.
                        @@ -76,7 +75,7 @@
                        • Will mark this note and all of its descendents as protected. See  Protected Notes for more information.
                        • + class="reference-link" href="#root/_help_bwg0e8ewQMak">Protected Notes for more information.
                      • Unprotect subtree @@ -97,9 +96,9 @@
                      • Use one of the two paste functions (or the keyboard shortcuts) to copy them to the desired location.
                      • Note that the copy function here works according to the Cloning Notes functionality - (i.e. the note itself will be present in two locations at once, and editing - it in one place will edit it everywhere).
                      • + href="#root/_help_IakOLONlIfGI">Cloning Notes functionality (i.e. + the note itself will be present in two locations at once, and editing it + in one place will edit it everywhere).
                      • To simply create a duplicate note that can be modified independently, look for Duplicate subtree.
                      @@ -123,7 +122,7 @@
                    • Clone to…
                        -
                      • Will display a modal to specify where to clone the +
                      • Will display a modal to specify where to clone the desired notes.
                    • @@ -134,28 +133,28 @@
                      • Delete also all clones to ensure that the note will be deleted everywhere if it has been placed into multiple locations (see Cloning Notes).
                      • + href="#root/_help_IakOLONlIfGI">Cloning Notes).
                      • Erase notes permanently will ensure that the note cannot be recovered - from Recent Changes.
                      • + from Recent Changes.
                  • Import into note
                      -
                    • Opens the import dialog and places +
                    • Opens the import dialog and places the imported notes as child notes of the selected one.
                  • Export
                      -
                    • Opens the export dialog for the - selected notes.
                    • +
                    • Opens the export dialog for the selected + notes.
                  • Search in subtree
                      -
                    • Opens a full Search with +
                    • Opens a full Search with it preconfigured to only look into this note and its descendants (the Ancestor field).
                  • @@ -172,39 +171,39 @@
                    • Apply bulk actions
                    • Edit branch prefix
                        -
                      • Opens a dialog to assign a name to be able to distinguish clones, - see Branch prefix for +
                      • Opens a dialog to assign a name to be able to distinguish clones, + see Branch prefix for more information.
                    • Convert to attachment
                        -
                      • Converts the selected notes to Attachments of +
                      • Converts the selected notes to Attachments of their parent notes.
                      • This functional is most useful when dealing with image File notes that were imported + href="#root/_help_W8vYD3Q1zjCR">File notes that were imported from an external source or an older version of Trilium.
                    • Duplicate subtree
                      • Creates a copy of the note and its descendants.
                      • -
                      • This process is different from Cloning Notes since +
                      • This process is different from Cloning Notes since the duplicated note can be edited independently from the original.
                      • An alternative to this, if done regularly, would be Templates.
                      • + href="#root/_help_KC1HB96bqqHX">Templates.
                    • Expand subtree
                        -
                      • Expands all the child notes in the Note Tree.
                      • +
                      • Expands all the child notes in the Note Tree.
                    • Collapse subtree @@ -216,8 +215,8 @@
                      • Opens a dialog to sort all the child notes of the selected note.
                      • The sorting is done only once, there is an automatic sorting mechanism - as well that can be set using Attributes.
                      • -
                      • See Sorting Notes for + as well that can be set using Attributes.
                      • +
                      • See Sorting Notes for more information.
                    • @@ -225,13 +224,13 @@
                      • Copies a URL fragment representing the full path to this branch for a note, such as #root/Hb2E70L7HPuf/4sRFgMZhYFts/2IVuShedRJ3U/LJVMvKXOFv7n.
                      • -
                      • The URL to manually create Links within - notes, or for note Navigation.
                      • +
                      • The URL to manually create Links within + notes, or for note Navigation.
                    • Recent changes in subtree
                        -
                      • This will open Recent Changes, +
                      • This will open Recent Changes, but filtered to only the changes related to this note or one of its descendants.
                    • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html index 82f114fd0..50fcabfca 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Note buttons.html @@ -13,17 +13,17 @@

                      Note buttons

                      -

                      To the right of the Ribbon there are - a few more buttons: +

                      To the right of the Ribbon there + are a few more buttons:

                        -
                      • The Note Revisions button displays the Note Revisions for +
                      • The Note Revisions button displays the Note Revisions for that particular note.
                      • The contextual menu offers commands for the note or its subtree, such - as import, export, viewing the Note source code or  + as import, export, viewing the Note source code or  Attachments.
                      • + href="#root/_help_0vhv7lsOLy82">Attachments.
                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html index 2641768b3..f68e0375d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Options.html @@ -22,21 +22,22 @@

                      Entering options

                      The Options can be accessed via:

                        -
                      • The Global menu, by selecting the Options item.
                      • +
                      • The Global menu, by selecting + the Options item.
                      • The - button in the Launch Bar which + button in the Launch Bar which can optionally be hidden if not desirable.
                      • Optionally, a keyboard shortcut can be defined, but it is not assigned by default.
                      • -
                      • By clicking on this link: Options.
                      • +
                      • By clicking on this link: Options.

                      Once in the options section, simply select one of the option categories - using the Note Tree.

                      + using the Note Tree.

                      Exiting options

                      -

                      When entering the options, they are opened in a new tab. +

                      When entering the options, they are opened in a new tab. To close them, simply close the tab.

                      Options when using sync

                      -

                      When using Synchronization, +

                      When using Synchronization, some of the options will be kept in sync across all the devices while others can be changed independently.

                      Generally, the options that relate to appearance are intentionally kept diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html index 57ebfed8d..cc127eb88 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Recent Changes.html @@ -22,16 +22,16 @@

                      • For an overview of the changes across all documents, press the button in the Launch Bar. + width="25" height="21">button in the Launch Bar.
                          -
                        • If there is a hoisted note or - a workspace, the list of recent - changes will be limited to the descendents of the hoisted note, or the - workspace.
                        • +
                        • If there is a hoisted note or a + workspace, the list of recent changes will be limited to the descendents + of the hoisted note, or the workspace.
                      • To limit the list of recent changes to a note and its descendants, look - for the corresponding option in the Note tree contextual menu → + for the corresponding option in the Note tree contextual menu → Advanced.

                      Interaction

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html index 678b3d643..65654b7cd 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Ribbon.html @@ -20,94 +20,93 @@ about the current note.

                      Settings

                      It is possible to change whether some ribbon items will be automatically - open when navigating to a new note. To do so, in Settings, + open when navigating to a new note. To do so, in Settings, go to Appearance and look for the Ribbon widgets section.

                      Formatting

                      If you are using the Fixed formatting toolbar, all the formatting - buttons for text notes will appear here. See Formatting toolbar for + buttons for text notes will appear here. See Formatting toolbar for more information.

                      Tabs

                      Basic Properties

                        -
                      • Note type allows changing the note type of +
                      • Note type allows changing the note type of a note.
                        • Generally this is desirable only if the note is empty.
                        • As a more advanced use, it's possible to change the note type in order - to modify the source code of - a note.
                        • + to modify the source code of a note.
                      • Protect the note toggles whether the current note is encrypted and accessible only by entering the protected session. - See Protected Notes for + See Protected Notes for more information.
                      • Editable changes whether the current note:
                          -
                        • Enters read-only mode automatically +
                        • Enters read-only mode automatically if the note is too big (default behaviour).
                        • Is always in read-only mode (however it can still be edited temporarily).
                        • Is always editable, regardless of its size.
                      • Bookmark toggles the display of the current note - into the Launch Bar for easy - access. See Bookmarks for + into the Launch Bar for + easy access. See Bookmarks for more information.
                      • Shared toggles whether the current note is publicly - accessible if you have a server instance set - up. See Sharing for - more information.
                      • + accessible if you have a server instance set + up. See Sharing for more + information.
                      • Template toggles whether the current note is considered a template and can be used to easily create notes with the same - content. See Template for + content. See Template for more information.
                      • Language changes the main language of the current note, mostly useful for spell checking or right-to-left support. See  Content language & Right-to-left support for more information.
                      • + href="#root/_help_veGu4faJErEM">Content language & Right-to-left support for more information.

                      Owned Attributes

                      This section allows editing the labels and relations of a note. For more - information, see Attributes.

                      + information, see Attributes.

                      The plus button to the right offers a simplified way to insert labels and relations, via a graphical input. From this menu, it's also possible - to define label and relation definitions (see Promoted Attributes).

                      + to define label and relation definitions (see Promoted Attributes).

                      Inherited Attributes

                      This section displays the attributes which are applied to this note via  Attribute Inheritance. It is not possible to alter the attributes + href="#root/_help_bwZpz2ajCEwO">Attribute Inheritance. It is not possible to alter the attributes from this section.

                      Note Paths

                      This section displays all the places where the current note has been cloned to. Here the current note can also be cloned to a new location (similar - to the Note Tree) See Cloning Notes for - more information.

                      + to the Note Tree) See  + Cloning Notes for more information.

                      Note Map

                      The note map displays all the relations of the current note to other notes, - as well as the subtree structure. See Note Tree for + as well as the subtree structure. See Note Tree for more information.

                      Similar Notes

                      This section lists all the notes that are similar to the current one. - See Similar Notes for + See Similar Notes for more information.

                      Note Info

                      This section displays information about the current note:

                        -
                      • The internal ID of the - note.
                      • -
                      • The type of the note, as well as +
                      • The internal ID of the note.
                      • +
                      • The type of the note, as well as its MIME type (used mostly for exporting notes).
                      • The created and modification dates.
                      • -
                      • The estimated size of the note in the Database, +
                      • The estimated size of the note in the Database, as well as its children count and size.

                      Edited notes

                      -

                      This section pops automatically when entering a day note and +

                      This section pops automatically when entering a day note and shows the notes that were edited that day.

                      It is possible to disable this behavior from settings, by going to  Appearance settings and looking for the Ribbon widgets section.

                      + class="reference-link" href="#root/_hidden/_options/_help__optionsAppearance">Appearance settings and looking for the Ribbon widgets section.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html index d128147d6..ad9b84471 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Right Sidebar.html @@ -20,9 +20,9 @@

                      The right sidebar displays specific content for the current note. Currently it includes:

                      Note that the sidebar is not displayed if it would otherwise be empty, @@ -31,10 +31,10 @@

                      The sidebar can be hidden or shown by using the toggleRightPane keyboard shortcut, which is not assigned by default.

                      Relation with splits

                      -

                      When using Split View, +

                      When using Split View, there is a single sidebar serving all the open splits for the current tab.

                      + href="#root/_help_3seOhtN8uLIY">tab.

                      Clicking on a note within the split view will display the sidebar for that note. If there are no items to display in the sidebar, it will remain closed.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html index ca6bd317a..85a460b2e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Split View.html @@ -37,9 +37,9 @@
                    • Use the or the button to move around the splits.
                    • -
                    • Each tab has its own split view configuration (e.g. - one tab can have two notes in a split view, whereas the others are one-note - views). +
                    • Each tab has its own split view configuration + (e.g. one tab can have two notes in a split view, whereas the others are + one-note views).
                      • The tab will indicate only the title of the main note (the first one in the list).
                      • @@ -48,10 +48,10 @@

                      Splits and the note tree & hoisting

                      Clicking on the content of a split will focus that split. While focused, - the Note Tree will + the Note Tree will also indicate the note that is being edited.

                      It is possible for each of the splits to have their own Note Hoisting.

                      + href="#root/_help_OR8WJ7Iz9K4U">Note Hoisting.

                      When a new split is created, it will share the same note hoisting as the previous one. An easy solution to this is to simply hoist the notes after the split is created.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html index 2869eaef9..0215dec12 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Tabs.html @@ -19,13 +19,13 @@

                      In Trilium, tabs allow easy switching between notes.

                      Layout

                      -

                      Depending on the Vertical and horizontal layout:

                      +

                      Depending on the Vertical and horizontal layout:

                      • For the vertical layout, the tabs will be placed at the top but to the - right of the Note Tree.
                      • + right of the Note Tree.
                      • For the horizontal layout, the tabs will be placed at the top in full-width, - above the note tree, allowing for more - tabs to be comfortably displayed.
                      • + above the note tree, allowing + for more tabs to be comfortably displayed.

                      Interaction

                        @@ -34,8 +34,8 @@
                      • To close a tab, press the corresponding button.
                      • For multitasking, tabs can be used alongside Split View. Each tab can have one or more - notes, displayed horizontally.
                      • + href="#root/_help_luNhaphA37EO">Split View. Each tab can have one or + more notes, displayed horizontally.
                      • Tabs can be reordered by drag-and-dropping it into a new position.
                      • An existing tab can be displayed in a new window by dragging the tab upwards or downwards. It is not possible to combine tabs back into another window.
                      • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html index 89e3514d6..bcf3a6d1a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/UI Elements/Vertical and horizontal layout.html @@ -18,19 +18,19 @@

                        Vertical layout

                        The vertical layout is Trilium's original layout:

                        @@ -39,25 +39,25 @@

                        The horizontal layout is a more traditional layout, since it bears similarity with other applications. In this mode:

                          -
                        • The Launch Bar is +
                        • The Launch Bar is at the top of the screen, with the buttons laid horizontally.
                        • The tab bar is at the top of the screen, but now covers the entirety of the width, allowing for more tabs to be displayed at once.
                        • -
                        • The Quick search is - now part of the Launch Bar. +
                        • The Quick search is + now part of the Launch Bar. It can be moved around according to preference and even removed if needed.
                        • -
                        • The Note Tree can +
                        • The Note Tree can be collapsed by pressing the small button to the left of the first tab.
                        • -
                        • The Global menu can +
                        • The Global menu can be accessed via the - button at the end of the Launch Bar.
                        • + button at the end of the Launch Bar.

                        Changing the layout

                        -

                        Go to Options and +

                        Go to Options and look for the Appearance option on the left. Then look for the Layout section, where there is the possibility to switch between the two available layouts.

                        Selecting an option will immediately apply the new layout by reloading diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html b/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html index f0f98ab37..92069df9e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/FAQ.html @@ -16,7 +16,7 @@

                        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.

                        +

                        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, @@ -36,19 +36,18 @@

                      • the assumption that only single person has access to the app simplifies many things, or just outright makes them possible. In multi-user app, our scriptingsupport would be a XSS security hole, while with the single + href="#root/_help_CdNpE2pqjmI6">scriptingsupport would be a XSS security hole, while with the single user assumption it's an endless customizable tool.

                      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, + 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 
                      + 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.

                      @@ -59,9 +58,9 @@ 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.

                      + use a sync/web server.

                      Why database instead of flat files?

                      -

                      Trilium stores notes in a database which +

                      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.

                      @@ -70,17 +69,17 @@ with probably more problems.

                      More detailed answer:

                        -
                      • clones are - what you might call "hard directory link" in filesystem lingo, but this - concept is not implemented in any filesystem
                      • +
                      • clones are what you might call "hard + directory link" in filesystem lingo, but this concept is not implemented + in any filesystem
                      • filesystems make a distinction between directory and file while there's intentionally no such difference in Trilium
                      • files are stored in no particular order and user can't change this
                      • -
                      • Trilium allows storing note attributes which +
                      • Trilium allows storing note attributes which could be represented in extended user attributes but their support differs greatly among different filesystems / operating systems
                      • Trilium makes links / relations between different notes which can be quickly - retrieved / navigated (e.g. for note map). + retrieved / navigated (e.g. for note map). There's no such support in file systems which means these would have to be stored in some kind of side-car files (mini-databases).
                      • Filesystems are generally not transactional. While this is not completely diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html index a740f7071..e36855cd3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Backup.html @@ -15,7 +15,7 @@

                        Trilium supports simple backup scheme where it saves copy of the  Database on these events:

                        + class="reference-link" href="#root/_help_wX4HbRucYSDD">Database on these events:

                        • once a day
                        • once a week
                        • @@ -24,27 +24,27 @@

                        So in total you'll have at most 4 backups from different points in time which should protect you from various problems. These backups are stored - by default in backup directory placed in the data directory.

                        + by default in backup directory placed in the data directory.

                        This is only very basic backup solution, and you're encouraged to add some better backup solution - e.g. backing up the Database to cloud / different + href="#root/_help_wX4HbRucYSDD">Database to cloud / different computer etc.

                        -

                        Note that Synchronization provides +

                        Note that Synchronization provides also some backup capabilities by its nature of distributing the data to other computers.

                        Restoring backup

                        Let's assume you want to restore the weekly backup, here's how to do it:

                          -
                        • find data directory Trilium uses - easy - way is to open "About Trilium Notes" from "Menu" in upper left corner and - looking at "data directory" +
                        • find data directory Trilium uses + - easy way is to open "About Trilium Notes" from "Menu" in upper left corner + and looking at "data directory"
                          • I'll refer to ~/trilium-data as data directory from now on
                        • find ~/trilium-data/backup/backup-weekly.db - this is the  Database backup
                        • + class="reference-link" href="#root/_help_wX4HbRucYSDD">Database backup
                        • at this point stop/kill Trilium
                        • delete ~/trilium-data/document.db, ~/trilium-data/document.db-wal and ~/trilium-data/document.db-shm (latter two files are auto generated)
                        • @@ -59,11 +59,11 @@ will be detected and synced to the newer version.

                          Disabling backup

                          Although this is not recommended, it is possible to disable backup in config.ini in - the data directory:

                          [General]
                          +          the data directory:

                          [General]
                           ... some other configs
                           # set to true to disable backups (e.g. because of limited space on server)
                           noBackup=true
                          -

                          You can also review the configuration file +

                          You can also review the configuration file to provide all config.ini values as environment variables instead.

                          See sample config.

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html index bfc22b2b7..64d0b1e73 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Data directory.html @@ -15,11 +15,11 @@

                        Data directory contains:

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

                        Create a script to run with specific data directory

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

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

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

                        You can then save the above command as a shell script on your path for diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html index e00a7e1c0..f6cd78715 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Desktop Installation.html @@ -28,7 +28,7 @@

                        • trilium-no-cert-check: Starts Trilium without validating TLS certificates, useful if connecting to a server with a self-signed + href="#root/_help_l2VkvOwUNfZj">TLS certificates, useful if connecting to a server with a self-signed certificate.
                          • Alternatively, set the NODE_TLS_REJECT_UNAUTHORIZED=0 environment @@ -36,14 +36,14 @@
                        • trilium-portable: Launches Trilium in portable mode, where - the data directory is created within + the data directory is created within the application's directory, making it easy to move the entire setup.
                        • trilium-safe-mode: Boots Trilium in "safe mode," disabling any startup scripts that might cause the application to crash.

                        Synchronization

                        For Trilium desktp users who wish to synchronize their data with a server - instance, refer to the Synchronization guide + instance, refer to the Synchronization guide for detailed instructions.

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html index 84a4049e8..3922d9bbf 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Mobile Frontend.html @@ -13,14 +13,14 @@

                        Mobile Frontend

                        -

                        Trilium (server edition) has - a mobile web frontend which is optimized for touch based devices - smartphones +

                        Trilium (server edition) has a + mobile web frontend which is optimized for touch based devices - smartphones and tablets. It is activated automatically during login process based on browser detection.

                        Mobile frontend is limited in features compared to full desktop frontend. See below for more details on this.

                        Note that this is not an Android/iOS app, this is just mobile friendly - web page served on the server edition.

                        + web page served on the server edition.

                        Screenshots

                        Mobile phone

                        @@ -36,7 +36,7 @@

                        • it is possible to browse the whole note tree, read and edit all types of notes, but you can create only text notes
                        • -
                        • reading and editing protected notes is +
                        • reading and editing protected notes is possible, but creating them is not supported
                        • editing options is not supported
                        • cloning notes is not supported
                        • @@ -47,7 +47,7 @@ If this is not appropriate, you can use ?mobile or ?desktop query param on login page (Note: you might need to log out).

                          Scripting

                          -

                          You can alter the behavior with scripts just +

                          You can alter the behavior with scripts just like for normal frontend. For script notes to be executed, they need to have labeled #run=mobileStartup.

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html index 827262152..62d4637d5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation.html @@ -14,42 +14,42 @@

                        This guide outlines the steps to install Trilium on your own server. You - might consider this option if you want to set up synchronization or + might consider this option if you want to set up synchronization or use Trilium in a browser - accessible from anywhere.

                        Installation Options

                        There are several ways to install Trilium on a server, each with its own advantages:

                        -

                        The server installation includes both web and mobile frontends.

                        +

                        The server installation includes both web and mobile frontends.

                        Configuration

                        After setting up your server installation, you may want to configure settings - such as the port or enable TLS. - Configuration is managed via the Trilium config.ini file, which - is located in the data directory by default. + such as the port or enable TLS. Configuration + is managed via the Trilium config.ini file, which is located + in the data directory by default. To begin customizing your setup, copy the provided config-sample.ini file with default values to config.ini.

                        -

                        You can also review the configuration file +

                        You can also review the configuration file to provide all config.ini values as environment variables instead.

                        Config Location

                        -

                        By default, config.ini, the database, - and other important Trilium data files are stored in the data directory. +

                        By default, config.ini, the database, + and other important Trilium data files are stored in the data directory. If you prefer a different location, you can change it by setting the TRILIUM_DATA_DIR environment variable:

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

                        Disabling Authentication

                        @@ -72,7 +72,7 @@ noAuthentication=true

                        To avoid limiting the size of payloads, include this in the server {} block:

                        # Set to 0 for unlimited. Default is 1M.
                         client_max_body_size 0;

                        Apache

                        -

                        For an Apache setup, refer to the Apache proxy setup guide.

                        +

                        For an Apache setup, refer to the Apache proxy setup guide.

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Docker Server Installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Docker Server Installation.html index e56e70d01..8d136add5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Docker Server Installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Docker Server Installation.html @@ -80,9 +80,9 @@ docker inspect [container_name]
                        is the container's path. More details can be found in the Docker Volumes Documentation.

                        Reverse Proxy

                          -
                        1. Nginx +
                        2. Nginx
                        3. -
                        4. Apache +
                        5. Apache

                        Note on --user Directive

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manual server installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manual server installation.html index 412650d70..3aa1347d5 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manual server installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Manual server installation.html @@ -49,7 +49,7 @@ nohup TRILIUM_ENV=dev node src/www & browser and navigate to http://localhost:8080 to access Trilium (replace "localhost" with your hostname).

                        TLS

                        -

                        Don't forget to configure TLS which +

                        Don't forget to configure TLS which is required for secure usage!

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged server installation.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged server installation.html index afbf79512..bca16d20a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged server installation.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/1. Installing the server/Packaged server installation.html @@ -77,10 +77,10 @@ WantedBy=multi-user.target at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12)

                        If you get an error like this, you need to either upgrade your glibc (typically - by upgrading to up-to-date distribution version) or use some other server installation method.

                        + by upgrading to up-to-date distribution version) or use some other server installation method.

                        TLS

                        -

                        Don't forget to configure TLS, - which is required for secure usage!

                        +

                        Don't forget to configure TLS, which + is required for secure usage!

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html index 07adf3eb0..573d07e7e 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Server Installation/TLS Configuration.html @@ -13,7 +13,7 @@

                        TLS Configuration

                        -

                        Configuring TLS is essential for server installation in +

                        Configuring TLS is essential for server installation in Trilium. This guide details the steps to set up TLS within Trilium itself.

                        For a more robust solution, consider using TLS termination with a reverse proxy (recommended, e.g., Nginx). You can follow a guide like this for @@ -31,7 +31,7 @@

                      Modifying config.ini

                      Once you have your certificate, modify the config.ini file - in the data directory to configure + in the data directory to configure Trilium to use it:

                      [Network]
                       port=8080
                       # Set to true for TLS/SSL/HTTPS (secure), false for HTTP (insecure).
                      @@ -40,7 +40,7 @@ https=true
                       # Relevant only if https=true
                       certPath=/[username]/.acme.sh/[hostname]/fullchain.cer
                       keyPath=/[username]/.acme.sh/[hostname]/example.com.key
                      -

                      You can also review the configuration file +

                      You can also review the configuration file to provide all config.ini values as environment variables instead.

                      The above example shows how this is set up in an environment where the certificate was generated using Let's Encrypt's ACME utility. Your paths diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html index 5438b47a9..0946bc6a7 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Synchronization.html @@ -27,7 +27,7 @@

                      Setting Up Synchronization

                      Security Considerations

                      Setting up the server securely is critical and can be complex. It is crucial - to use a valid TLS certificate (HTTPS) + to use a valid TLS certificate (HTTPS) rather than an unencrypted HTTP connection to ensure security and avoid potential vulnerabilities.

                      Synchronizing a Desktop Instance with a Sync Server

                      @@ -55,7 +55,7 @@

                      This method is used when you already have a sync server and want to configure a new desktop instance to sync with it.

                        -
                      1. Desktop Setup: Follow the desktop installation page.
                      2. +
                      3. Desktop Setup: Follow the desktop installation page.
                      4. Initial Configuration: When prompted, choose the option to set up sync with a sync server.
                      @@ -97,7 +97,7 @@

                      Conflict Resolution

                      If you edit the same note on multiple instances before synchronization, Trilium resolves conflicts by retaining the newer change and discarding - the older one. The older version remains accessible in note revisions, + the older one. The older version remains accessible in note revisions, allowing data recovery if needed.

                      Hash Check

                      After each synchronization, Trilium computes a hash of all synced data diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html index 234e0376a..5b3406a72 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Upgrading TriliumNext.html @@ -20,21 +20,21 @@ be performed manually. The upgrade process varies depending on the installation method:

                      Database Compatibility and Migration

                      -

                      Upon startup, Trilium will automatically migrate the database to +

                      Upon startup, Trilium will automatically migrate the database to the new version. Note that after migration, older versions of Trilium will be unable to read the database. If you need to revert to a previous version - of Trilium and its database, you can restore the backup that + of Trilium and its database, you can restore the backup that is created prior to migration.

                      Sync Compatibility

                      -

                      The synchronization protocol used by - Trilium is versioned, requiring all members of the sync cluster to use +

                      The synchronization protocol used + by Trilium is versioned, requiring all members of the sync cluster to use the same protocol version. Therefore, when upgrading to a new version, you may need to upgrade all instances in the sync cluster. Changes to the sync protocol version are typically indicated on the release page.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html index fbc3a2b39..e40e3847d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Installation & Setup/Web Clipper.html @@ -32,8 +32,8 @@

                    Trilium will save these clippings as a new child note under a "clipper inbox" note.

                    -

                    By default, that's the day note but - you can override that by setting the label clipperInbox, +

                    By default, that's the day note but + you can override that by setting the label clipperInbox, on any other note.

                    If there's multiple clippings from the same page (and on the same day), then they will be added to the same note.

                    @@ -48,7 +48,7 @@

                    Configuration

                    The extension needs to connect to a running Trilium instance. By default, it scans a port range on the local computer to find a desktop Trilium instance.

                    -

                    It's also possible to configure the server address +

                    It's also possible to configure the server address if you don't run the desktop application, or want it to work without the desktop application running.

                    Username

                    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html index afcb7f4cb..39729f2b9 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types.html @@ -18,10 +18,10 @@

                    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.

                    + class="reference-link" href="#root/_help_iPIMuisry3hd">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:

                    + href="#root/_help_oPVyFC7WL2Lp">Note Tree and right click an existing + note where to place the new one and select:

                    • Insert note after, to put the new note underneath the one selected.
                    • Insert child note, to insert the note as a child of the selected @@ -32,18 +32,18 @@

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

                        -
                      • When adding a link in a  - Text note, type the desired title of the new note and press Enter. - Afterwards the type of the note will be asked.
                      • +
                      • When adding a link in a Text note, type the desired title + of the new note and press Enter. Afterwards the type of the note will be + asked.
                      • Similarly, when creating a new tab, type the desired title and press Enter.

                      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.

                      + href="#root/_help_BlN9DFI679QC">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:

                      - Text + Text The default note type, which allows for rich text formatting, images, admonitions and right-to-left support. - Code + 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 + 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 + 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 + Note Map Displays the relationships between the notes, whether via relations or their hierarchical structure. - Render Note + Render Note - Used in Scripting, + 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 + Book

                      Displays the children of the note either as a grid, a list, or for a more @@ -108,37 +108,37 @@ - Mermaid Diagrams + 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 + Canvas Allows easy drawing of sketches, diagrams, handwritten content. Uses the same technology behind excalidraw.com. - Web View + Web View Displays the content of an external web page, similar to a browser. - Mind Map + Mind Map Easy for brainstorming ideas, by placing them in a hierarchical layout. - Geo Map + 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 + File Represents an uploaded file such as PDFs, images, video or audio files. diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html index d52053cec..c6789cd5f 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Book.html @@ -13,7 +13,7 @@

                      Book

                      -

                      A Book Note in Trilium is a special type of note designed +

                      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.

                      @@ -27,12 +27,12 @@

                      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 +

                      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.

                      + class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html index ec9ef88a0..c7a4599af 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Code.html @@ -22,37 +22,36 @@
                    • JavaScript code notes can be executed inside Trilium for some extra functionality
                      • we call such JavaScript code notes "scripts" - see Scripting + href="#root/_help_CdNpE2pqjmI6">Scripting
                    • JSON, XML etc. can be used as storage for structured data (typically used in conjunction with scripting)
                    -

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

                    +

                    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.

                    +

                    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.

                    + 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.

                    + to manually refresh the application.

                    +

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

                    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html index aa9bce33f..64493c0b3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/File.html @@ -19,7 +19,7 @@

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

                      -
                    • Drag a file into the Note Tree.
                    • +
                    • Drag a file into the Note Tree.
                    • Right click a note and select Import into note and point it to one of the supported files.
                    @@ -53,7 +53,7 @@
                    • Copy reference to clipboard, for embedding the image within  Text notes. See Image references for + class="reference-link" href="#root/_help_iPIMuisry3hd">Text notes. See Image references for more information.

                    Videos

                    @@ -68,11 +68,10 @@

                    Although Trilium offers support for videos, it is generally not meant to be used with very large files. Uploading large videos will cause the  Database to balloon as well as the any Backup of it. - In addition to that, there might be slowdowns when first uploading the - files. Otherwise, a large database should not impact the general performance - of Trilium significantly.

                    + class="reference-link" href="#root/_help_wX4HbRucYSDD">Database to balloon as well as the any Backup of it. In addition to that, + there might be slowdowns when first uploading the files. Otherwise, a large + database should not impact the general performance of Trilium significantly.

                    Audio

                    @@ -99,10 +98,10 @@ 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  +

                    Note that generally text files will be imported as + either Text or  Code notes. To bypass this behavior and create a File note + class="reference-link" href="#root/_help_6f9hih2hXXZk">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 @@ -122,7 +121,7 @@

                    • Regardless of the file type, a series of buttons will be displayed in the Image or File tab in the Ribbon. + href="#root/_help_BlN9DFI679QC">Ribbon.
                      • Download, which will download the file for local use.
                      • Open, will will open the file with the system-default application.
                      • @@ -130,25 +129,26 @@
                    • It is not possible to change the note type of a File note.
                    • -
                    • Convert into an attachment from - the note menu.
                    • +
                    • Convert into an attachment from the + note menu.

                    Relation with other notes

                    • -

                      Files are also displayed in the Note List based +

                      Files are also displayed in the Note List based on their type:

                    • Non-image files can be embedded into text notes as read-only widgets via - the Include Note functionality.

                      + the Include Note functionality.

                    • Image files can be embedded into text notes like normal images via  Image references.

                      + class="reference-link" href="#root/_help_0Ofbk1aSuVRu">Image references.

                    diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html index b63c73d35..d1616e183 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Geo Map.html @@ -78,7 +78,7 @@ 1 To create a marker, first navigate to the desired point on the map. Then press the - button in the Floating buttons (top-right) + button in the Floating buttons (top-right) area. 

                    If the button is not visible, make sure the button section is visible diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html index 1c54e986e..2702c6f6d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mermaid Diagrams.html @@ -33,7 +33,7 @@

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

                  + icon in the Floating buttons area.

                  Interaction

                  • The source code of the diagram (in Mermaid format) is displayed on the @@ -57,7 +57,7 @@
                  • The size of the source/preview panes can be adjusted by hovering over the border between them and dragging it with the mouse.
                  • -
                  • In the Floating buttons area: +
                  • In the Floating buttons area:
                    • The source/preview can be laid out left-right or bottom-top via the Move editing pane to the left / bottom option.
                    • Press Lock editing to automatically mark the note as read-only. @@ -65,8 +65,7 @@ Similarly, press Unlock editing to mark a read-only note as editable.
                    • Press the Copy image reference to the clipboard to be able to insert the image representation of the diagram into a text note. See Image references for - more information.
                    • + href="#root/_help_0Ofbk1aSuVRu">Image references for more information.
                    • Press the Export diagram as SVG to download a scalable/vector rendering of the diagram. Can be used to present the diagram without degrading when zooming.
                    • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html index cbe5bd648..c0b6aeb38 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Mind Map.html @@ -44,10 +44,10 @@ new nodes, focusing on a particular notes or creating links between them.
                    • Use the buttons at the top-left to change the positioning of the nodes relative to the root node (to the left, to the right, or to both sides).
                    • -
                    • In the Floating buttons area: +
                    • In the Floating buttons area:
                        -
                      • An image reference can - be copied, to paste the mind map in a text note.
                      • +
                      • An image reference can be copied, + to paste the mind map in a text note.
                      • The diagram can be exported either as SVG (vectorial) or PNG (raster).
                    • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html index 27b48d8c1..0037c8528 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Note Map.html @@ -18,7 +18,7 @@ height="763">

                      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).

                      + 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).

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html index fe826a075..21d76a7c4 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Relation Map.html @@ -13,8 +13,8 @@

                      Relation Map

                      -

                      Relation map is a type of Note which - visualizes notes and their relations. +

                      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 @@ -30,11 +30,11 @@ 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!

                      + href="#root/_help_zEY4DaJG4YT5">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".

                      + notes are called "relations".

                      Family demo

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

                      @@ -50,7 +50,7 @@
                    • we start with empty relation map and two existing notes representing Prince Philip and Queen Elizabeth II. These two notes already have "isPartnerOf" relationsdefined. + href="#root/_help_zEY4DaJG4YT5">relationsdefined.
                      • There are actually two "inverse" relations (one from Philip to Elizabeth and one from Elizabeth to Philip)
                      • @@ -64,8 +64,8 @@
                      • we create two new relations "isChildOf" targeting both Philip and Elizabeth
                        • now there's something unexpected - we can also see the relation to display - another "hasChild" relation. This is because there's a relation definition which - puts "isChildOf" as an "inverse" + another "hasChild" relation. This is because there's a relation definition which + puts "isChildOf" as an "inverse" relation of "hasChildOf" (and vice versa) and thus it is created automatically.
                      • @@ -77,7 +77,7 @@

                      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.

                      + 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.

                      @@ -86,8 +86,7 @@ the ones defined in the label.

                      See also

                    • diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html index 347cf2129..948943a35 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Render Note.html @@ -17,29 +17,29 @@ -

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

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

                      Dynamic content

                      A static HTML is generally not enough for Scripting. The next step is to automatically + href="#root/_help_CdNpE2pqjmI6">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");
                      +          href="#root/_help_6f9hih2hXXZk">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:

                      @@ -50,8 +50,8 @@ $dateEl.text(new Date());

                      Examples

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html index 2281ab37e..342965915 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Saved Search.html @@ -25,8 +25,8 @@

                      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 + Additionally, for workspaces, you + can use the #workspaceSearchHome label to specify a storage location for saved searches within that workspace.

                      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html index 960abcbc0..3251e58be 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text.html @@ -29,7 +29,7 @@

                      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.

                      + as read-only. For more information, see Read-Only Notes.

                      General Formatting

                      Since Trilium uses CKEditor, all of its formatting options are available here. You may use the graphical toolbar shown above, or enter formatting @@ -43,7 +43,7 @@

                    Lists

                    -

                    See Lists.

                    +

                    See Lists.

                    Blocks

                    • Block quote: Start a line with > followed by a space
                    • @@ -52,10 +52,10 @@

                      The following features are supported:

                      -

                      See Developer-specific formatting for +

                      See Developer-specific formatting for more information.

                      Headings

                      Create headings by starting a line with ## for heading 2, ### for diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html index 74c8cddf2..afb88712b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting.html @@ -23,7 +23,7 @@ as shell commands (git in this case).

                      To insert an inline code:

                        -
                      • Via the Formatting toolbar, +
                      • Via the Formatting toolbar, look for the button.
                      • Type `code` where code is the desired text to be automatically @@ -36,8 +36,9 @@

                        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 + 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.

                        @@ -46,7 +47,7 @@

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

                        diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html index 03d5bc551..376fa9b3a 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Developer-specific formatting/Code blocks.html @@ -18,11 +18,11 @@

                        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 blocks note + For larger files such as an entire log, see the Code blocks note type instead.

                        Inserting a code block

                          -
                        • Via the Formatting toolbar, +
                        • Via the Formatting toolbar, look for the button.
                            @@ -43,7 +43,7 @@

                            Syntax highlighting

                            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 notes + different than the one in Code Notes notes as different technologies are involved.

                            When the language is set to Auto-detected, Trilium will try to identify the programming language (or similar) that corresponds to the @@ -53,20 +53,20 @@ highlighting.

                            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: + button in the Formatting toolbar:

                            Adjusting the list of languages

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

                            -

                            The supported languages can be adjusted by going to Options, + href="#root/_help_6f9hih2hXXZk">Code Notes 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.

                            + to manually refresh the application.

                            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html index 21b6d391f..1190183ef 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Formatting toolbar.html @@ -15,7 +15,7 @@

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

                            -

                            To do so, go to Options and +

                            To do so, go to Options and look for the Text Notes section. There is a corresponding section called Formatting toolbar.

                            Floating

                            @@ -43,7 +43,7 @@

                            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.

                            + part of the Ribbon.

                            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html index 6bd65a081..20e4060fe 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Highlights list.html @@ -17,10 +17,10 @@ -

                            Similar to the Table of contents, +

                            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, + in the Right Sidebar, provided there is at least one highlighted text.

                            Highlighted text is defined as:

                              @@ -34,17 +34,17 @@
                              • Clicking on a highlighted text will scroll the document to its position.
                              • Pressing the close button will dismiss the list of highlights but it can - be shown again from the Floating buttons section.
                              • + be shown again from the Floating buttons section.

                              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 + href="#root/_hidden/_options/_help__optionsTextNotes">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.

                              + class="reference-link" href="#root/_help_zEY4DaJG4YT5">Attributes to add the #hideHighlightWidget label.

                            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html index ad6afcca6..0d81006c6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images.html @@ -15,11 +15,11 @@

                            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.

                            +

                            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.

                            diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html index 730e254ee..053848f3b 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Images/Image references.html @@ -18,21 +18,21 @@ height="553">

                            Image references are an easy way to embed the preview of another note - type into a Text 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 + button in the Floating buttons area.
                            4. +
                            5. Go to a Text note and use the Paste function to insert the reference to that note.

                            Interaction

                            @@ -42,7 +42,7 @@
                          • Clicking an image reference while Ctrl is pressed will open the target note in a new tab.
                          • Modifying the target note should also update the image reference. If that - doesn't happen, consider Refreshing the application.
                          • + doesn't happen, consider Refreshing the application.
                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html index f2fb35e5f..d0e9afb33 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Include Note.html @@ -17,7 +17,7 @@ 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, +

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

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html index 71d6c2b0a..357a19455 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Links.html @@ -50,7 +50,7 @@ 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 + particular note. See note map for details.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html index b503678db..b93723e19 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Text/Table of contents.html @@ -17,17 +17,17 @@ -

                          The table of contents appears in the Right Sidebar automatically +

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

                          Interaction

                          • Clicking on a heading will scroll the document to the position of the heading.
                          • Pressing the close button will dismiss the table of contents but it can - be shown again from the Floating buttons section.
                          • + be shown again from the Floating buttons section.

                          Global configuration

                          -

                          In Text Notes options, +

                          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:

                          @@ -37,7 +37,7 @@ to 1.

                        Per-note configuration

                        -

                        Use Attributes to +

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

                        • #toc=show will show the table of contents for that note regardless diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html index 58c391468..de93125df 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Note Types/Web View.html @@ -15,7 +15,7 @@

                          Configuration

                          A webview needs to know which URL to render, and it can be provided by - setting the webViewSrc label, + 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, diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html b/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html index caadb1cd5..bc73adeb3 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Quick Start.html @@ -17,16 +17,16 @@

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

                            -
                          1. Desktop installation +
                          2. Desktop installation

                          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. Server installation
                          3. -
                          4. Mobile frontend (optional)
                          5. +
                          6. Mobile frontend (optional)
                          7. PikaPods managed hosting
                          @@ -37,12 +37,12 @@ desktop application will sync and store the data locally so that it can be used when offline.

                            -
                          1. Server installation +
                          2. Server installation
                          3. -
                          4. Mobile frontend (optional)
                          5. -
                          6. Desktop installation +
                          7. Mobile frontend (optional)
                          8. +
                          9. Desktop installation
                          10. -
                          11. Synchronization +
                          12. Synchronization
                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html index d07d5bd82..8395938bd 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting.html @@ -13,10 +13,10 @@

                          Scripting

                          -

                          Trilium supports creating Code notes, +

                          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 + 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 @@ -33,7 +33,7 @@ we're onto something.

                          Use cases

                          Action handler

                          @@ -48,19 +48,19 @@ 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 - +

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

                          (#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.

                          + href="#root/_help_5668rwcirq1t">Advanced Showcases.

                          Events

                          -

                          See Events.

                          +

                          See Events.

                          Script API

                          -

                          See Script API.

                          +

                          See Script API.

                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html index 07f4db347..e921c5b16 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Widget Basics.html @@ -33,15 +33,15 @@ module.exports = new MyWidget();
                          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. Assign the #widget attribute to + the note.
                          6. Restart Trilium or reload the window.

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

                          + 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 = ``;
                           
                          @@ -84,7 +84,7 @@ module.exports = new MyWidget();
                          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 {
                          +          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"; }
                               
                          diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html
                          index 982da8bd3..188598fba 100644
                          --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html	
                          +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Custom Widgets/Word count widget.html	
                          @@ -15,9 +15,9 @@
                                 
                          -

                          Create a Code note +

                          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.
                          @@ -93,7 +93,7 @@ class WordCountWidget extends api.NoteContextAwareWidget {
                           }
                           
                           module.exports = new WordCountWidget();
                          -

                          After you make changes it is necessary to restart Trilium so +

                          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:

                          Events

      -

      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.

      +

      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 @@ -50,7 +50,7 @@ runOnInstance Specifies that the script should only run on a particular Trilium instance. + href="#root/_help_c5xB8m4g2IY6">Trilium instance. runAtHour @@ -63,7 +63,7 @@

      Entity events

      -

      Other events are bound to some entity, these are defined as relations - +

      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).

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html index dca84feef..5ce1b1aab 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Examples/New Task launcher button.html @@ -14,17 +14,16 @@

      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.

      + href="#root/_help_xYjQUYhpbUEW">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 +
      2. First, create a new Code note type with the JS frontend language.
      3. Define the #run=frontendStartup label in Attributes.
      4. + href="#root/_help_zEY4DaJG4YT5">Attributes.

      Content of the script

      Copy-paste the following script:

      api.addButtonToToolbar({
      @@ -45,7 +44,7 @@
               

      Testing the functionality

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

      + href="#root/_help_s8alTXmpFR61">refresh the application.

      Understanding how the script works

      @@ -64,8 +63,8 @@ }); diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html index 1ad9475ba..8dd622642 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Scripting/Frontend Basics.html @@ -18,12 +18,12 @@ 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.

      + 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.

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

      @@ -35,7 +35,7 @@
    29. daily - executes once a day on backend.
    30. Entity Events

      -

      These events are triggered by certain relations to +

      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).

        @@ -95,7 +95,7 @@ notes.

      Tutorial

      -

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

      +

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

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html index 607ace904..9f205bce6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Creating a custom theme.html @@ -71,7 +71,7 @@

      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) + 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 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html index acf60eba1..11b001cf6 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Theme development/Reference.html @@ -148,7 +148,7 @@ body.electron:not(.native-titlebar) { background-color: var(--workspace-tab-background-color); }

      Custom fonts

      -

      Currently the only way to include a custom font is to use Custom resource providers. +

      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.

      Dark and light themes

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html index 43580ab7a..da121ac67 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting.html @@ -31,7 +31,7 @@ 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, + 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.

      @@ -40,21 +40,22 @@

      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 +

      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.

      + can restore from a backup.

      Forgotten Password

      If you forget your password:

      • Protected notes are irretrievable without the password.
      • Unprotected notes can be recovered. Follow these steps:
      -

      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';
      +        

      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';
      @@ -70,8 +71,8 @@ UPDATE options SET value = 'QpC8XoiYYeqHPtHKRtbNxfTHsk+pEBqVBODYp0FkPBa22tlBBKBM diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html index 42f0e33b5..c25b0a682 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Anonymized Database.html @@ -17,7 +17,7 @@

      In certain scenarios, understanding the structure of a database is crucial - for troubleshooting issues. However, sharing your actual database file + 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.

      @@ -27,19 +27,19 @@ 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, + 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). + 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
      +

      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.

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html index bc7d39fcd..f2c6f03bf 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Error logs.html @@ -16,8 +16,8 @@

      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. +

      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 @@ -49,7 +49,7 @@ 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.

      + 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.

      diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html index cc73c5995..fcd6a2533 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Troubleshooting/Synchronization fails with 504.html @@ -23,7 +23,7 @@ proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300;

      And restart the server.

      -

      See Nginx Proxy Setup for +

      See Nginx Proxy Setup for more information about the Nginx setup.

      If it still doesn't work, try increasing the timeout.

      From feb43193b1f5aacc27448694853449f09742466e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 9 Apr 2025 16:47:07 +0300 Subject: [PATCH 44/69] feat(docs): document search in note functionality --- docs/User Guide/!!!meta.json | 76 +++++++++++++++++- .../Navigation/Search in note.md | 29 +++++++ .../Navigation/Search in note_image.png | Bin 0 -> 13019 bytes .../Navigation/Search.md | 4 +- .../Navigation/Search_image.png | Bin 0 -> 94749 bytes .../app/doc_notes/en/User Guide/!!!meta.json | 76 +++++++++++++++++- .../Navigation/Search in note.html | 69 ++++++++++++++++ .../Navigation/Search in note_image.png | Bin 0 -> 13019 bytes .../Navigation/Search.html | 9 +-- .../Navigation/Search_image.png | Bin 0 -> 94749 bytes .../doc_notes/en/User Guide/navigation.html | 3 + 11 files changed, 256 insertions(+), 10 deletions(-) create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.md create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note_image.png create mode 100644 docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.html create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note_image.png create mode 100644 src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search_image.png diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 67e2a5f94..7e724502c 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -3527,7 +3527,16 @@ ], "format": "markdown", "dataFileName": "Search.md", - "attachments": [] + "attachments": [ + { + "attachmentId": "WkhcA4FN7sGX", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Search_image.png" + } + ] }, { "isClone": false, @@ -3748,6 +3757,71 @@ "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": "label", + "name": "iconClass", + "value": "bx bx-search-alt-2", + "isInheritable": false, + "position": 10 + }, + { + "type": "relation", + "name": "internalLink", + "value": "8YBEPzcpUgxw", + "isInheritable": false, + "position": 20 + }, + { + "type": "relation", + "name": "internalLink", + "value": "6f9hih2hXXZk", + "isInheritable": false, + "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "iPIMuisry3hd", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "MI26XDLSAlCD", + "isInheritable": false, + "position": 50 + } + ], + "format": "markdown", + "dataFileName": "Search in note.md", + "attachments": [ + { + "attachmentId": "vEq0g2DHEh3O", + "title": "image.png", + "role": "image", + "mime": "image/png", + "position": 10, + "dataFileName": "Search in note_image.png" + } + ] } ] }, diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.md new file mode 100644 index 000000000..5acbd01c9 --- /dev/null +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note.md @@ -0,0 +1,29 @@ +# Search in note +
      + +Local search allows you to search within the currently displayed note.  + +## Alternatives + +* Pressing Ctrl+F while in a browser while not focused in a Text or a Code note will trigger the browser's native search. This will also find text that is part of Trilium's UI. +* Pressing Ctrl+F in a Text note will reveal CKEditor's search functionality. + +## Accessing the search + +* On desktop, pressCtrl + F +* From the Note buttons, look for the context menu and select _Search in note_. + +## Interaction + +* Finding: + * Fill in the _Find in text…_ with the text to search for. + * The search will be executed automatically in the background. + * Use up and down arrows of the text box to navigate between results. +* Replacing: + * Fill in the _Find in text_… field with the text to replace. + * Fill in the _Replace with…_ field the text to replace it with. + * Press _Replace_ to replace only the current result. + * Press _Replace all_ to replace all of them at once. +* Options: + * _Case sensitive_ – the search will distinguish upper case characters from lower case (e.g. searching for Hello will not match `hello`). + * _Match words_ - the search will find only exact word matches (e.g. searching for `Java` will not match `JavaScript`). \ No newline at end of file diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a3aa784ea155929c32555274d22b3dfb9b499738 GIT binary patch literal 13019 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 LbpDmJ{)7JmQZ$T{ literal 0 HcmV?d00001 diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md index 945acdfe5..f434850b0 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md @@ -1,7 +1,5 @@ # Search -## Local Search - -Local search allows you to search within the currently displayed note. To initiate a local search, press Ctrl + F. If using a web browser, this will be handled by the browser's native search functionality. In the desktop (electron) version, a separate dialog will apear. +
      ## Note Search diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search_image.png b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search_image.png new file mode 100644 index 0000000000000000000000000000000000000000..dc70b2294ffffa8dd962ac3535e727ba7887879d GIT binary patch literal 94749 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 + + + + + + + Search in note + + + +

      +

      Search in note

      + +
      +
      + +
      +

      Local search allows you to search within the currently displayed note. 

      +

      Alternatives

      +
        +
      • Pressing Ctrl+F while in a browser while not focused in a Text or + a Code note + will trigger the browser's native search. This will also find text that + is part of Trilium's UI.
      • +
      • Pressing Ctrl+F in a Text note + will reveal CKEditor's + search functionality.
      • +
      +

      Accessing the search

      +
        +
      • On desktop, pressCtrl + F +
      • +
      • From the Note buttons, + look for the context menu and select Search in note.
      • +
      +

      Interaction

      +
        +
      • Finding: +
          +
        • Fill in the Find in text… with the text to search for.
        • +
        • The search will be executed automatically in the background.
        • +
        • Use up and down arrows of the text box to navigate between results.
        • +
        +
      • +
      • Replacing: +
          +
        • Fill in the Find in text… field with the text to replace.
        • +
        • Fill in the Replace with… field the text to replace it with.
        • +
        • Press Replace to replace only the current result.
        • +
        • Press Replace all to replace all of them at once.
        • +
        +
      • +
      • Options: +
          +
        • Case sensitive – the search will distinguish upper case characters + from lower case (e.g. searching for Hello will not match hello).
        • +
        • Match words - the search will find only exact word matches (e.g. + searching for Java will not match JavaScript).
        • +
        +
      • +
      +
      +
      + + + \ No newline at end of file diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search in note_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a3aa784ea155929c32555274d22b3dfb9b499738 GIT binary patch literal 13019 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 LbpDmJ{)7JmQZ$T{ literal 0 HcmV?d00001 diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html index b0cfa115d..74ff9a57d 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html @@ -13,11 +13,10 @@

      Search

      -

      Local Search

      -

      Local search allows you to search within the currently displayed note. - To initiate a local search, press Ctrl + F. If using - a web browser, this will be handled by the browser's native search functionality. - In the desktop (electron) version, a separate dialog will apear.

      +
      + +

      Note Search

      Note search enables you to find notes by searching for text in the title, content, or attributes of the notes. diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search_image.png b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search_image.png new file mode 100644 index 0000000000000000000000000000000000000000..dc70b2294ffffa8dd962ac3535e727ba7887879d GIT binary patch literal 94749 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 Notes +

    31. Search in note +
    32. Date: Wed, 9 Apr 2025 17:06:45 +0300 Subject: [PATCH 45/69] feat(docs): document basic search functionality --- docs/User Guide/!!!meta.json | 77 ++++++++++++ .../Navigation/Search.md | 54 ++++++++- .../app/doc_notes/en/User Guide/!!!meta.json | 77 ++++++++++++ .../Navigation/Search.html | 111 +++++++++++++++++- 4 files changed, 314 insertions(+), 5 deletions(-) diff --git a/docs/User Guide/!!!meta.json b/docs/User Guide/!!!meta.json index 7e724502c..b6647c8bd 100644 --- a/docs/User Guide/!!!meta.json +++ b/docs/User Guide/!!!meta.json @@ -3523,6 +3523,83 @@ "value": "bx bx-search-alt-2", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OR8WJ7Iz9K4U", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wX4HbRucYSDD", + "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": "ivYnonVFBxbQ", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 140 } ], "format": "markdown", diff --git a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md index f434850b0..fe7e029f6 100644 --- a/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md +++ b/docs/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.md @@ -1,11 +1,59 @@ # Search
      -## Note Search - Note search enables you to find notes by searching for text in the title, content, or [attributes](../../Advanced%20Usage/Attributes.md) of the notes. You also have the option to save your searches, which will create a special search note which is visible on your navigation tree and contains the search results as sub-items. -To search for notes, click on the magnifying glass icon on the toolbar or press the Ctrl + S keyboard [shortcut](../Keyboard%20Shortcuts.md). +## Accessing the search + +* From the 
      Launch Bar, look for the dedicated search button. +* To limit the search to a note and its children, select _Search from subtree_ from the Note tree contextual menu or press Ctrl+Shift+S. + +## Interaction + +To search for notes, click on the magnifying glass icon on the toolbar or press the keyboard [shortcut](../Keyboard%20Shortcuts.md). + +1. Set the text to search for in the _Search string_ field. + 1. Apart from searching for words ad-literam, there is also the possibility to search for attributes or properties of notes. + 2. See the examples below for more information. +2. To limit the search to a note and its sub-children, set a note in _Ancestor_. + 1. This value is also pre-filled if the search is triggered from a [hoisted note](Note%20Hoisting.md) or a [workspace](Workspaces.md). + 2. To search the entire database, keep the value empty. +3. To limit the search to only a few levels of hierarchy (e.g. look in sub-children but not in sub-sub-children of a note), set the _depth_ field to one of the provided values. +4. In addition to that, the search can be configured via the _Add search options_ buttons, as described in the follow-up section. +5. Press _Search_ to trigger the search. The results are displayed below the search configuration pane. +6. The _Search & Execute actions_ button is only relevant if at least one action has been added (as described in the section below). +7. The _Save to note_ will create a new note with the search configuration. For more information, see Saved Search. + +## Search options + +Click on which search option to apply from the Add search option section. + +* For each search option selected, the search configuration will update to reveal the entry. Each search option will have its own configuration. +* To remove a search option, simply press the X button to the right of it. + +The options available are: + +1. Search script + 1. This feature allows writing a Code note that will handle the search on its own. +2. Fast search + 1. The search will not look into the content of the notes, but it will still look into note titles and attributes, relations (based on the search query). + 2. This method can speed up the search considerably for large [databases](../../Advanced%20Usage/Database.md). +3. Include archived + 1. Archived Notes will also be included in the results, whereas otherwise they would be ignored. +4. Order by + 1. Allows changing the criteria for ordering the results, for example to order by creation date or alphabetically instead of by relevancy (default). + 2. It's also possible to change the order (ascending or descending) of the results. +5. Limit + 1. Limits the results to a given maximum. + 2. This can help if the number of results would otherwise be high, at the cost of not being able to view all the results. +6. Debug + 1. This will print additional information in the server log (see Error logs), regarding how the search expression was parsed. + 2. This function is especially useful after understanding the search functionality in detail, in order to determine why a complex search query is not working as expected. +7. Action + 1. Apart from just searching, it is also possible to apply actions such as to add a label or a relation to the notes that have been matched by the search. + 2. Unlike other search configurations, here it's possible to apply the same action multiple times (i.e. in order to be able to apply multiple labels to notes). + 3. The actions given are the same as the ones in Bulk Actions, which is an alternative for operating directly with notes within the Note Tree. + 4. After defining the actions, first press _Search_ to check the matched notes and then press _Search & Execute actions_ to trigger the actions. ### Simple Note Search Examples diff --git a/src/public/app/doc_notes/en/User Guide/!!!meta.json b/src/public/app/doc_notes/en/User Guide/!!!meta.json index 5956cd216..1fdde0cea 100644 --- a/src/public/app/doc_notes/en/User Guide/!!!meta.json +++ b/src/public/app/doc_notes/en/User Guide/!!!meta.json @@ -3523,6 +3523,83 @@ "value": "bx bx-search-alt-2", "isInheritable": false, "position": 30 + }, + { + "type": "relation", + "name": "internalLink", + "value": "xYmIYSP6wE3F", + "isInheritable": false, + "position": 40 + }, + { + "type": "relation", + "name": "internalLink", + "value": "YtSN43OrfzaA", + "isInheritable": false, + "position": 50 + }, + { + "type": "relation", + "name": "internalLink", + "value": "OR8WJ7Iz9K4U", + "isInheritable": false, + "position": 60 + }, + { + "type": "relation", + "name": "internalLink", + "value": "9sRHySam5fXb", + "isInheritable": false, + "position": 70 + }, + { + "type": "relation", + "name": "internalLink", + "value": "m523cpzocqaD", + "isInheritable": false, + "position": 80 + }, + { + "type": "relation", + "name": "internalLink", + "value": "wX4HbRucYSDD", + "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": "ivYnonVFBxbQ", + "isInheritable": false, + "position": 130 + }, + { + "type": "relation", + "name": "internalLink", + "value": "oPVyFC7WL2Lp", + "isInheritable": false, + "position": 140 } ], "format": "html", diff --git a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html index 74ff9a57d..8d02358af 100644 --- a/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html +++ b/src/public/app/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Navigation/Search.html @@ -17,14 +17,121 @@ -

      Note Search

      Note search enables you to find notes by searching for text in the title, content, or attributes of the notes. You also have the option to save your searches, which will create a special search note which is visible on your navigation tree and contains the search results as sub-items.

      +

      Accessing the search

      +
        +
      • From the Launch Bar, + look for the dedicated search button.
      • +
      • To limit the search to a note and its children, select Search from subtree from + the Note tree contextual menu or + press Ctrl+Shift+S.
      • +
      +

      Interaction

      To search for notes, click on the magnifying glass icon on the toolbar - or press the Ctrl + S keyboard shortcut.

      + or press the keyboard shortcut.

      +
        +
      1. Set the text to search for in the Search string field. +
          +
        1. Apart from searching for words ad-literam, there is also the possibility + to search for attributes or properties of notes.
        2. +
        3. See the examples below for more information.
        4. +
        +
      2. +
      3. To limit the search to a note and its sub-children, set a note in Ancestor. +
          +
        1. This value is also pre-filled if the search is triggered from a hoisted note or + a workspace.
        2. +
        3. To search the entire database, keep the value empty.
        4. +
        +
      4. +
      5. To limit the search to only a few levels of hierarchy (e.g. look in sub-children + but not in sub-sub-children of a note), set the depth field to one + of the provided values.
      6. +
      7. In addition to that, the search can be configured via the Add search options buttons, + as described in the follow-up section.
      8. +
      9. Press Search to trigger the search. The results are displayed below + the search configuration pane.
      10. +
      11. The Search & Execute actions button is only relevant if at + least one action has been added (as described in the section below).
      12. +
      13. The Save to note will create a new note with the search configuration. + For more information, see Saved Search.
      14. +
      +

      Search options

      +

      Click on which search option to apply from the Add search option section.

      +
        +
      • For each search option selected, the search configuration will update + to reveal the entry. Each search option will have its own configuration.
      • +
      • To remove a search option, simply press the X button to the right of it.
      • +
      +

      The options available are:

      +
        +
      1. Search script +
          +
        1. This feature allows writing a Code note + that will handle the search on its own.
        2. +
        +
      2. +
      3. Fast search +
          +
        1. The search will not look into the content of the notes, but it will still + look into note titles and attributes, relations (based on the search query).
        2. +
        3. This method can speed up the search considerably for large databases.
        4. +
        +
      4. +
      5. Include archived +
          +
        1. Archived Notes will + also be included in the results, whereas otherwise they would be ignored.
        2. +
        +
      6. +
      7. Order by +
          +
        1. Allows changing the criteria for ordering the results, for example to + order by creation date or alphabetically instead of by relevancy (default).
        2. +
        3. It's also possible to change the order (ascending or descending) of the + results.
        4. +
        +
      8. +
      9. Limit +
          +
        1. Limits the results to a given maximum.
        2. +
        3. This can help if the number of results would otherwise be high, at the + cost of not being able to view all the results.
        4. +
        +
      10. +
      11. Debug +
          +
        1. This will print additional information in the server log (see  + Error logs), regarding how the search expression was parsed.
        2. +
        3. This function is especially useful after understanding the search functionality + in detail, in order to determine why a complex search query is not working + as expected.
        4. +
        +
      12. +
      13. Action +
          +
        1. Apart from just searching, it is also possible to apply actions such as + to add a label or a relation to the notes that have been matched by the + search.
        2. +
        3. Unlike other search configurations, here it's possible to apply the same + action multiple times (i.e. in order to be able to apply multiple labels + to notes).
        4. +
        5. The actions given are the same as the ones in Bulk Actions, + which is an alternative for operating directly with notes within the  + Note Tree.
        6. +
        7. After defining the actions, first press Search to check the matched + notes and then press Search & Execute actions to trigger the + actions.
        8. +
        +
      14. +

      Simple Note Search Examples

      • rings tolkien: Full-text search to find notes containing From 6e48db2d0c8e6ec4fb371634e4bdd5fc68b86329 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 01:50:34 +0000 Subject: [PATCH 46/69] chore(deps): update dependency electron to v35.1.5 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39bd7f190..b7cecaf6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -159,7 +159,7 @@ "copy-webpack-plugin": "13.0.0", "cross-env": "7.0.3", "css-loader": "7.1.2", - "electron": "35.1.4", + "electron": "35.1.5", "eslint": "9.24.0", "eslint-plugin-simple-import-sort": "12.1.1", "esm": "3.2.25", @@ -9569,9 +9569,9 @@ } }, "node_modules/electron": { - "version": "35.1.4", - "resolved": "https://registry.npmjs.org/electron/-/electron-35.1.4.tgz", - "integrity": "sha512-8HjE2wqxY//T09Of8k1eTpK/NeTG2FkTyRD+fyKXmec4wZVscGgZcmWFC0HYN4ktyHAjtplpxdFXjtqRnvzBMg==", + "version": "35.1.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-35.1.5.tgz", + "integrity": "sha512-LolvbKKQUSCGvEwbEQNt1cxD1t+YYClDNwBIjn4d28KM8FSqUn9zJuf6AbqNA7tVs9OFl/EQpmg/m4lZV1hH8g==", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 9b187764a..010b42a9f 100644 --- a/package.json +++ b/package.json @@ -218,7 +218,7 @@ "copy-webpack-plugin": "13.0.0", "cross-env": "7.0.3", "css-loader": "7.1.2", - "electron": "35.1.4", + "electron": "35.1.5", "eslint": "9.24.0", "eslint-plugin-simple-import-sort": "12.1.1", "esm": "3.2.25", From 572de20bd31373fdaedc0be5f390a33bd65c2103 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 01:50:46 +0000 Subject: [PATCH 47/69] chore(deps): update dependency typedoc to v0.28.2 --- package-lock.json | 46 ++++++++++++++++++++++++++++++++++------------ package.json | 2 +- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39bd7f190..deb965187 100644 --- a/package-lock.json +++ b/package-lock.json @@ -193,7 +193,7 @@ "ts-loader": "9.5.2", "tslib": "2.8.1", "tsx": "4.19.3", - "typedoc": "0.28.1", + "typedoc": "0.28.2", "typescript": "5.8.3", "typescript-eslint": "8.29.0", "vanilla-js-wheel-zoom": "9.0.4", @@ -2635,13 +2635,15 @@ "license": "MIT" }, "node_modules/@gerrit0/mini-shiki": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.2.1.tgz", - "integrity": "sha512-HbzRC6MKB6U8kQhczz0APKPIzFHTrcqhaC7es2EXInq1SpjPVnpVSIsBe6hNoLWqqCx1n5VKiPXq6PfXnHZKOQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.2.2.tgz", + "integrity": "sha512-vaZNGhGLKMY14HbF53xxHNgFO9Wz+t5lTlGNpl2N9xFiKQ0I5oIe0vKjU9dh7Nb3Dw6lZ7wqUE0ri+zcdpnK+Q==", "dev": true, "license": "MIT", "dependencies": { "@shikijs/engine-oniguruma": "^3.2.1", + "@shikijs/langs": "^3.2.1", + "@shikijs/themes": "^3.2.1", "@shikijs/types": "^3.2.1", "@shikijs/vscode-textmate": "^10.0.2" } @@ -4399,6 +4401,26 @@ "@shikijs/vscode-textmate": "^10.0.2" } }, + "node_modules/@shikijs/langs": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.2.1.tgz", + "integrity": "sha512-If0iDHYRSGbihiA8+7uRsgb1er1Yj11pwpX1c6HLYnizDsKAw5iaT3JXj5ZpaimXSWky/IhxTm7C6nkiYVym+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.2.1" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.2.1.tgz", + "integrity": "sha512-k5DKJUT8IldBvAm8WcrDT5+7GA7se6lLksR+2E3SvyqGTyFMzU2F9Gb7rmD+t+Pga1MKrYFxDIeyWjMZWM6uBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.2.1" + } + }, "node_modules/@shikijs/types": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.2.1.tgz", @@ -20320,17 +20342,17 @@ } }, "node_modules/typedoc": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.1.tgz", - "integrity": "sha512-Mn2VPNMaxoe/hlBiLriG4U55oyAa3Xo+8HbtEwV7F5WEOPXqtxzGuMZhJYHaqFJpajeQ6ZDUC2c990NAtTbdgw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.2.tgz", + "integrity": "sha512-9Giuv+eppFKnJ0oi+vxqLM817b/IrIsEMYgy3jj6zdvppAfDqV3d6DXL2vXUg2TnlL62V48th25Zf/tcQKAJdg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@gerrit0/mini-shiki": "^3.2.1", + "@gerrit0/mini-shiki": "^3.2.2", "lunr": "^2.3.9", "markdown-it": "^14.1.0", "minimatch": "^9.0.5", - "yaml": "^2.7.0 " + "yaml": "^2.7.1" }, "bin": { "typedoc": "bin/typedoc" @@ -21646,9 +21668,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", + "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", "dev": true, "license": "ISC", "bin": { diff --git a/package.json b/package.json index 9b187764a..4aa424c1e 100644 --- a/package.json +++ b/package.json @@ -252,7 +252,7 @@ "ts-loader": "9.5.2", "tslib": "2.8.1", "tsx": "4.19.3", - "typedoc": "0.28.1", + "typedoc": "0.28.2", "typescript": "5.8.3", "typescript-eslint": "8.29.0", "vanilla-js-wheel-zoom": "9.0.4", From b676086972f3901dd7844de23be3b30ee83f3cb0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 01:51:02 +0000 Subject: [PATCH 48/69] chore(deps): update dependency typescript-eslint to v8.29.1 --- package-lock.json | 98 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39bd7f190..cfcba00ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -195,7 +195,7 @@ "tsx": "4.19.3", "typedoc": "0.28.1", "typescript": "5.8.3", - "typescript-eslint": "8.29.0", + "typescript-eslint": "8.29.1", "vanilla-js-wheel-zoom": "9.0.4", "vitest": "3.1.1", "webpack": "5.98.0", @@ -5550,17 +5550,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", - "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz", + "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/type-utils": "8.29.0", - "@typescript-eslint/utils": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/type-utils": "8.29.1", + "@typescript-eslint/utils": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -5580,16 +5580,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", - "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz", + "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4" }, "engines": { @@ -5605,14 +5605,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", - "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", + "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0" + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5623,14 +5623,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", - "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz", + "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.1", + "@typescript-eslint/utils": "8.29.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -5647,9 +5647,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", - "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", + "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", "dev": true, "license": "MIT", "engines": { @@ -5661,14 +5661,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", - "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", + "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -5714,16 +5714,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", + "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0" + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5738,13 +5738,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", - "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", + "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/types": "8.29.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -20384,15 +20384,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.0.tgz", - "integrity": "sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.1.tgz", + "integrity": "sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.29.0", - "@typescript-eslint/parser": "8.29.0", - "@typescript-eslint/utils": "8.29.0" + "@typescript-eslint/eslint-plugin": "8.29.1", + "@typescript-eslint/parser": "8.29.1", + "@typescript-eslint/utils": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 9b187764a..f0da1741c 100644 --- a/package.json +++ b/package.json @@ -254,7 +254,7 @@ "tsx": "4.19.3", "typedoc": "0.28.1", "typescript": "5.8.3", - "typescript-eslint": "8.29.0", + "typescript-eslint": "8.29.1", "vanilla-js-wheel-zoom": "9.0.4", "vitest": "3.1.1", "webpack": "5.98.0", From aee169dd4c208faf91155b5414c60383bff43721 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 01:51:23 +0000 Subject: [PATCH 49/69] fix(deps): update dependency marked to v15.0.8 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39bd7f190..57fb62f22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,7 +62,7 @@ "js-yaml": "4.1.0", "jsdom": "26.0.0", "katex": "0.16.21", - "marked": "15.0.7", + "marked": "15.0.8", "mime-types": "3.0.1", "multer": "1.4.5-lts.2", "normalize-strings": "1.1.1", @@ -14498,9 +14498,9 @@ } }, "node_modules/marked": { - "version": "15.0.7", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", - "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==", + "version": "15.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.8.tgz", + "integrity": "sha512-rli4l2LyZqpQuRve5C0rkn6pj3hT8EWPC+zkAxFTAJLxRbENfTAhEQq9itrmf1Y81QtAX5D/MYlGlIomNgj9lA==", "license": "MIT", "bin": { "marked": "bin/marked.js" diff --git a/package.json b/package.json index 9b187764a..573f4cc9e 100644 --- a/package.json +++ b/package.json @@ -124,7 +124,7 @@ "js-yaml": "4.1.0", "jsdom": "26.0.0", "katex": "0.16.21", - "marked": "15.0.7", + "marked": "15.0.8", "mime-types": "3.0.1", "multer": "1.4.5-lts.2", "normalize-strings": "1.1.1", From 30e9f01a6c8c4f3efd12d5afee1e6cfc76262550 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 01:51:33 +0000 Subject: [PATCH 50/69] chore(deps): update dependency webpack to v5.99.5 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39bd7f190..e8f216407 100644 --- a/package-lock.json +++ b/package-lock.json @@ -198,7 +198,7 @@ "typescript-eslint": "8.29.0", "vanilla-js-wheel-zoom": "9.0.4", "vitest": "3.1.1", - "webpack": "5.98.0", + "webpack": "5.99.5", "webpack-cli": "6.0.1", "webpack-dev-middleware": "7.4.2" }, @@ -21127,9 +21127,9 @@ } }, "node_modules/webpack": { - "version": "5.98.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", - "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", + "version": "5.99.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.5.tgz", + "integrity": "sha512-q+vHBa6H9qwBLUlHL4Y7L0L1/LlyBKZtS9FHNCQmtayxjI5RKC9yD8gpvLeqGv5lCQp1Re04yi0MF40pf30Pvg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 9b187764a..6f5355228 100644 --- a/package.json +++ b/package.json @@ -257,7 +257,7 @@ "typescript-eslint": "8.29.0", "vanilla-js-wheel-zoom": "9.0.4", "vitest": "3.1.1", - "webpack": "5.98.0", + "webpack": "5.99.5", "webpack-cli": "6.0.1", "webpack-dev-middleware": "7.4.2" }, From ce4b5b819399b8deb049740d6960fc82428bbc42 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 09:45:05 +0300 Subject: [PATCH 51/69] fix(desktop): missing --- src/views/desktop.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/desktop.ejs b/src/views/desktop.ejs index 40f369c85..1e7112e78 100644 --- a/src/views/desktop.ejs +++ b/src/views/desktop.ejs @@ -72,5 +72,5 @@ - + From c422c3e5b95172c9da6e792d276de4e2271b344a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 10:35:24 +0300 Subject: [PATCH 52/69] fix(mobile): detection when authentication is disabled (closes #1660) --- src/express.d.ts | 2 ++ src/public/app/login.ts | 27 --------------------------- src/routes/index.ts | 35 +++++++++++++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 29 deletions(-) diff --git a/src/express.d.ts b/src/express.d.ts index 846c5b9b2..f2cb77c78 100644 --- a/src/express.d.ts +++ b/src/express.d.ts @@ -20,6 +20,8 @@ export declare module "express-serve-static-core" { "trilium-component-id"?: string; "trilium-local-now-datetime"?: string; "trilium-hoisted-note-id"?: string; + + "user-agent"?: string; }; } } diff --git a/src/public/app/login.ts b/src/public/app/login.ts index 5fc7d6293..5db5cfd4e 100644 --- a/src/public/app/login.ts +++ b/src/public/app/login.ts @@ -3,30 +3,3 @@ import "../stylesheets/bootstrap.scss"; // @ts-ignore - module = undefined // Required for correct loading of scripts in Electron if (typeof module === 'object') {window.module = module; module = undefined;} - -const device = getDeviceType(); -console.log("Setting device cookie to:", device); -setCookie("trilium-device", device); - -function setCookie(name: string, value?: string) { - const date = new Date(Date.now() + 10 * 365 * 24 * 60 * 60 * 1000); - const expires = "; expires=" + date.toUTCString(); - - document.cookie = name + "=" + (value || "") + expires + "; path=/"; -} - -function getDeviceType() { - if (window.location.search === "?desktop") return "desktop"; - if (window.location.search === "?mobile") return "mobile"; - return isMobile() ? "mobile" : "desktop"; -} - -// https://stackoverflow.com/a/73731646/944162 -function isMobile() { - const mQ = matchMedia?.("(pointer:coarse)"); - if (mQ?.media === "(pointer:coarse)") return !!mQ.matches; - - if ("orientation" in window) return true; - const userAgentsRegEx = /\b(Android|iPhone|iPad|iPod|Windows Phone|BlackBerry|webOS|IEMobile)\b/i; - return userAgentsRegEx.test(navigator.userAgent); -} diff --git a/src/routes/index.ts b/src/routes/index.ts index e7cd36228..79a40f186 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -17,8 +17,7 @@ import type BNote from "../becca/entities/bnote.js"; function index(req: Request, res: Response) { const options = optionService.getOptionMap(); - - const view = !isElectron && req.cookies["trilium-device"] === "mobile" ? "mobile" : "desktop"; + const view = getView(req); //'overwrite' set to false (default) => the existing token will be re-used and validated //'validateOnReuse' set to false => if validation fails, generate a new token instead of throwing an error @@ -61,6 +60,38 @@ function index(req: Request, res: Response) { }); } +function getView(req: Request): "desktop" | "mobile" { + // Electron always uses the desktop view. + if (isElectron) { + return "desktop"; + } + + // Respect user's manual override via URL. + if ("desktop" in req.query) { + return "desktop"; + } else if ("mobile" in req.query) { + return "mobile"; + } + + // Respect user's manual override via cookie. + const cookie = req.cookies?.["trilium-device"]; + if (cookie === "mobile" || cookie === "desktop") { + return cookie; + } + + // Try to detect based on user agent. + const userAgent = req.headers["user-agent"]; + if (userAgent) { + // TODO: Deduplicate regex with client-side login.ts. + const mobileRegex = /\b(Android|iPhone|iPad|iPod|Windows Phone|BlackBerry|webOS|IEMobile)\b/i; + if (mobileRegex.test(userAgent)) { + return "mobile"; + } + } + + return "desktop"; +} + function getThemeCssUrl(theme: string, themeNote: BNote | null) { if (theme === "auto") { return `${assetPath}/stylesheets/theme.css`; From fbba76bbb3e1da5d416dc8858a7e5de5bc09609b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 11:49:52 +0300 Subject: [PATCH 53/69] refactor(components): split editor toolbar for mobile --- src/public/app/layouts/mobile_layout.ts | 4 +- .../ribbon_widgets/classic_editor_toolbar.ts | 89 +---------- .../ribbon_widgets/mobile_editor_toolbar.ts | 139 ++++++++++++++++++ 3 files changed, 142 insertions(+), 90 deletions(-) create mode 100644 src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts diff --git a/src/public/app/layouts/mobile_layout.ts b/src/public/app/layouts/mobile_layout.ts index 6032c14c5..e7cea7576 100644 --- a/src/public/app/layouts/mobile_layout.ts +++ b/src/public/app/layouts/mobile_layout.ts @@ -22,7 +22,6 @@ import LauncherContainer from "../widgets/containers/launcher_container.js"; import RootContainer from "../widgets/containers/root_container.js"; import SharedInfoWidget from "../widgets/shared_info.js"; import PromotedAttributesWidget from "../widgets/ribbon_widgets/promoted_attributes.js"; -import ClassicEditorToolbar from "../widgets/ribbon_widgets/classic_editor_toolbar.js"; import SidebarContainer from "../widgets/mobile_widgets/sidebar_container.js"; import AboutDialog from "../widgets/dialogs/about.js"; import HelpDialog from "../widgets/dialogs/help.js"; @@ -32,6 +31,7 @@ import JumpToNoteDialog from "../widgets/dialogs/jump_to_note.js"; import RecentChangesDialog from "../widgets/dialogs/recent_changes.js"; import PromptDialog from "../widgets/dialogs/prompt.js"; import RefreshButton from "../widgets/floating_buttons/refresh_button.js"; +import MobileEditorToolbar from "../widgets/ribbon_widgets/mobile_editor_toolbar.js"; const MOBILE_CSS = ` `; @@ -82,13 +35,6 @@ const TPL = /*html*/`\ */ export default class ClassicEditorToolbar extends NoteContextAwareWidget { - private observer: MutationObserver; - - constructor() { - super(); - this.observer = new MutationObserver((e) => this.#onDropdownStateChanged(e)); - } - get name() { return "classicEditor"; } @@ -100,33 +46,6 @@ export default class ClassicEditorToolbar extends NoteContextAwareWidget { doRender() { this.$widget = $(TPL); this.contentSized(); - - if (utils.isMobile()) { - // The virtual keyboard obscures the editing toolbar so we have to reposition by calculating the height of the keyboard. - window.visualViewport?.addEventListener("resize", () => this.#adjustPosition()); - window.addEventListener("scroll", () => this.#adjustPosition()); - - // Observe when a dropdown is expanded to apply a style that allows the dropdown to be visible, since we can't have the element both visible and the toolbar scrollable. - this.observer.disconnect(); - this.observer.observe(this.$widget[0], { - attributeFilter: ["aria-expanded"], - subtree: true - }); - } - } - - #onDropdownStateChanged(e: MutationRecord[]) { - const dropdownActive = e.map((e) => (e.target as any).ariaExpanded === "true").reduce((acc, e) => acc && e); - this.$widget[0].classList.toggle("dropdown-active", dropdownActive); - } - - #adjustPosition() { - let bottom = window.innerHeight - (window.visualViewport?.height || 0); - - // When the keyboard is not visible, align it to the launcher bar instead. - bottom = Math.max(bottom, document.getElementById("mobile-bottom-bar")?.offsetHeight || 0); - - this.$widget.css("bottom", `${bottom}px`); } async getTitle() { @@ -139,7 +58,7 @@ export default class ClassicEditorToolbar extends NoteContextAwareWidget { } async #shouldDisplay() { - if (utils.isDesktop() && options.get("textNoteEditorType") !== "ckeditor-classic") { + if (options.get("textNoteEditorType") !== "ckeditor-classic") { return false; } @@ -154,10 +73,4 @@ export default class ClassicEditorToolbar extends NoteContextAwareWidget { return true; } - async refreshWithNote() { - if (utils.isMobile()) { - this.toggleExt(await this.#shouldDisplay()); - } - } - } diff --git a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts new file mode 100644 index 000000000..81b8a1d97 --- /dev/null +++ b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts @@ -0,0 +1,139 @@ +import NoteContextAwareWidget from "../note_context_aware_widget.js"; + +const TPL = /*html*/`\ +
        + + +`; + +/** + * Handles the editing toolbar when the CKEditor is in decoupled mode. + * + *

        + * This toolbar is only enabled if the user has selected the classic CKEditor. + * + *

        + * The ribbon item is active by default for text notes, as long as they are not in read-only mode. + */ +export default class MobileEditorToolbar extends NoteContextAwareWidget { + + private observer: MutationObserver; + + constructor() { + super(); + this.observer = new MutationObserver((e) => this.#onDropdownStateChanged(e)); + } + + get name() { + return "classicEditor"; + } + + doRender() { + this.$widget = $(TPL); + this.contentSized(); + + // The virtual keyboard obscures the editing toolbar so we have to reposition by calculating the height of the keyboard. + window.visualViewport?.addEventListener("resize", () => this.#adjustPosition()); + window.addEventListener("scroll", () => this.#adjustPosition()); + + // Observe when a dropdown is expanded to apply a style that allows the dropdown to be visible, since we can't have the element both visible and the toolbar scrollable. + this.observer.disconnect(); + this.observer.observe(this.$widget[0], { + attributeFilter: ["aria-expanded"], + subtree: true + }); + } + + #onDropdownStateChanged(e: MutationRecord[]) { + const dropdownActive = e.map((e) => (e.target as any).ariaExpanded === "true").reduce((acc, e) => acc && e); + this.$widget[0].classList.toggle("dropdown-active", dropdownActive); + } + + #adjustPosition() { + let bottom = window.innerHeight - (window.visualViewport?.height || 0); + + // When the keyboard is not visible, align it to the launcher bar instead. + bottom = Math.max(bottom, document.getElementById("mobile-bottom-bar")?.offsetHeight || 0); + + this.$widget.css("bottom", `${bottom}px`); + } + + async #shouldDisplay() { + if (!this.note || this.note.type !== "text") { + return false; + } + + if (await this.noteContext?.isReadOnly()) { + return false; + } + + return true; + } + + async refreshWithNote() { + this.toggleExt(await this.#shouldDisplay()); + } + +} From 0f2bc529bfd85695b0a4a5e3e3acfae75a3f69f4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 12:10:43 +0300 Subject: [PATCH 54/69] feat(mobile): improve editing toolbar positioning on Android --- src/public/app/layouts/mobile_layout.ts | 2 +- .../ribbon_widgets/mobile_editor_toolbar.ts | 29 ------------------- src/views/mobile.ejs | 2 +- 3 files changed, 2 insertions(+), 31 deletions(-) diff --git a/src/public/app/layouts/mobile_layout.ts b/src/public/app/layouts/mobile_layout.ts index e7cea7576..f131c0c4f 100644 --- a/src/public/app/layouts/mobile_layout.ts +++ b/src/public/app/layouts/mobile_layout.ts @@ -171,6 +171,7 @@ export default class MobileLayout { .child(new NoteListWidget()) .child(new FilePropertiesWidget().css("font-size", "smaller")) ) + .child(new MobileEditorToolbar()) ) .child(new ProtectedSessionPasswordDialog()) .child(new ConfirmDialog()) @@ -182,7 +183,6 @@ export default class MobileLayout { .child(new TabRowWidget().css("height", "40px")) .child(new FlexContainer("row").class("horizontal").css("height", "53px").child(new LauncherContainer(true)).child(new GlobalMenuWidget(true)).id("launcher-pane")) ) - .child(new MobileEditorToolbar()) .child(new AboutDialog()) .child(new HelpDialog()) .child(new RecentChangesDialog()) diff --git a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts index 81b8a1d97..bb121f365 100644 --- a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts +++ b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts @@ -26,9 +26,6 @@ const TPL = /*html*/`\ body.mobile .classic-toolbar-widget.visible { display: flex; align-items: flex-end; - position: absolute; - left: 0; - right: 0; overflow-x: auto; overscroll-behavior: none; z-index: 500; @@ -39,19 +36,6 @@ const TPL = /*html*/`\ height: 3px; } - @media (max-width: 991px) { - body.mobile .classic-toolbar-widget.visible { - bottom: calc(var(--tab-bar-height) + var(--launcher-pane-height) + var(--mobile-bottom-offset)); - } - } - - @media (min-width: 991px) { - body.mobile .classic-toolbar-widget.visible { - bottom: 0; - left: 25%; - } - } - body.mobile .classic-toolbar-widget.dropdown-active { height: 50vh; } @@ -94,10 +78,6 @@ export default class MobileEditorToolbar extends NoteContextAwareWidget { this.$widget = $(TPL); this.contentSized(); - // The virtual keyboard obscures the editing toolbar so we have to reposition by calculating the height of the keyboard. - window.visualViewport?.addEventListener("resize", () => this.#adjustPosition()); - window.addEventListener("scroll", () => this.#adjustPosition()); - // Observe when a dropdown is expanded to apply a style that allows the dropdown to be visible, since we can't have the element both visible and the toolbar scrollable. this.observer.disconnect(); this.observer.observe(this.$widget[0], { @@ -111,15 +91,6 @@ export default class MobileEditorToolbar extends NoteContextAwareWidget { this.$widget[0].classList.toggle("dropdown-active", dropdownActive); } - #adjustPosition() { - let bottom = window.innerHeight - (window.visualViewport?.height || 0); - - // When the keyboard is not visible, align it to the launcher bar instead. - bottom = Math.max(bottom, document.getElementById("mobile-bottom-bar")?.offsetHeight || 0); - - this.$widget.css("bottom", `${bottom}px`); - } - async #shouldDisplay() { if (!this.note || this.note.type !== "text") { return false; diff --git a/src/views/mobile.ejs b/src/views/mobile.ejs index c1a99ea86..3edaec86a 100644 --- a/src/views/mobile.ejs +++ b/src/views/mobile.ejs @@ -5,7 +5,7 @@ - + TriliumNext Notes From e23b2f3dddf3cb4d04f384a3e9c2c4badcf68715 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 14:07:44 +0300 Subject: [PATCH 55/69] fix(mobile): bring back scrolling to toolbar --- .../ribbon_widgets/mobile_editor_toolbar.ts | 69 +++++++++---------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts index bb121f365..6f87de40e 100644 --- a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts +++ b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts @@ -1,54 +1,47 @@ import NoteContextAwareWidget from "../note_context_aware_widget.js"; const TPL = /*html*/`\ -

        +
        +
        +
        `; @@ -64,6 +57,7 @@ const TPL = /*html*/`\ export default class MobileEditorToolbar extends NoteContextAwareWidget { private observer: MutationObserver; + private $innerWrapper!: JQuery; constructor() { super(); @@ -76,6 +70,7 @@ export default class MobileEditorToolbar extends NoteContextAwareWidget { doRender() { this.$widget = $(TPL); + this.$innerWrapper = this.$widget.find(".classic-toolbar-widget"); this.contentSized(); // Observe when a dropdown is expanded to apply a style that allows the dropdown to be visible, since we can't have the element both visible and the toolbar scrollable. @@ -88,7 +83,7 @@ export default class MobileEditorToolbar extends NoteContextAwareWidget { #onDropdownStateChanged(e: MutationRecord[]) { const dropdownActive = e.map((e) => (e.target as any).ariaExpanded === "true").reduce((acc, e) => acc && e); - this.$widget[0].classList.toggle("dropdown-active", dropdownActive); + this.$innerWrapper.toggleClass("dropdown-active", dropdownActive); } async #shouldDisplay() { From 326c409e473e0c7b801781ac84df9d642eb2889e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 14:44:27 +0300 Subject: [PATCH 56/69] feat(mobile): reposition dropdowns to point up instead of down --- .../app/widgets/type_widgets/editable_text.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/public/app/widgets/type_widgets/editable_text.ts b/src/public/app/widgets/type_widgets/editable_text.ts index 7c8b807a0..b503dfbaf 100644 --- a/src/public/app/widgets/type_widgets/editable_text.ts +++ b/src/public/app/widgets/type_widgets/editable_text.ts @@ -252,6 +252,23 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { if (utils.isMobile()) { $classicToolbarWidget.addClass("visible"); + + // Reposition all dropdowns to point upwards instead of downwards. + // See https://ckeditor.com/docs/ckeditor5/latest/examples/framework/bottom-toolbar-editor.html for more info. + const toolbarView = editor.ui.view.toolbar; + for (const item of toolbarView.items) { + if (!("panelView" in item)) { + continue; + } + + item.on("change:isOpen", () => { + if ( !item.isOpen ) { + return; + } + + item.panelView.position = item.panelView.position.replace("s", "n"); + }); + } } } From 4f09f1a266f9e983bb97375c8b25978d03540543 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 15:06:33 +0300 Subject: [PATCH 57/69] feat(mobile): flatten editing toolbar --- .../widgets/type_widgets/ckeditor/config.ts | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/type_widgets/ckeditor/config.ts b/src/public/app/widgets/type_widgets/ckeditor/config.ts index 2ce7fe420..6d4726999 100644 --- a/src/public/app/widgets/type_widgets/ckeditor/config.ts +++ b/src/public/app/widgets/type_widgets/ckeditor/config.ts @@ -102,7 +102,9 @@ export function buildConfig() { } export function buildToolbarConfig(isClassicToolbar: boolean) { - if (isClassicToolbar) { + if (utils.isMobile()) { + return buildMobileToolbar(); + } else if (isClassicToolbar) { const multilineToolbar = utils.isDesktop() && options.get("textNoteEditorMultilineToolbar") === "true"; return buildClassicToolbar(multilineToolbar); } else { @@ -110,6 +112,29 @@ export function buildToolbarConfig(isClassicToolbar: boolean) { } } +export function buildMobileToolbar() { + const classicConfig = buildClassicToolbar(false); + const items = []; + + for (const item of classicConfig.toolbar.items) { + if (typeof item === "object" && "items" in item) { + for (const subitem of item.items) { + items.push(subitem); + } + } else { + items.push(item); + } + } + + return { + ...classicConfig, + toolbar: { + ...classicConfig.toolbar, + items + } + }; +} + export function buildClassicToolbar(multilineToolbar: boolean) { // For nested toolbars, refer to https://ckeditor.com/docs/ckeditor5/latest/getting-started/setup/toolbar.html#grouping-toolbar-items-in-dropdowns-nested-toolbars. return { From 830285c866a980f771f8f63f164ebaa63a76f100 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 16:20:37 +0300 Subject: [PATCH 58/69] fix(mobile): remove scrollbar for editing toolbar --- .../app/widgets/ribbon_widgets/mobile_editor_toolbar.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts index 6f87de40e..640ce2fca 100644 --- a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts +++ b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts @@ -26,6 +26,10 @@ const TPL = /*html*/`\ user-select: none; } + .classic-toolbar-widget::-webkit-scrollbar { + height: 0 !important; + } + .classic-toolbar-widget.dropdown-active { height: 50vh; } From 1aa69ba268e7d02c77a4c1ec0e797348aed316e5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 16:58:30 +0300 Subject: [PATCH 59/69] fix(mobile): remove vertical scrollbar for editing toolbar --- src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts index 640ce2fca..3abb872e6 100644 --- a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts +++ b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts @@ -28,6 +28,7 @@ const TPL = /*html*/`\ .classic-toolbar-widget::-webkit-scrollbar { height: 0 !important; + width: 0 !important; } .classic-toolbar-widget.dropdown-active { From 7a1e775de2537dd639b408fffb668d2db70ecf94 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 17:41:31 +0300 Subject: [PATCH 60/69] feat(mobile): detect presence of the virtual keyboard --- src/public/app/layouts/desktop_layout.ts | 1 - src/public/app/layouts/mobile_layout.ts | 1 - .../app/widgets/containers/root_container.ts | 33 +++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/public/app/layouts/desktop_layout.ts b/src/public/app/layouts/desktop_layout.ts index 5745df470..38fb75b43 100644 --- a/src/public/app/layouts/desktop_layout.ts +++ b/src/public/app/layouts/desktop_layout.ts @@ -121,7 +121,6 @@ export default class DesktopLayout { return new RootContainer(true) .setParent(appContext) - .class((launcherPaneIsHorizontal ? "horizontal" : "vertical") + "-layout") .optChild( fullWidthTabBar, new FlexContainer("row") diff --git a/src/public/app/layouts/mobile_layout.ts b/src/public/app/layouts/mobile_layout.ts index f131c0c4f..259b440b0 100644 --- a/src/public/app/layouts/mobile_layout.ts +++ b/src/public/app/layouts/mobile_layout.ts @@ -122,7 +122,6 @@ export default class MobileLayout { getRootWidget(appContext: typeof AppContext) { return new RootContainer(true) .setParent(appContext) - .class("horizontal-layout") .cssBlock(MOBILE_CSS) .child(new FlexContainer("column").id("mobile-sidebar-container")) .child( diff --git a/src/public/app/widgets/containers/root_container.ts b/src/public/app/widgets/containers/root_container.ts index 1abde362d..251a92691 100644 --- a/src/public/app/widgets/containers/root_container.ts +++ b/src/public/app/widgets/containers/root_container.ts @@ -1,11 +1,44 @@ +import utils from "../../services/utils.js"; import type BasicWidget from "../basic_widget.js"; import FlexContainer from "./flex_container.js"; +/** + * The root container is the top-most widget/container, from which the entire layout derives. + * + * For convenience, the root container has a few class selectors that can be used to target some global state: + * + * - `#root-container.virtual-keyboard-opened`, on mobile devices if the virtual keyboard is open. + * - `#root-container.horizontal-layout`, if the current layout is horizontal. + * - `#root-container.vertical-layout`, if the current layout is horizontal. + */ export default class RootContainer extends FlexContainer { + private originalViewportHeight: number; + constructor(isHorizontalLayout: boolean) { super(isHorizontalLayout ? "column" : "row"); this.id("root-widget"); this.css("height", "100dvh"); + this.class((isHorizontalLayout ? "horizontal" : "vertical") + "-layout"); + this.originalViewportHeight = getViewportHeight(); } + + render(): JQuery { + if (utils.isMobile()) { + window.visualViewport?.addEventListener("resize", () => this.#onMobileResize()); + } + + return super.render(); + } + + #onMobileResize() { + const currentViewportHeight = getViewportHeight(); + const isKeyboardOpened = (currentViewportHeight < this.originalViewportHeight); + this.$widget.toggleClass("virtual-keyboard-opened", isKeyboardOpened); + } + +} + +function getViewportHeight() { + return window.visualViewport?.height ?? window.innerHeight; } From 83fb6f44c22e2e27c00fe53f93ab30545fa89d76 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 17:45:52 +0300 Subject: [PATCH 61/69] feat(mobile): hide global menu & tabs when keyboard is opened --- src/public/stylesheets/style.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/public/stylesheets/style.css b/src/public/stylesheets/style.css index 6baf78f6a..012f0004d 100644 --- a/src/public/stylesheets/style.css +++ b/src/public/stylesheets/style.css @@ -65,6 +65,10 @@ body.mobile #root-widget { padding-top: env(safe-area-inset-top); } +body.mobile #root-widget.virtual-keyboard-opened #mobile-bottom-bar { + display: none !important; +} + #mobile-bottom-bar { padding-bottom: var(--mobile-bottom-offset); } From 279b6fcf1423d1aa7870c40d58bc5ea5da498217 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 18:21:36 +0300 Subject: [PATCH 62/69] fix(mobile): bring back bar positioning on iOS --- src/public/app/services/utils.ts | 10 ++++++ .../ribbon_widgets/mobile_editor_toolbar.ts | 32 +++++++++++++++---- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/src/public/app/services/utils.ts b/src/public/app/services/utils.ts index 004b38762..efbb82cf8 100644 --- a/src/public/app/services/utils.ts +++ b/src/public/app/services/utils.ts @@ -219,6 +219,16 @@ function isMobile() { ); } +/** + * Returns true if the client device is an Apple iOS one (iPad, iPhone, iPod). + * Does not check if the user requested the mobile or desktop layout, use {@link isMobile} for that. + * + * @returns `true` if running under iOS. + */ +export function isIOS() { + return /iPad|iPhone|iPod/.test(navigator.userAgent); +} + function isDesktop() { return ( window.glob?.device === "desktop" || diff --git a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts index 3abb872e6..38eeedc59 100644 --- a/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts +++ b/src/public/app/widgets/ribbon_widgets/mobile_editor_toolbar.ts @@ -1,3 +1,4 @@ +import { isIOS } from "../../services/utils.js"; import NoteContextAwareWidget from "../note_context_aware_widget.js"; const TPL = /*html*/`\ @@ -14,6 +15,13 @@ const TPL = /*html*/`\ flex-shrink: 0; } + #root-widget.virtual-keyboard-opened .classic-toolbar-outer-container.ios { + position: absolute; + left: 0; + right: 0; + bottom: 0; + } + .classic-toolbar-widget { position: absolute; bottom: 0; @@ -51,13 +59,10 @@ const TPL = /*html*/`\ `; /** - * Handles the editing toolbar when the CKEditor is in decoupled mode. + * Handles the editing toolbar for CKEditor in mobile mode. The toolbar acts as a floating bar, with two different mechanism: * - *

        - * This toolbar is only enabled if the user has selected the classic CKEditor. - * - *

        - * The ribbon item is active by default for text notes, as long as they are not in read-only mode. + * - On iOS, because it does not respect the viewport meta value `interactive-widget=resizes-content`, we need to listen to window resizes and scroll and reposition the toolbar using absolute positioning. + * - On Android, the viewport change makes the keyboard resize the content area, all we have to do is to hide the tab bar and global menu (handled in the global style). */ export default class MobileEditorToolbar extends NoteContextAwareWidget { @@ -84,6 +89,21 @@ export default class MobileEditorToolbar extends NoteContextAwareWidget { attributeFilter: ["aria-expanded"], subtree: true }); + + if (isIOS()) { + this.#handlePositioningOniOS(); + } + } + + #handlePositioningOniOS() { + const adjustPosition = () => { + let bottom = window.innerHeight - (window.visualViewport?.height || 0); + this.$widget.css("bottom", `${bottom}px`); + } + + this.$widget.addClass("ios"); + window.visualViewport?.addEventListener("resize", adjustPosition); + window.addEventListener("scroll", adjustPosition); } #onDropdownStateChanged(e: MutationRecord[]) { From bfafd993ed23b66a96f5cc630acc976bd9b09c23 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 20:02:43 +0300 Subject: [PATCH 63/69] chore(readme): add sponsor badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 265e10543..1ae82efbd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # TriliumNext Notes -![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total) +![GitHub Sponsors](https://img.shields.io/github/sponsors/eliandoran) ![Docker Pulls](https://img.shields.io/docker/pulls/triliumnext/notes) ![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/triliumnext/notes/total) [English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md) From 569aeedae43f695b91a028e45c72d81fba19812c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 20:11:50 +0300 Subject: [PATCH 64/69] Update FUNDING.yml --- .github/FUNDING.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 6203d87bc..bd8489f95 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,4 +1,3 @@ # These are supported funding model platforms -github: [zadam] -custom: ["https://paypal.me/za4am"] +github: [eliandoran] From 9ab48839a77034c01bb272905a561791008d40a9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 20:29:36 +0300 Subject: [PATCH 65/69] chore(github): add paypal to funding --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index bd8489f95..75c9d0dca 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,4 @@ # These are supported funding model platforms github: [eliandoran] +custom: ["https://paypal.me/eliandoran"] From a819166ae5703b62bbe290b1a8f0fed3b010f335 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Thu, 10 Apr 2025 09:56:54 +0200 Subject: [PATCH 66/69] fix(auth): avoid "Error: Option 'redirectBareDomain' doesn't exist" on new installations fixes #1667 --- src/services/auth.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/services/auth.ts b/src/services/auth.ts index 7d55c3d32..38eb19823 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -39,7 +39,9 @@ function checkAuth(req: Request, res: Response, next: NextFunction) { res.redirect('login'); return; } else if (!req.session.loggedIn && !noAuthentication) { - const redirectToShare = options.getOptionBool("redirectBareDomain"); + + const redirectToShare = hasRedirectBareDomain(); + if (redirectToShare) { // Check if any note has the #shareRoot label const shareRootNotes = attributes.getNotesWithLabel("shareRoot"); @@ -54,6 +56,18 @@ function checkAuth(req: Request, res: Response, next: NextFunction) { } } + +// avoid receiving an error, on a new installation, when the DB is not initialized yet +// => getOptionBool uses getOption, which throws an error if the option name is not found +// TriliumNextTODO: potentially refactor getOptionBool instead +function hasRedirectBareDomain() { + try { + return options.getOptionBool("redirectBareDomain"); + } catch(e) { + return false; + } +} + // for electron things which need network stuff // currently, we're doing that for file upload because handling form data seems to be difficult function checkApiAuthOrElectron(req: Request, res: Response, next: NextFunction) { From 1979affa8a6232b704c3a967ed3e14ce1a172d63 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Thu, 10 Apr 2025 19:48:13 +0200 Subject: [PATCH 67/69] refactor(auth): simplify hasRedirectBareDomain following change suggestion requested here https://github.com/TriliumNext/Notes/pull/1668#pullrequestreview-2755816018 --- src/services/auth.ts | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/services/auth.ts b/src/services/auth.ts index 38eb19823..d1d951fc0 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -40,9 +40,11 @@ function checkAuth(req: Request, res: Response, next: NextFunction) { return; } else if (!req.session.loggedIn && !noAuthentication) { - const redirectToShare = hasRedirectBareDomain(); + // cannot use options.getOptionBool currently => it will throw an error on new installations + // TriliumNextTODO: look into potentially creating an getOptionBoolOrNull instead + const hasRedirectBareDomain = options.getOptionOrNull("redirectBareDomain") === "true"; - if (redirectToShare) { + if (hasRedirectBareDomain) { // Check if any note has the #shareRoot label const shareRootNotes = attributes.getNotesWithLabel("shareRoot"); if (shareRootNotes.length === 0) { @@ -50,23 +52,13 @@ function checkAuth(req: Request, res: Response, next: NextFunction) { return; } } - res.redirect(redirectToShare ? "share" : "login"); + res.redirect(hasRedirectBareDomain ? "share" : "login"); } else { next(); } } -// avoid receiving an error, on a new installation, when the DB is not initialized yet -// => getOptionBool uses getOption, which throws an error if the option name is not found -// TriliumNextTODO: potentially refactor getOptionBool instead -function hasRedirectBareDomain() { - try { - return options.getOptionBool("redirectBareDomain"); - } catch(e) { - return false; - } -} // for electron things which need network stuff // currently, we're doing that for file upload because handling form data seems to be difficult From 64869f80eeacb49ad6099b677b4b80e8e8008c27 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 10 Apr 2025 21:06:20 +0300 Subject: [PATCH 68/69] chore(release): 0.92.7 --- package.json | 2 +- src/services/build.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9b187764a..c5c039035 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "trilium", "productName": "TriliumNext Notes", "description": "Build your personal knowledge base with TriliumNext Notes", - "version": "0.92.6", + "version": "0.92.7", "license": "AGPL-3.0-only", "main": "./electron-main.js", "author": { diff --git a/src/services/build.ts b/src/services/build.ts index f1784bbc7..ffe27d299 100644 --- a/src/services/build.ts +++ b/src/services/build.ts @@ -1,4 +1,4 @@ export default { - buildDate: "2025-04-06T09:46:07Z", - buildRevision: "7cd8554d1106293f808d29415d77a4ec7df8a395" + buildDate: "2025-04-10T18:06:20Z", + buildRevision: "3df666b03e55a7719958a20cbd9e14601d7da580" }; From 64cc32c4fa3b23f9d6b634cb619531115d8ce62d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Apr 2025 18:12:56 +0000 Subject: [PATCH 69/69] fix(deps): update dependency katex to v0.16.22 --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcad04f5e..131471ee9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "trilium", - "version": "0.92.6", + "version": "0.92.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trilium", - "version": "0.92.6", + "version": "0.92.7", "license": "AGPL-3.0-only", "dependencies": { "@braintree/sanitize-url": "7.1.1", @@ -61,7 +61,7 @@ "jquery.fancytree": "2.38.5", "js-yaml": "4.1.0", "jsdom": "26.0.0", - "katex": "0.16.21", + "katex": "0.16.22", "marked": "15.0.8", "mime-types": "3.0.1", "multer": "1.4.5-lts.2", @@ -13845,9 +13845,9 @@ } }, "node_modules/katex": { - "version": "0.16.21", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", - "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", + "version": "0.16.22", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", + "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" diff --git a/package.json b/package.json index 149e59d84..21af0227a 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "jquery.fancytree": "2.38.5", "js-yaml": "4.1.0", "jsdom": "26.0.0", - "katex": "0.16.21", + "katex": "0.16.22", "marked": "15.0.8", "mime-types": "3.0.1", "multer": "1.4.5-lts.2",

    33. -

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

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

      • A title
      • @@ -99,8 +98,8 @@
        -
      • Here we identify a note with the label #taskTodoRoot. - This is how the Task Manager showcase +
      • 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. 
      • @@ -133,9 +132,8 @@
        -
      • Since we know the ID of - the newly created note, all we have to do now is to show this note to the - user.
      • +
      • Since we know the ID of the newly + created note, all we have to do now is to show this note to the user.