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
isProtected boolean true if note is protected
isDeleted boolean true if note is deleted
deleteId string | null ID identifying delete transaction
dateCreated string local date time (with offset)
dateModified string local date time (with offset)
utcDateCreated string
utcDateModified string
Source:

Extends

Methods

addAttribute() → {Attribute}

Source:
Returns:
Type
Attribute

getAllNotePaths() → {Array.<Array.<string>>}

Source:
Returns:
- array of notePaths (each represented by array of noteIds constituting the particular note path)
Type
Array.<Array.<string>>

getAttribute(type, name) → {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
Attribute

getAttributes(typeopt, nameopt) → {Array.<Attribute>}

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

getAttributeValue(type, name) → {string|null}

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
string | null

getBranches() → {Array.<Branch>}

Source:
Returns:
Type
Array.<Branch>

getChildBranches() → {Array.<Branch>}

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

getChildNotes() → {Array.<Note>}

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

getContent() → {*}

Source:
Returns:
Type
*

getContentMetadata() → {Object}

Source:
Returns:
Type
Object

getDescendantNoteIds() → {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
Array.<string>

getDescendantNotesWithAttribute(type, name, valueopt) → {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
Array.<Note>

getDescendantNotesWithLabel(name, valueopt) → {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
Array.<Note>

getDescendantNotesWithRelation(name, valueopt) → {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
Array.<Note>

getJsonContent() → {*}

Source:
Returns:
Type
*

getLabel(name) → {Attribute|null}

Parameters:
Name Type Description
name string label name
Source:
Returns:
label if it exists, null otherwise
Type
Attribute | null

getLabels(nameopt) → {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
Array.<Attribute>

getLabelValue(name) → {string|null}

Parameters:
Name Type Description
name string label name
Source:
Returns:
label value if label exists, null otherwise
Type
string | null
Get list of links coming out of this note.
Deprecated:
  • - not intended for general use
Source:
Returns:
Type
Array.<Attribute>

getOwnedAttribute() → {Attribute}

Source:
Returns:
attribute belonging to this specific note (excludes inherited attributes) This method can be significantly faster than the getAttribute()
Type
Attribute

getOwnedAttributes(typeopt, nameopt) → {Array.<Attribute>}

This method is a faster variant of getAttributes() which looks for only owned attributes. Use when inheritance is not needed and/or in batch/performance sensitive operations.
Parameters:
Name Type Attributes Description
type string <optional>
(optional) attribute type to filter
name string <optional>
(optional) attribute name to filter
Source:
Returns:
note's "owned" attributes - excluding inherited ones
Type
Array.<Attribute>

getOwnedAttributeValue(type, name) → {string|null}

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
string | null

getOwnedLabel(name) → {Attribute|null}

Parameters:
Name Type Description
name string label name
Source:
Returns:
label if it exists, null otherwise
Type
Attribute | null

getOwnedLabels(nameopt) → {Array.<Attribute>}

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

getOwnedLabelValue(name) → {string|null}

Parameters:
Name Type Description
name string label name
Source:
Returns:
label value if label exists, null otherwise
Type
string | null

getOwnedRelation(name) → {Attribute|null}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
relation if it exists, null otherwise
Type
Attribute | null

getOwnedRelations(nameopt) → {Array.<Attribute>}

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

getOwnedRelationTarget(name) → {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
Note | null

getOwnedRelationValue(name) → {string|null}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
relation value if relation exists, null otherwise
Type
string | null

getParentNotes() → {Array.<Note>}

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

getRelation(name) → {Attribute|null}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
relation if it exists, null otherwise
Type
Attribute | null

getRelations(nameopt) → {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
Array.<Attribute>

getRelationTarget(name) → {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
Note | null

getRelationTargets(nameopt) → {Array.<Note>}

Parameters:
Name Type Attributes Description
name string <optional>
relation name to filter
Source:
Returns:
Type
Array.<Note>

getRelationValue(name) → {string|null}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
relation value if relation exists, null otherwise
Type
string | null

getRevisions() → {Array.<NoteRevision>}

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

getScriptEnv() → {string}

Source:
Returns:
JS script environment - either "frontend" or "backend"
Type
string

getTargetRelations() → {Array.<Attribute>}

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

hasAttribute(type, name) → {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
boolean

hasChildren() → {boolean}

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

hasLabel(name) → {boolean}

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

hasOwnedAttribute(type, name) → {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 (excluding inherited)
Type
boolean

hasOwnedLabel(name) → {boolean}

Parameters:
Name Type Description
name string label name
Source:
Returns:
true if label exists (excluding inherited)
Type
boolean

hasOwnedRelation(name) → {boolean}

Parameters:
Name Type Description
name string relation name
Source:
Returns:
true if relation exists (excluding inherited)
Type
boolean

hasRelation(name) → {boolean}

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

invalidateAttributeCache()

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

isDescendantOfNote(ancestorNoteId) → {boolean}

Parameters:
Name Type Description
ancestorNoteId
Source:
Returns:
- true if ancestorNoteId occurs in at least one of the note's paths
Type
boolean

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

isStringNote() → {boolean}

Source:
Returns:
true if the note has string content (not binary)
Type
boolean

removeAttribute(type, name, valueopt)

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:

removeLabel(name, valueopt)

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

removeRelation(name, valueopt)

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

setAttribute(type, name, valueopt)

Update's given attribute's value or creates it 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:

setLabel(name, valueopt)

Update's given label's value or creates it if it doesn't exist
Parameters:
Name Type Attributes Description
name string label name
value string <optional>
label value
Source:

setRelation(name, value)

Update's given relation's value or creates it if it doesn't exist
Parameters:
Name Type Description
name string relation name
value string relation value (noteId)
Source:

toggleAttribute(type, enabled, name, valueopt)

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:

toggleLabel(enabled, name, valueopt)

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:

toggleRelation(enabled, name, valueopt)

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: