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

- +

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

     

    - -

    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

    -

    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:

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