docs(user): mention version for board custom attributes

This commit is contained in:
Elian Doran 2025-12-11 10:57:30 +02:00
parent c708e7cd61
commit 481127a560
No known key found for this signature in database
5 changed files with 223 additions and 237 deletions

View File

@ -7,94 +7,98 @@
adjusted.</p> adjusted.</p>
<h2>How it works</h2> <h2>How it works</h2>
<p>When first creating a collection of <em>Board</em> type, a few subnotes <p>When first creating a collection of <em>Board</em> type, a few subnotes
will be created, each having a <code>#status</code> label set. The board will be created, each having a <code spellcheck="false">#status</code> label
then groups each note by the value of the status attribute.</p> set. The board then groups each note by the value of the status attribute.</p>
<p>Notes are displayed recursively, so even the child notes of the child <p>Notes are displayed recursively, so even the child notes of the child
notes will be displayed. However, unlike the&nbsp;<a class="reference-link" notes will be displayed. However, unlike the&nbsp;<a class="reference-link"
href="#root/_help_2FvYrpmOXm29">Table</a>, the notes are not displayed in a hierarchy.</p> href="#root/_help_2FvYrpmOXm29">Table</a>, the notes are not displayed in a hierarchy.</p>
<h2>Interaction</h2> <h2>Interaction</h2>
<h3>Working with columns</h3> <h3>Working with columns</h3>
<ul> <ul>
<li>Create a new column by pressing <em>Add Column</em> near the last column. <li data-list-item-id="eed75fe2d70ba712457da18d13b91fa16">Create a new column by pressing <em>Add Column</em> near the last column.
<ul> <ul>
<li>Once pressed, a text box will be displayed to set the name of the column. <li data-list-item-id="ef2cf2654ff26b4f04aabe7aea447ba04">Once pressed, a text box will be displayed to set the name of the column.
Press <kbd>Enter</kbd> to confirm, or <kbd>Escape</kbd> to dismiss.</li> Press <kbd>Enter</kbd> to confirm, or <kbd>Escape</kbd> to dismiss.</li>
</ul> </ul>
</li> </li>
<li>To reorder a column, simply hold the mouse over the title and drag it <li data-list-item-id="ecf404437de7a7126ec6e74428386c644">To reorder a column, simply hold the mouse over the title and drag it
to the desired position.</li> to the desired position.</li>
<li>To delete a column, right click on its title and select <em>Delete column</em>.</li> <li data-list-item-id="ebe673a03d3e54db84bad22ac06caf1bc">To delete a column, right click on its title and select <em>Delete column</em>.</li>
<li>To rename a column, click on the note title. <li
data-list-item-id="e7c4c69d4c1ef862d13c886c29fccc0e2">To rename a column, click on the note title.
<ul> <ul>
<li>Press Enter to confirm.</li> <li data-list-item-id="ea8ee1c0d6783c0c64fde427a7334f703">Press Enter to confirm.</li>
<li>Upon renaming a column, the corresponding status attribute of all its <li data-list-item-id="e85724e2b224df1670b08a418e560b05d">Upon renaming a column, the corresponding status attribute of all its
notes will be changed in bulk.</li> notes will be changed in bulk.</li>
</ul> </ul>
</li> </li>
<li>If there are many columns, use the mouse wheel to scroll.</li> <li data-list-item-id="e2836e9a5f492795750c949f1f060f548">If there are many columns, use the mouse wheel to scroll.</li>
</ul> </ul>
<h3>Working with notes</h3> <h3>Working with notes</h3>
<ul> <ul>
<li>Create a new note in any column by pressing <em>New item</em> <li data-list-item-id="efb7df180d7edb7e6c070bcfee5aa6595">Create a new note in any column by pressing <em>New item</em>
<ul> <ul>
<li>Enter the name of the note and press <kbd>Enter</kbd> or click away. To <li data-list-item-id="e1cba0534a1bd351bad9a8eab629a2267">Enter the name of the note and press <kbd>Enter</kbd> or click away. To
dismiss the creation of a new note, simply press <kbd>Escape</kbd> or leave dismiss the creation of a new note, simply press <kbd>Escape</kbd> or leave
the name empty.</li> the name empty.</li>
<li>Once created, the new note will have an attribute (<code>status</code> label <li data-list-item-id="ecd0181ef17ca7eea5c4f5864472bb4b3">Once created, the new note will have an attribute (<code spellcheck="false">status</code> label
by default) set to the name of the column.</li> by default) set to the name of the column.</li>
</ul> </ul>
</li> </li>
<li>To open the note, simply click on it.</li> <li data-list-item-id="ee23b9bd9fedee464cb70079e80379b12">To open the note, simply click on it.</li>
<li>To change the title of the note directly from the board, hover the mouse <li data-list-item-id="ef6b267a604ab3dedcce739bda9928c36">To change the title of the note directly from the board, hover the mouse
over its card and press the edit button on the right.</li> over its card and press the edit button on the right.</li>
<li>To change the state of a note, simply drag a note from one column to the <li data-list-item-id="ebbe903cc36e703cf676e988a5b58d950">To change the state of a note, simply drag a note from one column to the
other to change its state.</li> other to change its state.</li>
<li>The order of the notes in each column corresponds to their position in <li data-list-item-id="e41960c677e9041fcf07692b44e70b5af">The order of the notes in each column corresponds to their position in
the tree. the tree.
<ul> <ul>
<li>It's possible to reorder notes simply by dragging them to the desired <li data-list-item-id="e0868bc9825cdef09da3fc03e873c47d7">It's possible to reorder notes simply by dragging them to the desired
position within the same columns.</li> position within the same columns.</li>
<li>It's also possible to drag notes across columns, at the desired position.</li> <li data-list-item-id="e0706409ea69226ec62e3364d85001697">It's also possible to drag notes across columns, at the desired position.</li>
</ul> </ul>
</li> </li>
<li>For more options, right click on a note to display a context menu with <li data-list-item-id="e5ad1e7155fc0100222f460ef9feb6b41">For more options, right click on a note to display a context menu with
the following options: the following options:
<ul> <ul>
<li>Open the note in a new tab/split/window or quick edit.</li> <li data-list-item-id="e1ce2217942aaa4c6b78b8c76a7f38dbb">Open the note in a new tab/split/window or quick edit.</li>
<li>Move the note to any column.</li> <li data-list-item-id="e707e47f9eede68e4546eb6b8a83e8a17">Move the note to any column.</li>
<li>Insert a new note above/below the current one.</li> <li data-list-item-id="e3125b7d4859803621bad3d679339dab9">Insert a new note above/below the current one.</li>
<li>Archive/unarchive the current note.</li> <li data-list-item-id="ea16c75aba80bbcb50b3dd416cec09753">Archive/unarchive the current note.</li>
<li>Delete the current note.</li> <li data-list-item-id="e5ea20c999a4f17c69ed4094d24a706f3">Delete the current note.</li>
</ul> </ul>
</li> </li>
<li>If there are many notes within the column, move the mouse over the column <li data-list-item-id="e568d17582bdddc191dfe89bb9aca89d5">If there are many notes within the column, move the mouse over the column
and use the mouse wheel to scroll.</li> and use the mouse wheel to scroll.</li>
</ul> </ul>
<h3>Working with the note tree</h3> <h3>Working with the note tree</h3>
<p>It's also possible to add items on the board using the&nbsp;<a class="reference-link" <p>It's also possible to add items on the board using the&nbsp;<a class="reference-link"
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p> href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</p>
<ol> <ol>
<li>Select the desired note in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li> <li data-list-item-id="e921887a37d6dba75eb00782ac7c7e118">Select the desired note in the&nbsp;<a class="reference-link" href="#root/_help_oPVyFC7WL2Lp">Note Tree</a>.</li>
<li>Hold the mouse on the note and drag it to the to the desired column.</li> <li
data-list-item-id="efeec7811e055ff6465ed839bbba2f776">Hold the mouse on the note and drag it to the to the desired column.</li>
</ol> </ol>
<p>This works for:</p> <p>This works for:</p>
<ul> <ul>
<li>Notes that are not children of the board, case in which a <a href="#root/_help_IakOLONlIfGI">clone</a> will <li data-list-item-id="e31561dca83d4b9598775e33d9c4a8396">Notes that are not children of the board, case in which a <a href="#root/_help_IakOLONlIfGI">clone</a> will
be created.</li> be created.</li>
<li>Notes that are children of the board, but not yet assigned on the board.</li> <li data-list-item-id="e74f3978f78cb119c8ae4b0ec167f8683">Notes that are children of the board, but not yet assigned on the board.</li>
<li>Notes that are children of the board, case in which they will be moved <li
data-list-item-id="e581a876b974f0e5f0381651496400d48">Notes that are children of the board, case in which they will be moved
to the new column.</li> to the new column.</li>
</ul> </ul>
<h3>Keyboard interaction</h3> <h3>Keyboard interaction</h3>
<p>The board view has mild support for keyboard-based navigation:</p> <p>The board view has mild support for keyboard-based navigation:</p>
<ul> <ul>
<li>Use <kbd>Tab</kbd> and <kbd>Shift</kbd>+<kbd>Tab</kbd> to navigate between <li data-list-item-id="e956369914e25568591f1d3dda5ae970e">Use <kbd>Tab</kbd> and <kbd>Shift</kbd>+<kbd>Tab</kbd> to navigate between
column titles, notes and the “New item” button for each of the columns, column titles, notes and the “New item” button for each of the columns,
in sequential order.</li> in sequential order.</li>
<li>To rename a column or a note, press <kbd>F2</kbd> while it is focused.</li> <li data-list-item-id="e5211444d02da23ac54a370bc1cced494">To rename a column or a note, press <kbd>F2</kbd> while it is focused.</li>
<li>To open a specific note or create a new item, press <kbd>Enter</kbd> while <li
data-list-item-id="e11a91b88f8a12237ef40ab9c32d9f8f8">To open a specific note or create a new item, press <kbd>Enter</kbd> while
it is focused.</li> it is focused.</li>
<li>To dismiss a rename of a note or a column, press <kbd>Escape</kbd>.</li> <li data-list-item-id="e34aabe77a5bce273c353c2400da91cee">To dismiss a rename of a note or a column, press <kbd>Escape</kbd>.</li>
</ul> </ul>
<h2>Configuration</h2> <h2>Configuration</h2>
<h3>Displaying custom attributes</h3> <h3>Displaying custom attributes</h3>
@ -102,39 +106,43 @@
<img style="aspect-ratio:531/485;" src="Kanban Board_image.png" <img style="aspect-ratio:531/485;" src="Kanban Board_image.png"
width="531" height="485"> width="531" height="485">
</figure> </figure>
<p>Note attributes can be displayed on the board to enhance it with custom <p>Since v0.100.0, note attributes can be displayed on the board to enhance
information such as adding a Due date for your tasks.</p> it with custom information such as adding a <em>Due date</em> for your tasks.</p>
<p>This feature works exclusively via attribute definitions (<a class="reference-link" <p>This feature works exclusively via attribute definitions (<a class="reference-link"
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>). The easiest way to href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>). The easiest way to
add these is:</p> add these is:</p>
<ol> <ol>
<li>Go to board note.</li> <li data-list-item-id="e63c976202ef9f633570f685d391b5e50">Go to board note.</li>
<li>In the ribbon select <em>Owned Attributes</em> → plus button → <em>Add new label/relation definition</em>.</li> <li data-list-item-id="ea821edb6d448b1bde26f9d756b4b0fec">In the ribbon select <em>Owned Attributes</em> → plus button → <em>Add new label/relation definition</em>.</li>
<li>Configure the attribute as desired.</li> <li
<li>Check <em>Inheritable</em> to make it applicable to child notes automatically.</li> data-list-item-id="e94dd8b134591fe71e2dcea3506247df6">Configure the attribute as desired.</li>
<li data-list-item-id="ea08e72fd3555837459105e19c12c1e33">Check <em>Inheritable</em> to make it applicable to child notes automatically.</li>
</ol> </ol>
<p>After creating the attribute, click on a note and fill in the promoted <p>After creating the attribute, click on a note and fill in the promoted
attributes which should then reflect inside the board.</p> attributes which should then reflect inside the board.</p>
<p>Of note:</p> <p>Of note:</p>
<ul> <ul>
<li>Both promoted and non-promoted attribute definitions are supported. The <li data-list-item-id="eb9e8b5e12e3dc2f5410bc10ba091d552">Both promoted and non-promoted attribute definitions are supported. The
only difference is that non-promoted attributes don't have an “Alias” for only difference is that non-promoted attributes don't have an “Alias” for
assigning a custom name.</li> assigning a custom name.</li>
<li>Both “Single value” and “Multi value” attributes are supported. In case <li data-list-item-id="ee41e79b02872367b2c5f2c4f88c3da41">Both “Single value” and “Multi value” attributes are supported. In case
of multi-value, a badge is displayed for every instance of the attribute.</li> of multi-value, a badge is displayed for every instance of the attribute.</li>
<li>All label types are supported, including dates, booleans and URLs.</li> <li
<li>Relation attributes are also supported as well, showing a link with the data-list-item-id="eb4d6fdbc5f52e70263706b3f51d929e3">All label types are supported, including dates, booleans and URLs.</li>
target note title and icon.</li> <li
<li>Currently, it's not possible to adjust which promoted attributes are displayed, data-list-item-id="ec141a7d5aca14f33f58abb3fdb1ab2e3">Relation attributes are also supported as well, showing a link with the
since all promoted attributes will be displayed (except the <code>board:groupBy</code> one). target note title and icon.</li>
There are plans to improve upon this being able to hide promoted attributes <li data-list-item-id="ef13f98f321ca5b0b0ea881966e7a8ce9">Currently, it's not possible to adjust which promoted attributes are displayed,
individually.</li> since all promoted attributes will be displayed (except the <code spellcheck="false">board:groupBy</code> one).
There are plans to improve upon this being able to hide promoted attributes
individually.</li>
</ul> </ul>
<h3>Grouping by another label</h3> <h3>Grouping by another label</h3>
<p>By default, the label used to group the notes is <code>#status</code>. <p>By default, the label used to group the notes is <code spellcheck="false">#status</code>.
It is possible to use a different label if needed by defining a label named <code>#board:groupBy</code> with It is possible to use a different label if needed by defining a label named
the value being the attribute to use (with or without <code>#</code> attribute <code
prefix).</p> spellcheck="false">#board:groupBy</code>with the value being the attribute to use (with or
without <code spellcheck="false">#</code> attribute prefix).</p>
<h3>Grouping by relations</h3> <h3>Grouping by relations</h3>
<figure class="image image-style-align-right"> <figure class="image image-style-align-right">
<img style="aspect-ratio:535/245;" src="1_Kanban Board_image.png" <img style="aspect-ratio:535/245;" src="1_Kanban Board_image.png"
@ -143,35 +151,35 @@
<p>A more advanced use-case is grouping by <a href="#root/_help_Cq5X6iKQop6R">Relations</a>.</p> <p>A more advanced use-case is grouping by <a href="#root/_help_Cq5X6iKQop6R">Relations</a>.</p>
<p>During this mode:</p> <p>During this mode:</p>
<ul> <ul>
<li>The columns represent the <em>target notes</em> of a relation.</li> <li data-list-item-id="e8b12352beeecdc5fbba7ab2cc8c17ebf">The columns represent the <em>target notes</em> of a relation.</li>
<li>When creating a new column, a note is selected instead of a column name.</li> <li data-list-item-id="e93e74a0b91864714971460d4f0c70d7c">When creating a new column, a note is selected instead of a column name.</li>
<li>The column icon will match the target note.</li> <li
<li>Moving notes between columns will change its relation.</li> data-list-item-id="ef5f8b62aea5f50ce16fd0eb7ec2da8a9">The column icon will match the target note.</li>
<li>Renaming an existing column will change the target note of all the notes <li data-list-item-id="e1a406b952707601c17f59b79b428fcc4">Moving notes between columns will change its relation.</li>
in that column.</li> <li data-list-item-id="e26ad186c049342b5071dbd7e288c34a5">Renaming an existing column will change the target note of all the notes
in that column.</li>
</ul> </ul>
<p>Using relations instead of labels has some benefits:</p> <p>Using relations instead of labels has some benefits:</p>
<ul> <ul>
<li>The status/grouping of the notes is visible outside the Kanban board, <li data-list-item-id="e023fc2ef6ec6e976dc81d3e2b0fd0c46">The status/grouping of the notes is visible outside the Kanban board,
for example on the&nbsp;<a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a>.</li> for example on the&nbsp;<a class="reference-link" href="#root/_help_bdUJEHsAPYQR">Note Map</a>.</li>
<li>Columns can have icons.</li> <li
<li>Renaming columns is less intensive since it simply involves changing the data-list-item-id="e3b0b352a62b78f4ec2cf335e054f1cac">Columns can have icons.</li>
note title of the target note instead of having to do a bulk rename.</li> <li data-list-item-id="e5646f801237c13c7ddd600eecffea714">Renaming columns is less intensive since it simply involves changing the
note title of the target note instead of having to do a bulk rename.</li>
</ul> </ul>
<p>To do so:</p> <p>To do so:</p>
<ol> <ol>
<li> <li data-list-item-id="ecd59797f1fe062de6118a1020034f761">First, create a Kanban board from scratch and not a template:</li>
<p>First, create a Kanban board from scratch and not a template:</p> <li
</li> data-list-item-id="ea3e28bea94fae0e37b0319a1e2c0f48c">Assign <code spellcheck="false">#viewType=board #hidePromotedAttributes</code> to
<li> emulate the default template.</li>
<p>Assign <code>#viewType=board #hidePromotedAttributes</code> to emulate the <li data-list-item-id="e063e32f35af1b206b060779666db84e5">Set <code spellcheck="false">#board:groupBy</code> to the name of a relation
default template.</p> to group by, <strong>including the</strong> <code spellcheck="false">~</code> <strong>prefix</strong> (e.g.
</li> <code
<li> spellcheck="false">~status</code>).</li>
<p>Set <code>#board:groupBy</code> to the name of a relation to group by, <strong>including the</strong> <code>**~**</code> <strong>prefix</strong> (e.g. <code>~status</code>).</p> <li data-list-item-id="e079874488794f7fa65ea90c7aa6a71a9">
</li> <p>Optionally, use&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;for
<li> easy status change within the note:</p><pre><code class="language-text-x-trilium-auto">#relation:status(inheritable)="promoted,alias=Status,single"</code></pre>
<p>Optionally, use&nbsp;<a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a>&nbsp;for </li>
easy status change within the note:</p><pre><code class="language-text-x-trilium-auto">#relation:status(inheritable)="promoted,alias=Status,single"</code></pre>
</li>
</ol> </ol>

View File

@ -5,169 +5,147 @@
<p>Global events are attached to the script note via label. Simply create <p>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 e.g. "run" label with some of these values and script note will be executed
once the event occurs.</p> once the event occurs.</p>
<figure class="table"> <table>
<table> <thead>
<thead> <tr>
<tr> <th>Label</th>
<th>Label</th> <th>Description</th>
<th>Description</th> </tr>
</tr> </thead>
</thead> <tbody>
<tbody> <tr>
<tr> <td><code>run</code>
<td><code spellcheck="false">run</code> </td>
</td> <td>
<td> <p>Defines on which events script should run. Possible values are:</p>
<p>Defines on which events script should run. Possible values are:</p> <ul>
<ul> <li data-list-item-id="e244b14e102cf1b0d4954e8fd455ea77b"><code>frontendStartup</code> - when Trilium frontend starts up (or is refreshed),
<li data-list-item-id="e244b14e102cf1b0d4954e8fd455ea77b"><code spellcheck="false">frontendStartup</code> - when Trilium frontend but not on mobile.</li>
starts up (or is refreshed), but not on mobile.</li> <li data-list-item-id="ea8f8ca86e7b351dd86108848ccb9103a"><code>mobileStartup</code> - when Trilium frontend starts up (or is refreshed),
<li data-list-item-id="ea8f8ca86e7b351dd86108848ccb9103a"><code spellcheck="false">mobileStartup</code> - when Trilium frontend starts on mobile.</li>
up (or is refreshed), on mobile.</li> <li data-list-item-id="e658488cf1a0862603088ef384e41b8b6"><code>backendStartup</code> - when Trilium backend starts up</li>
<li data-list-item-id="e658488cf1a0862603088ef384e41b8b6"><code spellcheck="false">backendStartup</code> - when Trilium backend starts <li data-list-item-id="ef40ba992fc450d33a18ca4cb031eca66"><code>hourly</code> - run once an hour. You can use additional label <code>runAtHour</code> to
up</li> specify at which hour, on the back-end.</li>
<li data-list-item-id="ef40ba992fc450d33a18ca4cb031eca66"><code spellcheck="false">hourly</code> - run once an hour. You can use <li data-list-item-id="e07458d4f55b6eb42468a5535b8425c5f"><code>daily</code> - run once a day, on the back-end</li>
additional label <code spellcheck="false">runAtHour</code> to specify at </ul>
which hour, on the back-end.</li> </td>
<li data-list-item-id="e07458d4f55b6eb42468a5535b8425c5f"><code spellcheck="false">daily</code> - run once a day, on the back-end</li> </tr>
</ul> <tr>
</td> <td><code>runOnInstance</code>
</tr> </td>
<tr> <td>Specifies that the script should only run on a particular&nbsp;<a class="reference-link"
<td><code spellcheck="false">runOnInstance</code> href="#root/_help_c5xB8m4g2IY6">Trilium instance</a>.</td>
</td> </tr>
<td>Specifies that the script should only run on a particular&nbsp;<a class="reference-link" <tr>
href="#root/_help_c5xB8m4g2IY6">Trilium instance</a>.</td> <td><code>runAtHour</code>
</tr> </td>
<tr> <td>On which hour should this run. Should be used together with <code>#run=hourly</code>.
<td><code spellcheck="false">runAtHour</code> Can be defined multiple times for more runs during the day.</td>
</td> </tr>
<td>On which hour should this run. Should be used together with <code spellcheck="false">#run=hourly</code>. </tbody>
Can be defined multiple times for more runs during the day.</td> </table>
</tr>
</tbody>
</table>
</figure>
<h2>Entity events</h2> <h2>Entity events</h2>
<p>Other events are bound to some entity, these are defined as <a href="#root/_help_zEY4DaJG4YT5">relations</a> - <p>Other events are bound to some entity, these are defined as <a href="#root/_help_zEY4DaJG4YT5">relations</a> -
meaning that script is triggered only if note has this script attached meaning that script is triggered only if note has this script attached
to it through relations (or it can inherit it).</p> to it through relations (or it can inherit it).</p>
<figure class="table" <table>
style="width:100%;"> <thead>
<table class="ck-table-resized"> <tr>
<colgroup> <th>Relation</th>
<col style="width:20.65%;"> <th>Trigger condition</th>
<col style="width:47.48%;"> <th>Origin entity (see below)</th>
<col style="width:31.87%;"> </tr>
</colgroup> </thead>
<thead> <tbody>
<tr> <tr>
<th>Relation</th> <td><code>runOnNoteCreation</code>
<th>Trigger condition</th> </td>
<th>Origin entity (see below)</th> <td>executes when note is created on backend. Use this relation if you want
</tr> to run the script for all notes created under a specific subtree. In that
</thead> case, create it on the subtree root note and make it inheritable. A new
<tbody> note created within the subtree (any depth) will trigger the script.</td>
<tr> <td>The <code>BNote</code> that got created.</td>
<td><code spellcheck="false">runOnNoteCreation</code> </tr>
</td> <tr>
<td>executes when note is created on backend. Use this relation if you want <td><code>runOnChildNoteCreation</code>
to run the script for all notes created under a specific subtree. In that </td>
case, create it on the subtree root note and make it inheritable. A new <td>executes when new note is created under the note where this relation is
note created within the subtree (any depth) will trigger the script.</td> defined</td>
<td>The <code spellcheck="false">BNote</code> that got created.</td> <td>The <code>BNote</code> of the child that got created.</td>
</tr> </tr>
<tr> <tr>
<td><code spellcheck="false">runOnChildNoteCreation</code> <td><code>runOnNoteTitleChange</code>
</td> </td>
<td>executes when new note is created under the note where this relation is <td>executes when note title is changed (includes note creation as well)</td>
defined</td> <td>The <code>BNote</code> of the note whose title got changed.</td>
<td>The <code spellcheck="false">BNote</code> of the child that got created.</td> </tr>
</tr> <tr>
<tr> <td><code>runOnNoteContentChange</code>
<td><code spellcheck="false">runOnNoteTitleChange</code> </td>
</td> <td>executes when note content is changed (includes note creation as well).</td>
<td>executes when note title is changed (includes note creation as well)</td> <td>The <code>BNote</code> of the note whose content got changed.</td>
<td>The <code spellcheck="false">BNote</code> of the note whose title got changed.</td> </tr>
</tr> <tr>
<tr> <td><code>runOnNoteChange</code>
<td><code spellcheck="false">runOnNoteContentChange</code> </td>
</td> <td>executes when note is changed (includes note creation as well). Does not
<td>executes when note content is changed (includes note creation as well).</td> include content changes</td>
<td>The <code spellcheck="false">BNote</code> of the note whose content got <td>The <code>BNote</code> of the note that got changed.</td>
changed.</td> </tr>
</tr> <tr>
<tr> <td><code>runOnNoteDeletion</code>
<td><code spellcheck="false">runOnNoteChange</code> </td>
</td> <td>executes when note is being deleted</td>
<td>executes when note is changed (includes note creation as well). Does not <td>The <code>BNote</code> of the note that got (soft) deleted.</td>
include content changes</td> </tr>
<td>The <code spellcheck="false">BNote</code> of the note that got changed.</td> <tr>
</tr> <td><code>runOnBranchCreation</code>
<tr> </td>
<td><code spellcheck="false">runOnNoteDeletion</code> <td>executes when a branch is created. Branch is a link between parent note
</td> and child note and is created e.g. when cloning or moving note.</td>
<td>executes when note is being deleted</td> <td>The <code>BBranch</code> that got created.</td>
<td>The <code spellcheck="false">BNote</code> of the note that got (soft) deleted.</td> </tr>
</tr> <tr>
<tr> <td><code>runOnBranchChange</code>
<td><code spellcheck="false">runOnBranchCreation</code> </td>
</td> <td>executes when a branch is updated. (since v0.62)</td>
<td>executes when a branch is created. Branch is a link between parent note <td>The <code>BBranch</code> that got changed.</td>
and child note and is created e.g. when cloning or moving note.</td> </tr>
<td>The <code spellcheck="false">BBranch</code> that got created.</td> <tr>
</tr> <td><code>runOnBranchDeletion</code>
<tr> </td>
<td><code spellcheck="false">runOnBranchChange</code> <td>executes when a branch is deleted. Branch is a link between parent note
</td> and child note and is deleted e.g. when moving note (old branch/link is
<td>executes when a branch is updated. (since v0.62)</td> deleted).</td>
<td>The <code spellcheck="false">BBranch</code> that got changed.</td> <td>The <code>BBranch</code> that got (soft) deleted.</td>
</tr> </tr>
<tr> <tr>
<td><code spellcheck="false">runOnBranchDeletion</code> <td><code>runOnAttributeCreation</code>
</td> </td>
<td>executes when a branch is deleted. Branch is a link between parent note <td>executes when new attribute is created for the note which defines this
and child note and is deleted e.g. when moving note (old branch/link is relation</td>
deleted).</td> <td>The <code>BAttribute</code> that got created.</td>
<td>The <code spellcheck="false">BBranch</code> that got (soft) deleted.</td> </tr>
</tr> <tr>
<tr> <td><code>runOnAttributeChange</code>
<td><code spellcheck="false">runOnAttributeCreation</code> </td>
</td> <td>executes when the attribute is changed of a note which defines this relation.
<td>executes when new attribute is created for the note which defines this This is triggered also when the attribute is deleted</td>
relation</td> <td>The <code>BAttribute</code> that got changed.</td>
<td>The <code spellcheck="false">BAttribute</code> that got created.</td> </tr>
</tr> </tbody>
<tr> </table>
<td><code spellcheck="false">runOnAttributeChange</code>
</td>
<td>executes when the attribute is changed of a note which defines this relation.
This is triggered also when the attribute is deleted</td>
<td>The <code spellcheck="false">BAttribute</code> that got changed.</td>
</tr>
</tbody>
</table>
</figure>
<h2>Origin entity</h2> <h2>Origin entity</h2>
<p>When a script is run by an event such as the ones described above, <p>When a script is run by an event such as the ones described above, <code>api.originEntity</code> will
<code get populated with the note, branch or attribute that triggered the change.</p>
spellcheck="false">api.originEntity</code>will get populated with the note, branch or attribute <p>For example, here's a script with <code>~runOnAttributeChange</code> which
that triggered the change.</p> automatically changes the color of a note based on the value of the <code>mycategory</code> label:</p><pre><code class="language-application-javascript-env-backend">const attr = api.originEntity;
<p>For example, here's a script with <code spellcheck="false">~runOnAttributeChange</code> which
automatically changes the color of a note based on the value of the
<code
spellcheck="false">mycategory</code>label:</p><pre><code class="language-application-javascript-env-frontend">const attr = api.originEntity;
if (attr.name !== "mycategory") return; if (attr.name !== "mycategory") return;
const note = api.getNote(attr.noteId); const note = api.getNote(attr.noteId);
if (attr.value === "Health") { if (attr.value === "Health") {
note.setLabel("color", "green"); note.setLabel("color", "green");
} else { } else {
note.removeLabel("color"); note.removeLabel("color");
}</code></pre> }</code></pre>

