Class: Note

Note(row)

This represents a Note which is a central object in the Trilium Notes project.

Constructor

new Note(row)

Parameters:
Name Type Description
row object containing database row from "notes" table
Properties:
Name Type Description
noteId string primary key
type string one of "text", "code", "file" or "render"
mime string MIME type, e.g. "text/html"
title string note title
content string note content - e.g. HTML text for text notes, file payload for files
isProtected boolean true if note is protected
isDeleted boolean true if note is deleted
dateCreated string
dateModified string
Source:

Extends

Methods

(async) getAttribute(type, name) → {Promise.<Attribute>}

Parameters:
Name Type Description
type string attribute type (label, relation, etc.)
name string attribute name
Source:
Returns:
attribute of given type and name. If there's more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.
Type
Promise.<Attribute>

(async) getAttributes(nameopt) → {Promise.<Array.<Attribute>>}

Parameters:
Name Type Attributes Description
name string <optional>
attribute name to filter
Source:
Returns:
all note's attributes, including inherited ones
Type
Promise.<Array.<Attribute>>

(async) getAttributeValue(type, name) → {Promise.<string>}

Parameters:
Name Type Description
type string attribute type (label, relation, etc.)
name string attribute name
Source:
Returns:
attribute value of given type and name or null if no such attribute exists.
Type
Promise.<string>

(async) getBranches() → {Promise.<Array.<Branch>>}

Source:
Returns:
Type
Promise.<Array.<Branch>>

(async) getChildBranches() → {Promise.<Array.<Branch>>}

Source:
Returns:
child branches of this note
Type
Promise.<Array.<Branch>>

(async) getChildNotes() → {Promise.<Array.<Note>>}

Source:
Returns:
child notes of this note
Type
Promise.<Array.<Note>>

(async) getDescendantNoteIds() → {Promise.<Array.<string>>}

Source:
Returns:
return list of all descendant noteIds of this note. Returning just noteIds because number of notes can be huge. Includes also this note's noteId
Type
Promise.<Array.<string>>

(async) getDescendantNotesWithAttribute(type, name, valueopt) → {Promise.<Array.<Note>>}

Finds descendant notes with given attribute name and value. Only own attributes are considered, not inherited ones
Parameters:
Name Type Attributes Description
type string attribute type (label, relation, etc.)
name string attribute name
value string <optional>
attribute value
Source:
Returns:
Type
Promise.<Array.<Note>>

(async) getDescendantNotesWithLabel(name, valueopt) → {Promise.<Array.<Note>>}

Finds descendant notes with given label name and value. Only own labels are considered, not inherited ones
Parameters:
Name Type Attributes Description
name string label name
value string <optional>
label value
Source:
Returns:
Type
Promise.<Array.<Note>>

(async) getDescendantNotesWithRelation(name, valueopt) → {Promise.<Array.<Note>>}

Finds descendant notes with given relation name and value. Only own relations are considered, not inherited ones
Parameters:
Name Type Attributes Description
name string relation name
value string <optional>
relation value
Source:
Returns:
Type
Promise.<Array.<Note>>

(async) getLabel(name) → {Promise.<Attribute>}

Parameters:
Name Type Description
name string label name
Source:
Returns:
label if it exists, null otherwise
Type
Promise.<Attribute>

(async) getLabelDefinitions(nameopt) → {Promise.<Array.<Attribute>>}

Parameters:
Name Type Attributes Description
name string <optional>
label name to filter
Source:
Returns:
all note's label definitions, including inherited ones
Type
Promise.<Array.<Attribute>>

(async) getLabels(nameopt) → {Promise.<Array.<Attribute>>}

Parameters:
Name Type Attributes Description
name string <optional>
label name to filter
Source:
Returns:
all note's labels (attributes with type label), including inherited ones
Type
Promise.<Array.<Attribute>>

(async) getLabelValue(name) → {Promise.<string>}

Parameters:
Name Type Description
name string label name
Source:
Returns:
label value if label exists, null otherwise
Type
Promise.<string>
Get list of links coming out of this note.
Source:
Returns:
Type
Promise.<Array.<Link>>

(async) getLinksWithDeleted() → {Promise.<Array.<Link>>}

Return all links from this note, including deleted ones.
Source:
Returns:
Type
Promise.<Array.<Link>>

(async) getOwnedAttributes() → {Promise.<Array.<Attribute>>}

Source:
Returns:
attributes belonging to this specific note (excludes inherited attributes)
Type
Promise.<Array.<Attribute>>

(async) getParentNotes() → {Promise.<Array.<Note>>}

Source:
Returns:
parent notes of this note (note can have multiple parents because of cloning)
Type
Promise.<Array.<Note>>

(async) getRelation(name) → {Promise.<Attribute>}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
relation if it exists, null otherwise
Type
Promise.<Attribute>

(async) getRelationDefinitions(nameopt) → {Promise.<Array.<Attribute>>}

Parameters:
Name Type Attributes Description
name string <optional>
relation name to filter
Source:
Returns:
all note's relation definitions including inherited ones
Type
Promise.<Array.<Attribute>>

