Class: FrontendScriptApi

FrontendScriptApi

Members

$container

Properties:
Name Type Description
container jQuery of all the rendered script content

BasicWidget

Properties:
Type Description
BasicWidget

CollapsibleWidget

Properties:
Type Description
RightPanelWidget
Deprecated:
  • use api.RightPanelWidget instead

NoteContextAwareWidget

Properties:
Type Description
NoteContextAwareWidget

NoteContextCachingWidget

Properties:
Type Description
NoteContextAwareWidget
Deprecated:
  • use NoteContextAwareWidget instead

RightPanelWidget

Properties:
Type Description
RightPanelWidget

TabAwareWidget

Properties:
Type Description
NoteContextAwareWidget
Deprecated:
  • use NoteContextAwareWidget instead

TabCachingWidget

Properties:
Type Description
NoteContextAwareWidget
Deprecated:
  • use NoteContextAwareWidget instead

currentNote

Properties:
Name Type Description
note object where script is currently executing

originEntity

Properties:
Name Type Description
entity object | null whose event triggered this execution

startNote

Properties:
Name Type Description
note object where script started executing

Methods

activateNewNote(notePath) → {Promise.<void>}

Activates newly created note. Compared to this.activateNote() also makes sure that frontend has been fully synced.
Parameters:
Name Type Description
notePath string (or noteId)
Returns:
Type
Promise.<void>

activateNote(notePath) → {Promise.<void>}

Activates note in the tree and in the note detail.
Parameters:
Name Type Description
notePath string (or noteId)
Returns:
Type
Promise.<void>

addButtonToToolbar(opts)

Adds a new launcher to the launchbar. If the launcher (id) already exists, it will be updated.
Parameters:
Name Type Description
opts object
Properties:
Name Type Attributes Description
opts.id string <optional>
id of the button, used to identify the old instances of this button to be replaced ID is optional because of BC, but not specifying it is deprecated. ID can be alphanumeric only.
opts.title string
opts.icon string <optional>
name of the boxicon to be used (e.g. "time" for "bx-time" icon)
opts.action function callback handling the click on the button
opts.shortcut string <optional>
keyboard shortcut for the button, e.g. "alt+t"
Deprecated:
  • you can now create/modify launchers in the top-left Menu -> Configure Launchbar for special needs there's also backend API's createOrUpdateLauncher()

addTextToActiveContextEditor(text)

Adds given text to the editor cursor
Parameters:
Name Type Description
text string this must be clear text, HTML is not supported.

addTextToActiveTabEditor(text)

Adds given text to the editor cursor
Parameters:
Name Type Description
text string this must be clear text, HTML is not supported.
Deprecated:
  • use addTextToActiveContextEditor() instead

bindGlobalShortcut(keyboardShortcut, handler, namespaceopt)

Parameters:
Name Type Attributes Description
keyboardShortcut string e.g. "ctrl+shift+a"
handler function
namespace string <optional>
specify namespace of the handler for the cases where call for bind may be repeated. If a handler with this ID exists, it's replaced by the new handler.
Create note link (jQuery object) for given note.
Parameters:
Name Type Attributes Description
notePath string (or noteId)
params object <optional>
Properties
Name Type Attributes Default Description
showTooltip boolean <optional>
true enable/disable tooltip on the link
showNotePath boolean <optional>
false show also whole note's path as part of the link
showNoteIcon boolean <optional>
false show also note icon before the title
title= string <optional>
custom link tile with note's title as default

formatDateISO(date) → {string}

Parameters:
Name Type Description
date Date
Returns:
date in YYYY-MM-DD format
Type
string

getActiveContextCodeEditor() → {Promise.<CodeMirror>}

See https://codemirror.net/doc/manual.html#api
Returns:
instance of CodeMirror
Type
Promise.<CodeMirror>

getActiveContextNote() → {FNote}

Returns:
active note (loaded into right pane)
Type
FNote

getActiveContextNotePath() → {Promise.<(string|null)>}

Returns:
returns note path of active note or null if there isn't active note
Type
Promise.<(string|null)>

getActiveContextTextEditor() → {Promise.<CKEditor>}

See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html for a documentation on the returned instance.
Returns:
instance of CKEditor
Type
Promise.<CKEditor>

getActiveNoteDetailWidget() → {Promise.<NoteDetailWidget>}

Get access to the widget handling note detail. Methods like `getWidgetType()` and `getTypeWidget()` to get to the implementation of actual widget type.
Returns:
Type
Promise.<NoteDetailWidget>

getActiveTabNote() → {FNote}

Deprecated:
  • use getActiveContextNote() instead
Returns:
active note (loaded into right pane)
Type
FNote

getActiveTabNotePath() → {Promise.<(string|null)>}

Deprecated:
  • use getActiveContextNotePath() instead
Returns:
returns note path of active note or null if there isn't active note
Type
Promise.<(string|null)>

getActiveTabTextEditor(callbackopt)

See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html for a documentation on the returned instance.
Parameters:
Name Type Attributes Description
callback <optional>
callback receiving "textEditor" instance
Deprecated:
  • use getActiveContextTextEditor()

getComponentByEl(el) → {Component}

Returns component which owns given DOM element (the nearest parent component in DOM tree)
Parameters:
Name Type Description
el Element DOM element
Returns:
Type
Component

getDateNote(date) → {Promise.<FNote>}

Returns day note for a given date. If it doesn't exist, it is automatically created.
Parameters:
Name Type Description
date string e.g. "2019-04-29"
Deprecated:
  • use getDayNote instead
Returns:
Type
Promise.<FNote>