View File

@ -1,5 +1,5 @@
# Documentation # Documentation
There are multiple types of documentation for Trilium:<img class="image-style-align-right" src="api/images/iivQU4mW8qJE/Documentation_image.png" width="205" height="162"> There are multiple types of documentation for Trilium:<img class="image-style-align-right" src="api/images/lONK7oKNhIgu/Documentation_image.png" width="205" height="162">
* The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing <kbd>F1</kbd>. * The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing <kbd>F1</kbd>.
* The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers. * The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers.

View File

@ -69,7 +69,7 @@ The board view has mild support for keyboard-based navigation:
<figure class="image image-style-align-center"><img style="aspect-ratio:531/485;" src="Kanban Board_image.png" width="531" height="485"></figure> <figure class="image image-style-align-center"><img style="aspect-ratio:531/485;" src="Kanban Board_image.png" width="531" height="485"></figure>
Note attributes can be displayed on the board to enhance it with custom information such as adding a Due date for your tasks. Since v0.100.0, note attributes can be displayed on the board to enhance it with custom information such as adding a _Due date_ for your tasks.
This feature works exclusively via attribute definitions (<a class="reference-link" href="../Advanced%20Usage/Attributes/Promoted%20Attributes.md">Promoted Attributes</a>). The easiest way to add these is: This feature works exclusively via attribute definitions (<a class="reference-link" href="../Advanced%20Usage/Attributes/Promoted%20Attributes.md">Promoted Attributes</a>). The easiest way to add these is:
@ -116,7 +116,7 @@ To do so:
1. First, create a Kanban board from scratch and not a template: 1. First, create a Kanban board from scratch and not a template:
2. Assign `#viewType=board #hidePromotedAttributes` to emulate the default template. 2. Assign `#viewType=board #hidePromotedAttributes` to emulate the default template.
3. Set `#board:groupBy` to the name of a relation to group by, **including the** `**~**` **prefix** (e.g. `~status`). 3. Set `#board:groupBy` to the name of a relation to group by, **including the** `~` **prefix** (e.g. `~status`).
4. Optionally, use <a class="reference-link" href="../Advanced%20Usage/Attributes/Promoted%20Attributes.md">Promoted Attributes</a> for easy status change within the note: 4. Optionally, use <a class="reference-link" href="../Advanced%20Usage/Attributes/Promoted%20Attributes.md">Promoted Attributes</a> for easy status change within the note:
``` ```

