2025-04-07 12:30:37 +03:00

4.5 KiB
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 example, linking a book note to an author note.
  • Scripting: Attaching scripts to events or conditions related to the note.

Creating a relation using the visual editor

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

Tip

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

While in the visual editor:

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

Creating a relation manually

In the Owned Attributes section in the Ribbon:

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

Predefined relations

These relations are supported and used internally by Trilium.

Tip

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

LabelDescription
runOn*See Events
templatenote's attributes will be inherited even without a parent-child relationship, note's content and subtree will be added to instance notes if empty. See documentation for details.
inheritnote's attributes will be inherited even without a parent-child relationship. See Templates for a similar concept. See Attribute Inheritance in the documentation.
renderNotenotes of type Render Note will be rendered using a code note (HTML or script) and it is necessary to point using this relation to which note should be rendered
widget_relationtarget of this relation will be executed and rendered as a widget in the sidebar
shareCssCSS note which will be injected into the share page. CSS note must be in the shared sub-tree as well. Consider using share_hidden_from_tree and share_omit_default_css as well.
shareJsJavaScript note which will be injected into the share page. JS note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.
shareTemplateEmbedded JavaScript note that will be used as the template for displaying the shared note. Falls back to the default template. Consider using share_hidden_from_tree.
shareFaviconFavicon note to be set in the shared page. Typically you want to set it to share root and make it inheritable. Favicon note must be in the shared sub-tree as well. Consider using share_hidden_from_tree.