When first creating a collection of Board type, a few subnotes
- will be created, each having a #status label set. The board
- then groups each note by the value of the status attribute.
+ will be created, each having a #status label
+ set. The board then groups each note by the value of the status attribute.
Notes are displayed recursively, so even the child notes of the child
notes will be displayed. However, unlike the Table, the notes are not displayed in a hierarchy.
Interaction
Working with columns
-
Create a new column by pressing Add Column near the last column.
+
Create a new column by pressing Add Column near the last column.
-
Once pressed, a text box will be displayed to set the name of the column.
+
Once pressed, a text box will be displayed to set the name of the column.
Press Enter to confirm, or Escape to dismiss.
-
To reorder a column, simply hold the mouse over the title and drag it
+
To reorder a column, simply hold the mouse over the title and drag it
to the desired position.
-
To delete a column, right click on its title and select Delete column.
-
To rename a column, click on the note title.
+
To delete a column, right click on its title and select Delete column.
+
To rename a column, click on the note title.
-
Press Enter to confirm.
-
Upon renaming a column, the corresponding status attribute of all its
+
Press Enter to confirm.
+
Upon renaming a column, the corresponding status attribute of all its
notes will be changed in bulk.
-
-
If there are many columns, use the mouse wheel to scroll.
+
+
If there are many columns, use the mouse wheel to scroll.
Working with notes
-
Create a new note in any column by pressing New item
+
Create a new note in any column by pressing New item
-
Enter the name of the note and press Enter or click away. To
+
Enter the name of the note and press Enter or click away. To
dismiss the creation of a new note, simply press Escape or leave
the name empty.
-
Once created, the new note will have an attribute (status label
+
Once created, the new note will have an attribute (status label
by default) set to the name of the column.
-
To open the note, simply click on it.
-
To change the title of the note directly from the board, hover the mouse
+
To open the note, simply click on it.
+
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.
-
To change the state of a note, simply drag a note from one column to the
+
To change the state of a note, simply drag a note from one column to the
other to change its state.
-
The order of the notes in each column corresponds to their position in
+
The order of the notes in each column corresponds to their position in
the tree.
-
It's possible to reorder notes simply by dragging them to the desired
+
It's possible to reorder notes simply by dragging them to the desired
position within the same columns.
-
It's also possible to drag notes across columns, at the desired position.
+
It's also possible to drag notes across columns, at the desired position.
-
For more options, right click on a note to display a context menu with
+
For more options, right click on a note to display a context menu with
the following options:
-
Open the note in a new tab/split/window or quick edit.
-
Move the note to any column.
-
Insert a new note above/below the current one.
-
Archive/unarchive the current note.
-
Delete the current note.
+
Open the note in a new tab/split/window or quick edit.
+
Move the note to any column.
+
Insert a new note above/below the current one.
+
Archive/unarchive the current note.
+
Delete the current note.
-
If there are many notes within the column, move the mouse over the column
+
If there are many notes within the column, move the mouse over the column
and use the mouse wheel to scroll.
Working with the note tree
It's also possible to add items on the board using the Note Tree.
Hold the mouse on the note and drag it to the to the desired column.
This works for:
-
Notes that are not children of the board, case in which a clone will
+
Notes that are not children of the board, case in which a clone will
be created.
-
Notes that are children of the board, but not yet assigned on the board.
-
Notes that are children of the board, case in which they will be moved
+
Notes that are children of the board, but not yet assigned on the board.
+
Notes that are children of the board, case in which they will be moved
to the new column.
Keyboard interaction
The board view has mild support for keyboard-based navigation:
-
Use Tab and Shift+Tab to navigate between
+
Use Tab and Shift+Tab to navigate between
column titles, notes and the “New item” button for each of the columns,
in sequential order.
-
To rename a column or a note, press F2 while it is focused.
-
To open a specific note or create a new item, press Enter while
+
To rename a column or a note, press F2 while it is focused.
+
To open a specific note or create a new item, press Enter while
it is focused.
-
To dismiss a rename of a note or a column, press Escape.
+
To dismiss a rename of a note or a column, press Escape.
Configuration
Displaying custom attributes
@@ -102,39 +106,43 @@
-
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 (Promoted Attributes). The easiest way to
add these is:
-
Go to board note.
-
In the ribbon select Owned Attributes → plus button → Add new label/relation definition.
-
Configure the attribute as desired.
-
Check Inheritable to make it applicable to child notes automatically.
+
Go to board note.
+
In the ribbon select Owned Attributes → plus button → Add new label/relation definition.
+
Configure the attribute as desired.
+
Check Inheritable to make it applicable to child notes automatically.
After creating the attribute, click on a note and fill in the promoted
attributes which should then reflect inside the board.
Of note:
-
Both promoted and non-promoted attribute definitions are supported. The
+
Both promoted and non-promoted attribute definitions are supported. The
only difference is that non-promoted attributes don't have an “Alias” for
assigning a custom name.
-
Both “Single value” and “Multi value” attributes are supported. In case
+
Both “Single value” and “Multi value” attributes are supported. In case
of multi-value, a badge is displayed for every instance of the attribute.
-
All label types are supported, including dates, booleans and URLs.
-
Relation attributes are also supported as well, showing a link with the
- target note title and icon.
-
Currently, it's not possible to adjust which promoted attributes are displayed,
- since all promoted attributes will be displayed (except the board:groupBy one).
- There are plans to improve upon this being able to hide promoted attributes
- individually.
+
All label types are supported, including dates, booleans and URLs.
+
Relation attributes are also supported as well, showing a link with the
+ target note title and icon.
+
Currently, it's not possible to adjust which promoted attributes are displayed,
+ since all promoted attributes will be displayed (except the board:groupBy one).
+ There are plans to improve upon this being able to hide promoted attributes
+ individually.
Grouping by another label
-
By default, the label used to group the notes is #status.
- It is possible to use a different label if needed by defining a label named #board:groupBy with
- the value being the attribute to use (with or without # attribute
- prefix).
+
By default, the label used to group the notes is #status.
+ It is possible to use a different label if needed by defining a label named
+ #board:groupBywith the value being the attribute to use (with or
+ without # attribute prefix).
Grouping by relations
A more advanced use-case is grouping by Relations.
During this mode:
-
The columns represent the target notes of a relation.
-
When creating a new column, a note is selected instead of a column name.
-
The column icon will match the target note.
-
Moving notes between columns will change its relation.
-
Renaming an existing column will change the target note of all the notes
- in that column.
+
The columns represent the target notes of a relation.
+
When creating a new column, a note is selected instead of a column name.
+
The column icon will match the target note.
+
Moving notes between columns will change its relation.
+
Renaming an existing column will change the target note of all the notes
+ in that column.
Using relations instead of labels has some benefits:
-
The status/grouping of the notes is visible outside the Kanban board,
+
The status/grouping of the notes is visible outside the Kanban board,
for example on the Note Map.
-
Columns can have icons.
-
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.
+
Columns can have icons.
+
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.
To do so:
-
-
First, create a Kanban board from scratch and not a template:
-
-
-
Assign #viewType=board #hidePromotedAttributes to emulate the
- default template.
-
-
-
Set #board:groupBy to the name of a relation to group by, including the**~**prefix (e.g. ~status).
-
-
-
Optionally, use Promoted Attributes for
- easy status change within the note:
\ No newline at end of file
diff --git a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Backend scripts/Events.html b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Backend scripts/Events.html
index 59a2a8738..2703fe28b 100644
--- a/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Backend scripts/Events.html
+++ b/apps/server/src/assets/doc_notes/en/User Guide/User Guide/Scripting/Backend scripts/Events.html
@@ -5,169 +5,147 @@
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.
-
-
-
-
-
Label
-
Description
-
-
-
-
-
run
-
-
-
Defines on which events script should run. Possible values are:
-
-
frontendStartup - when Trilium frontend
- starts up (or is refreshed), but not on mobile.
-
mobileStartup - when Trilium frontend starts
- up (or is refreshed), on mobile.
-
backendStartup - when Trilium backend starts
- up
-
hourly - run once an hour. You can use
- additional label runAtHour to specify at
- which hour, on the back-end.
-
daily - run once a day, on the back-end
-
-
-
-
-
runOnInstance
-
-
Specifies that the script should only run on a particular Trilium instance.
-
-
-
runAtHour
-
-
On which hour should this run. Should be used together with #run=hourly.
- Can be defined multiple times for more runs during the day.
-
-
-
-
+
+
+
+
Label
+
Description
+
+
+
+
+
run
+
+
+
Defines on which events script should run. Possible values are:
+
+
frontendStartup - when Trilium frontend starts up (or is refreshed),
+ but not on mobile.
+
mobileStartup - when Trilium frontend starts up (or is refreshed),
+ on mobile.
+
backendStartup - when Trilium backend starts up
+
hourly - run once an hour. You can use additional label runAtHour to
+ specify at which hour, on the back-end.
+
daily - run once a day, on the back-end
+
+
+
+
+
runOnInstance
+
+
Specifies that the script should only run on a particular Trilium instance.
+
+
+
runAtHour
+
+
On which hour should this run. Should be used together with #run=hourly.
+ Can be defined multiple times for more runs during the day.
+
+
+
+
Entity events
Other events are bound to some entity, these are defined as relations -
meaning that script is triggered only if note has this script attached
to it through relations (or it can inherit it).
-
-
-
-
-
-
-
-
-
-
Relation
-
Trigger condition
-
Origin entity (see below)
-
-
-
-
-
runOnNoteCreation
-
-
executes when note is created on backend. Use this relation if you want
- to run the script for all notes created under a specific subtree. In that
- case, create it on the subtree root note and make it inheritable. A new
- note created within the subtree (any depth) will trigger the script.
-
The BNote that got created.
-
-
-
runOnChildNoteCreation
-
-
executes when new note is created under the note where this relation is
- defined
-
The BNote of the child that got created.
-
-
-
runOnNoteTitleChange
-
-
executes when note title is changed (includes note creation as well)
-
The BNote of the note whose title got changed.
-
-
-
runOnNoteContentChange
-
-
executes when note content is changed (includes note creation as well).
-
The BNote of the note whose content got
- changed.
-
-
-
runOnNoteChange
-
-
executes when note is changed (includes note creation as well). Does not
- include content changes
-
The BNote of the note that got changed.
-
-
-
runOnNoteDeletion
-
-
executes when note is being deleted
-
The BNote of the note that got (soft) 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.
-
The BBranch that got created.
-
-
-
runOnBranchChange
-
-
executes when a branch is updated. (since v0.62)
-
The BBranch that got changed.
-
-
-
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).
-
The BBranch that got (soft) deleted.
-
-
-
runOnAttributeCreation
-
-
executes when new attribute is created for the note which defines this
- relation
-
The BAttribute that got created.
-
-
-
runOnAttributeChange
-
-
executes when the attribute is changed of a note which defines this relation.
- This is triggered also when the attribute is deleted
-
The BAttribute that got changed.
-
-
-
-
+
+
+
+
Relation
+
Trigger condition
+
Origin entity (see below)
+
+
+
+
+
runOnNoteCreation
+
+
executes when note is created on backend. Use this relation if you want
+ to run the script for all notes created under a specific subtree. In that
+ case, create it on the subtree root note and make it inheritable. A new
+ note created within the subtree (any depth) will trigger the script.
+
The BNote that got created.
+
+
+
runOnChildNoteCreation
+
+
executes when new note is created under the note where this relation is
+ defined
+
The BNote of the child that got created.
+
+
+
runOnNoteTitleChange
+
+
executes when note title is changed (includes note creation as well)
+
The BNote of the note whose title got changed.
+
+
+
runOnNoteContentChange
+
+
executes when note content is changed (includes note creation as well).
+
The BNote of the note whose content got changed.
+
+
+
runOnNoteChange
+
+
executes when note is changed (includes note creation as well). Does not
+ include content changes
+
The BNote of the note that got changed.
+
+
+
runOnNoteDeletion
+
+
executes when note is being deleted
+
The BNote of the note that got (soft) 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.
+
The BBranch that got created.
+
+
+
runOnBranchChange
+
+
executes when a branch is updated. (since v0.62)
+
The BBranch that got changed.
+
+
+
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).
+
The BBranch that got (soft) deleted.
+
+
+
runOnAttributeCreation
+
+
executes when new attribute is created for the note which defines this
+ relation
+
The BAttribute that got created.
+
+
+
runOnAttributeChange
+
+
executes when the attribute is changed of a note which defines this relation.
+ This is triggered also when the attribute is deleted
+
The BAttribute that got changed.
+
+
+
+
Origin entity
-
When a script is run by an event such as the ones described above,
- api.originEntitywill get populated with the note, branch or attribute
- that triggered the change.
-
For example, here's a script with ~runOnAttributeChange which
- automatically changes the color of a note based on the value of the
- mycategorylabel:
const attr = api.originEntity;
-
+
When a script is run by an event such as the ones described above, api.originEntity will
+ get populated with the note, branch or attribute that triggered the change.
+
For example, here's a script with ~runOnAttributeChange which
+ automatically changes the color of a note based on the value of the mycategory label:
\ No newline at end of file
diff --git a/docs/Developer Guide/Developer Guide/Documentation.md b/docs/Developer Guide/Developer Guide/Documentation.md
index 5889ed1be..6dca18485 100644
--- a/docs/Developer Guide/Developer Guide/Documentation.md
+++ b/docs/Developer Guide/Developer Guide/Documentation.md
@@ -1,5 +1,5 @@
# Documentation
-There are multiple types of documentation for Trilium:
+There are multiple types of documentation for Trilium:
* The _User Guide_ represents the user-facing documentation. This documentation can be browsed by users directly from within Trilium, by pressing F1.
* The _Developer's Guide_ represents a set of Markdown documents that present the internals of Trilium, for developers.
diff --git a/docs/User Guide/User Guide/Collections/Kanban Board.md b/docs/User Guide/User Guide/Collections/Kanban Board.md
index dce70cef7..872c85e97 100644
--- a/docs/User Guide/User Guide/Collections/Kanban Board.md
+++ b/docs/User Guide/User Guide/Collections/Kanban Board.md
@@ -69,7 +69,7 @@ The board view has mild support for keyboard-based navigation:
-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 (Promoted Attributes). 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:
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 Promoted Attributes for easy status change within the note:
```
diff --git a/docs/User Guide/User Guide/Scripting/Backend scripts/Events.md b/docs/User Guide/User Guide/Scripting/Backend scripts/Events.md
index 2ffd2bbdb..27fedb948 100644
--- a/docs/User Guide/User Guide/Scripting/Backend scripts/Events.md
+++ b/docs/User Guide/User Guide/Scripting/Backend scripts/Events.md
@@ -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.
-
Label
Description
run
Defines on which events script should run. Possible values are:
frontendStartup - when Trilium frontend starts up (or is refreshed), but not on mobile.
mobileStartup - when Trilium frontend starts up (or is refreshed), on mobile.
backendStartup - when Trilium backend starts up
hourly - run once an hour. You can use additional label runAtHour to specify at which hour, on the back-end.
daily - run once a day, on the back-end
runOnInstance
Specifies that the script should only run on a particular Trilium instance.
runAtHour
On which hour should this run. Should be used together with #run=hourly. Can be defined multiple times for more runs during the day.
+
Label
Description
run
Defines on which events script should run. Possible values are:
frontendStartup - when Trilium frontend starts up (or is refreshed), but not on mobile.
mobileStartup - when Trilium frontend starts up (or is refreshed), on mobile.
backendStartup - when Trilium backend starts up
hourly - run once an hour. You can use additional label runAtHour to specify at which hour, on the back-end.
daily - run once a day, on the back-end
runOnInstance
Specifies that the script should only run on a particular Trilium instance.
runAtHour
On which hour should this run. Should be used together with #run=hourly. Can be defined multiple times for more runs during the day.