View File

@ -5,7 +5,7 @@
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. 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.
<table><thead><tr><th>Label</th><th>Description</th></tr></thead><tbody><tr><td><code spellcheck="false">run</code></td><td><p>Defines on which events script should run. Possible values are:</p><ul><li data-list-item-id="e244b14e102cf1b0d4954e8fd455ea77b"><code spellcheck="false">frontendStartup</code> - when Trilium frontend starts up (or is refreshed), but not on mobile.</li><li data-list-item-id="ea8f8ca86e7b351dd86108848ccb9103a"><code spellcheck="false">mobileStartup</code> - when Trilium frontend starts up (or is refreshed), on mobile.</li><li data-list-item-id="e658488cf1a0862603088ef384e41b8b6"><code spellcheck="false">backendStartup</code> - when Trilium backend starts up</li><li data-list-item-id="ef40ba992fc450d33a18ca4cb031eca66"><code spellcheck="false">hourly</code> - run once an hour. You can use additional label <code spellcheck="false">runAtHour</code> to specify at which hour, on the back-end.</li><li data-list-item-id="e07458d4f55b6eb42468a5535b8425c5f"><code spellcheck="false">daily</code> - run once a day, on the back-end</li></ul></td></tr><tr><td><code spellcheck="false">runOnInstance</code></td><td>Specifies that the script should only run on a particular&nbsp;<a class="reference-link" href="../../Advanced%20Usage/Configuration%20(config.ini%20or%20environment%20variables)/Trilium%20instance.md">Trilium instance</a>.</td></tr><tr><td><code spellcheck="false">runAtHour</code></td><td>On which hour should this run. Should be used together with <code spellcheck="false">#run=hourly</code>. Can be defined multiple times for more runs during the day.</td></tr></tbody></table> <table><thead><tr><th>Label</th><th>Description</th></tr></thead><tbody><tr><td><code>run</code></td><td><p>Defines on which events script should run. Possible values are:</p><ul><li data-list-item-id="e244b14e102cf1b0d4954e8fd455ea77b"><code>frontendStartup</code> - when Trilium frontend starts up (or is refreshed), but not on mobile.</li><li data-list-item-id="ea8f8ca86e7b351dd86108848ccb9103a"><code>mobileStartup</code> - when Trilium frontend starts up (or is refreshed), on mobile.</li><li data-list-item-id="e658488cf1a0862603088ef384e41b8b6"><code>backendStartup</code> - when Trilium backend starts up</li><li data-list-item-id="ef40ba992fc450d33a18ca4cb031eca66"><code>hourly</code> - run once an hour. You can use additional label <code>runAtHour</code> to specify at which hour, on the back-end.</li><li data-list-item-id="e07458d4f55b6eb42468a5535b8425c5f"><code>daily</code> - run once a day, on the back-end</li></ul></td></tr><tr><td><code>runOnInstance</code></td><td>Specifies that the script should only run on a particular&nbsp;<a class="reference-link" href="../../Advanced%20Usage/Configuration%20(config.ini%20or%20environment%20variables)/Trilium%20instance.md">Trilium instance</a>.</td></tr><tr><td><code>runAtHour</code></td><td>On which hour should this run. Should be used together with <code>#run=hourly</code>. Can be defined multiple times for more runs during the day.</td></tr></tbody></table>
## Entity events ## Entity events