(async) getRelations(nameopt) → {Promise.<Array.<Attribute>>}

Parameters:
Name Type Attributes Description
name string <optional>
relation name to filter
Source:
Returns:
all note's relations (attributes with type relation), including inherited ones
Type
Promise.<Array.<Attribute>>

(async) getRelationTarget(name) → {Promise.<Note>|null}

Parameters:
Name Type Description
name string
Source:
Returns:
target note of the relation or null (if target is empty or note was not found)
Type
Promise.<Note> | null

(async) getRelationValue(name) → {Promise.<string>}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
relation value if relation exists, null otherwise
Type
Promise.<string>

(async) getRevisions() → {Promise.<Array.<NoteRevision>>}

Returns note revisions of this note.
Source:
Returns:
Type
Promise.<Array.<NoteRevision>>

getScriptEnv() → {string}

Source:
Returns:
JS script environment - either "frontend" or "backend"
Type
string
Get list of links targetting this note.
Source:
Returns:
Type
Promise.<Array.<Link>>

(async) getTargetRelations() → {Promise.<Array.<Attribute>>}

Source:
Returns:
relations targetting this specific note
Type
Promise.<Array.<Attribute>>

(async) hasAttribute(type, name) → {Promise.<boolean>}

Parameters:
Name Type Description
type string attribute type (label, relation, etc.)
name string attribute name
Source:
Returns:
true if note has an attribute with given type and name (including inherited)
Type
Promise.<boolean>

(async) hasChildren() → {boolean}

Source:
Returns:
- true if note has children
Type
boolean

(async) hasLabel(name) → {Promise.<boolean>}

Parameters:
Name Type Description
name string label name
Source:
Returns:
true if label exists (including inherited)
Type
Promise.<boolean>

(async) hasRelation(name) → {Promise.<boolean>}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
true if relation exists (including inherited)
Type
Promise.<boolean>

invalidateAttributeCache()

Clear note's attributes cache to force fresh reload for next attribute request. Cache is note instance scoped.
Source:

isHtml() → {boolean}

Source:
Returns:
true if this note is HTML
Type
boolean

isJavaScript() → {boolean}

Source:
Returns:
true if this note is JavaScript (code or attachment)
Type
boolean

isJson() → {boolean}

Source:
Returns:
true if this note is of application/json content type
Type
boolean

isRoot() → {boolean}

Source:
Returns:
true if this note is the root of the note tree. Root note has "root" noteId
Type
boolean

(async) loadAttributesToCache() → {Promise.<void>}

Source:
Returns:
Type
Promise.<void>

(async) removeAttribute(type, name, valueopt) → {Promise.<void>}

Removes given attribute name-value pair if it exists.
Parameters:
Name Type Attributes Description
type string attribute type (label, relation, etc.)
name string attribute name
value string <optional>
attribute value (optional)
Source:
Returns:
Type
Promise.<void>

(async) removeLabel(name, valueopt) → {Promise.<void>}

Remove label name-value pair, if it exists.
Parameters:
Name Type Attributes Description
name string label name
value string <optional>
label value
Source:
Returns:
Type
Promise.<void>

(async) removeRelation(name, valueopt) → {Promise.<void>}

Remove relation name-value pair, if it exists.
Parameters:
Name Type Attributes Description
name string relation name
value string <optional>
relation value (noteId)
Source:
Returns:
Type
Promise.<void>

(async) setAttribute(type, name, valueopt) → {Promise.<void>}

Creates given attribute name-value pair if it doesn't exist.
Parameters:
Name Type Attributes Description
type string attribute type (label, relation, etc.)
name string attribute name
value string <optional>
attribute value (optional)
Source:
Returns:
Type
Promise.<void>

(async) setLabel(name, valueopt) → {Promise.<void>}

Create label name-value pair if it doesn't exist yet.
Parameters:
Name Type Attributes Description
name string label name
value string <optional>
label value
Source:
Returns:
Type
Promise.<void>

(async) setRelation(name, valueopt) → {Promise.<void>}

Create relation name-value pair if it doesn't exist yet.
Parameters:
Name Type Attributes Description
name string relation name
value string <optional>
relation value (noteId)
Source:
Returns:
Type
Promise.<void>

(async) toggleAttribute(type, enabled, name, valueopt) → {Promise.<void>}

Based on enabled, attribute is either set or removed.
Parameters:
Name Type Attributes Description
type string attribute type ('relation', 'label' etc.)
enabled boolean toggle On or Off
name string attribute name
value string <optional>
attribute value (optional)
Source:
Returns:
Type
Promise.<void>

(async) toggleLabel(enabled, name, valueopt) → {Promise.<void>}

Based on enabled, label is either set or removed.
Parameters:
Name Type Attributes Description
enabled boolean toggle On or Off
name string label name
value string <optional>
label value (optional)
Source:
Returns:
Type
Promise.<void>

(async) toggleRelation(enabled, name, valueopt) → {Promise.<void>}

Based on enabled, relation is either set or removed.
Parameters:
Name Type Attributes Description
enabled boolean toggle On or Off
name string relation name
value string <optional>
relation value (noteId)
Source:
Returns:
Type
Promise.<void>