2025-10-01 03:47:49 -04:00

4.6 KiB
Vendored
Raw Blame History

Relations

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

Common use cases

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

Creating a relation using the visual editor

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

Tip

If you prefer keyboard shortcuts, press Alt+L while focused on a note or in the Owned Attributes section to display the visual editor.

While in the visual editor:

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

Creating a relation manually

In the Owned Attributes section in the Ribbon:

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

Predefined relations

These relations are supported and used internally by Trilium.

Tip

Some relations presented here end with a *. That means that there are multiple relations with the same prefix, consult the specific page linked in the description of that relation for more information.

Label Description
runOn* See Events
template note's attributes will be inherited even without a parent-child relationship, note's content and subtree will be added to instance notes if empty. See documentation for details.
inherit note's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
renderNote notes of type Render Note will be rendered using a code note (HTML or script) and it is necessary to point using this relation to which note should be rendered
widget_relation target of this relation will be executed and rendered as a widget in the sidebar
shareCss CSS note which will be injected into the share page. CSS note must be in the shared sub-tree as well. Consider using share_hidden_from_tree and share_omit_default_css as well.
shareJs JavaScript note which will be injected into the share page. JS note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.
shareHtml HTML note which will be injected into the share page at locations specified by the shareHtmlLocation label. HTML note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.
shareTemplate Embedded JavaScript note that will be used as the template for displaying the shared note. Falls back to the default template. Consider using share_hidden_from_tree.
shareFavicon Favicon note to be set in the shared page. Typically you want to set it to share root and make it inheritable. Favicon note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.