getDayNote(date) → {Promise.<FNote>}

Returns day note for a given date. If it doesn't exist, it is automatically created.
Parameters:
Name Type Description
date string e.g. "2019-04-29"
Returns:
Type
Promise.<FNote>

getInstanceName() → {string}

Instance name identifies particular Trilium instance. It can be useful for scripts if some action needs to happen on only one specific instance.
Returns:
Type
string

getMonthNote(month) → {Promise.<FNote>}

Returns month-note. If it doesn't exist, it is automatically created.
Parameters:
Name Type Description
month string e.g. "2019-04"
Returns:
Type
Promise.<FNote>

getNote(noteId) → {Promise.<FNote>}

Returns note by given noteId. If note is missing from cache, it's loaded. *
Parameters:
Name Type Description
noteId string
Returns:
Type
Promise.<FNote>

getNotes(noteIds, silentNotFoundErroropt) → {Promise.<Array.<FNote>>}

Returns list of notes. If note is missing from cache, it's loaded. This is often used to bulk-fill the cache with notes which would have to be picked one by one otherwise (by e.g. createNoteLink())
Parameters:
Name Type Attributes Description
noteIds Array.<string>
silentNotFoundError boolean <optional>
don't report error if the note is not found
Returns:
Type
Promise.<Array.<FNote>>

getTodayNote() → {Promise.<FNote>}

Returns date-note for today. If it doesn't exist, it is automatically created.
Returns:
Type
Promise.<FNote>

getWeekNote(date) → {Promise.<FNote>}

Returns day note for the first date of the week of the given date. If it doesn't exist, it is automatically created.
Parameters:
Name Type Description
date string e.g. "2019-04-29"
Returns:
Type
Promise.<FNote>

getYearNote(year) → {Promise.<FNote>}

Returns year-note. If it doesn't exist, it is automatically created.
Parameters:
Name Type Description
year string e.g. "2019"
Returns:
Type
Promise.<FNote>

log(message)

Log given message to the log pane in UI
Parameters:
Name Type Description
message

openSplitWithNote(notePath, activate) → {Promise.<void>}

Open a note in a new split.
Parameters:
Name Type Description
notePath string (or noteId)
activate boolean set to true to activate the new split, false to stay on the current split
Returns:
Type
Promise.<void>

openTabWithNote(notePath, activate) → {Promise.<void>}

Open a note in a new tab.
Parameters:
Name Type Description
notePath string (or noteId)
activate boolean set to true to activate the new tab, false to stay on the current tab
Returns:
Type
Promise.<void>

parseDate(str) → {Date}

Parameters:
Name Type Description
str string
Returns:
parsed object
Type
Date

protectActiveNote()

Deprecated:
  • use protectNote and protectSubtree instead

protectNote(noteId, protect)

Parameters:
Name Type Description
noteId string
protect boolean true to protect note, false to unprotect

protectSubTree(noteId, protect)

Parameters:
Name Type Description
noteId string
protect boolean true to protect subtree, false to unprotect

randomString(length) → {string}

Return randomly generated string of given length. This random string generation is NOT cryptographically secure.
Parameters:
Name Type Description
length number of the string
Returns:
random string
Type
string

refreshIncludedNote(includedNoteId)

This will refresh all currently opened notes which have included note specified in the parameter
Parameters:
Name Type Description
includedNoteId noteId of the included note

refreshTree()

Deprecated:
  • - this is now no-op since all the changes should be gracefully handled per widget

reloadNotes(noteIds)

Update frontend tree (note) cache from the backend.
Parameters:
Name Type Description
noteIds Array.<string>

runOnBackend(script, params) → {Promise.<*>}

Executes given anonymous function on the backend. Internally this serializes the anonymous function into string and sends it to backend via AJAX.
Parameters:
Name Type Description
script string script to be executed on the backend
params Array.<?> list of parameters to the anonymous function to be send to backend
Returns:
return value of the executed function on the backend
Type
Promise.<*>

runOnServer()

Deprecated:
  • new name of this API call is runOnBackend so use that

searchForNote(searchString) → {Promise.<(FNote|null)>}

This is a powerful search method - you can search by attributes and their values, e.g.: "#dateModified =* MONTH AND #log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search
Parameters:
Name Type Description
searchString string
Returns:
Type
Promise.<(FNote|null)>

searchForNotes(searchString) → {Promise.<Array.<FNote>>}

This is a powerful search method - you can search by attributes and their values, e.g.: "#dateModified =* MONTH AND #log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search
Parameters:
Name Type Description
searchString string
Returns:
Type
Promise.<Array.<FNote>>

setHoistedNoteId(noteId) → {Promise}

Hoist note in the current tab. See https://github.com/zadam/trilium/wiki/Note-hoisting
Parameters:
Name Type Description
noteId string set hoisted note. 'root' will effectively unhoist
Returns:
Type
Promise

setupElementTooltip($el)

Parameters:
Name Type Description
$el object jquery object on which to setup the tooltip

showError(message)

Show error message to the user.
Parameters:
Name Type Description
message string

showMessage(message)

Show info message to the user.
Parameters:
Name Type Description
message string

triggerCommand(name, data)

Trigger command.
Parameters:
Name Type Description
name string
data object

triggerEvent(name, data)

Trigger event.
Parameters:
Name Type Description
name string
data object

waitUntilSynced()

Trilium runs in backend and frontend process, when something is changed on the backend from script, frontend will get asynchronously synchronized. This method returns a promise which resolves once all the backend -> frontend synchronization is finished. Typical use case is when new note has been created, we should wait until it is synced into frontend and only then activate it.