# Hooks

# onNoteStored

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, wenn eine Notiz auf der Festplatte gespeichert wird
  * Sie können gespeicherte Notizen nicht ändern, da dies seitdem ein Chaos wäre
  * Sie bearbeiten sie höchstwahrscheinlich gleichzeitig von Hand
  *
  * @param {NoteApi} note - das Notizobjekt der gespeicherten Notiz
  */
Funktion onNoteStored (Hinweis);
1
2
3
4
5
6
7
8

You may want to take a look at the example on-note-opened.qml (opens new window).

# noteOpenedHook

# Methodenaufruf und Parameter

/ **
  * Diese Funktion wird aufgerufen, nachdem eine Notiz geöffnet wurde
  *
  * @param {NoteApi} note - das geöffnete Notizobjekt
  */
function noteOpenedHook(note);
1
2
3
4
5
6

You may want to take a look at the example on-note-opened.qml (opens new window).

# noteDoubleClickedHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, nachdem auf eine Notiz doppelklickt wurde
  *
  * @param {NoteApi} note - das Notizobjekt, auf das geklickt wurde
  */
function noteDoubleClickedHook(note);
1
2
3
4
5
6

You may want to take a look at the example external-note-open.qml (opens new window).

# insertMediaHook

Diese Funktion wird aufgerufen, wenn eine Mediendatei in die aktuelle Notiz eingefügt wird.

Wenn diese Funktion in mehreren Skripten definiert ist, gewinnt das erste Skript, das eine nicht leere Zeichenfolge zurückgibt.

# Methodenaufruf und Parameter

/**
  * @param fileName string Der Dateipfad der Quellmediendatei, bevor sie in den Medienordner kopiert wurde
  * @param markdownText string Der Markdown-Text der Mediendatei, z.B. ![my-image](media/my-image-4101461585.jpg)
  * @return string der neue Markdown-Text der Mediendatei
  */
function insertMediaHook(fileName, markdownText);
1
2
3
4
5
6

You may want to take a look at the example example.qml (opens new window).

# insertAttachmentHook

Diese Funktion wird aufgerufen, wenn eine Anhangsdatei in die aktuelle Notiz eingefügt wird.

Wenn diese Funktion in mehreren Skripten definiert ist, gewinnt das erste Skript, das eine nicht leere Zeichenfolge zurückgibt.

# Methodenaufruf und Parameter

/**
  * @param fileName string Der Dateipfad der Quellanhangsdatei, bevor sie in den Anhangsordner kopiert wurde
  * @param markdownText string Der Markdown-Text der Anhangsdatei, z.B. [my-file.txt](attachments/my-file-4245650967.txt)
  * @return string der neue Markdown-Text der Anhangsdatei
  */
function insertAttachmentHook(fileName, markdownText);
1
2
3
4
5
6

You may want to take a look at the example example.qml (opens new window).

# insertingFromMimeDataHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, wenn HTML oder eine Mediendatei mit "Strg + Umschalt + V" in eine Notiz eingefügt wird
  *
  * @param text Text des QMimeData-Objekts
  * @param html Html des QMimeData-Objekts
  * @ gibt die Zeichenfolge zurück, die anstelle des Texts aus dem QMimeData-Objekt eingefügt werden soll
  */
function insertingFromMimeDataHook(text, html);
1
2
3
4
5
6
7
8

You may want to take a look at the example example.qml (opens new window), insert-headline-with-link-from-github-url.qml (opens new window) or note-text-from-5pm-mail.qml (opens new window).

# handleNoteTextFileNameHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, wenn eine Notiz auf der Festplatte gespeichert wird, wenn
  * "Der Name der Notizdatei darf sich von der Überschrift unterscheiden" ist aktiviert
  * in den Einstellungen
  *
  * Hier können Sie den Namen der Notizdatei ändern
  * Denken Sie daran, dass Sie sich selbst um doppelte Namen kümmern müssen!
 *
  * Geben Sie eine leere Zeichenfolge zurück, wenn der Dateiname der Notiz angezeigt werden soll
  * nicht geändert werden
  *
  * @param {NoteApi} note - das Notizobjekt der gespeicherten Notiz
  * @return {string} der Dateiname der Notiz
  */
function handleNoteTextFileNameHook(note);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

You may want to take a look at the example example.qml (opens new window) or use-tag-names-in-filename.qml (opens new window).

# handleNoteNameHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, wenn der Notenname für eine Note bestimmt wird
  *
  * Hier können Sie den Namen der angezeigten Notiz ändern
  *
  * Geben Sie eine leere Zeichenfolge zurück, wenn der Name der Notiz nicht geändert werden soll
  *
  * @param {NoteApi} note - das Notizobjekt der gespeicherten Notiz
  * @return {string} der Name der Notiz
  */
function handleNoteNameHook(note);
1
2
3
4
5
6
7
8
9
10
11

You may want to take a look at the example example.qml (opens new window).

Es ist möglicherweise keine gute Idee, diesen Hook zu verwenden, wenn die Einstellung zur Verwendung des Dateinamens als Notizenname aktiv ist.

# handleNewNoteHeadlineHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, bevor eine Notiz erstellt wird
  *
  * Sie können die Überschrift der Notiz ändern, bevor sie erstellt wird
  * Beachten Sie, dass Sie ansonsten auf einen eindeutigen Notennamen achten müssen
  * Die neue Notiz wird nicht erstellt, sondern nur in der Notizliste gefunden
  *
  * Sie können diese Funktion zum Erstellen von Notizvorlagen verwenden
  *
  * @param Überschriftentext, der zum Erstellen der Überschrift verwendet wird
 */
function handleNewNoteHeadlineHook(headline);
1
2
3
4
5
6
7
8
9
10
11
12

You may want to take a look at the example custom-new-note-headline.qml (opens new window).

# preNoteToMarkdownHtmlHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, bevor das Markdown-HTML einer Notiz generiert wird
  *
  * Sie können ändern, was an den Markdown-zu-HTML-Konverter übergeben wird
  *
  * Die Funktion kann zum Beispiel in mehreren Skripten verwendet werden, um Code zu rendern (wie LaTeX math oder meermaid)
  * zu seiner grafischen Darstellung für die Vorschau
  *
  * Die Notiz wird dabei nicht verändert
  *
  * @param {NoteApi} note - das Notizobjekt
  * @param {string} Markdown - der Markdown, der gerade in HTML konvertiert wird
  * @param {bool} forExport - true, wenn das HTML für einen Export verwendet wird, false für die Vorschau
  * @return {string} der geänderte Markdown oder ein leerer String, wenn nichts geändert werden soll
  */
Funktion preNoteToMarkdownHtmlHook(note, markdown, forExport);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

You may want to take a look at the example preview-styling.qml (opens new window).

# noteToMarkdownHtmlHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, wenn das Markdown-HTML einer Notiz generiert wird
  *
  * Sie können diesen HTML-Code ändern
  * Dies wird beispielsweise zuvor von der Notenvorschau aufgerufen
  *
  * Die Funktion kann in mehreren Skripten verwendet werden, um das HTML der Vorschau zu ändern
  *
  * @param {NoteApi} note - das Notizobjekt
  * @param {string} html - das HTML, das gerendert werden soll
  * @param {bool} forExport - true, wenn das HTML für einen Export verwendet wird, false für die Vorschau
  * @return {string} der geänderte HTML-Code oder ein leerer String, wenn nichts geändert werden soll
  */
Funktion noteToMarkdownHtmlHook(note, html, forExport);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

You may want to take a look at the example example.qml (opens new window) or preview-styling.qml (opens new window).

Eine Liste aller unterstützten CSS-Stile finden Sie in der Dokumentation Unterstützte HTML-Teilmenge (opens new window).

# encryptionHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, wenn das Markdown-HTML einer Notiz generiert wird
  *
  * Sie können dieses HTML ändern
  * Dies wird zum Beispiel zuvor von der Notenvorschau aufgerufen
  *
  * Die Methode kann in mehreren Skripten verwendet werden, um das HTML der Vorschau zu ändern
  *
  * @param {NoteApi} note - das Notizobjekt
  * @param {string} html - das HTML, das gerendert werden soll
  * @param {string} forExport - true, wenn der HTML-Code für einen Export verwendet wird, false für die Vorschau
  * @return {string} das geänderte HTML oder eine leere Zeichenfolge, wenn nichts geändert werden soll
  */
function encryptionHook(text, password, decrypt);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

You may want to take a look at the example encryption-keybase.qml (opens new window), encryption-pgp.qml (opens new window) or encryption-rot13.qml (opens new window).

# noteTaggingHook

Sie können Ihren eigenen Notizkennzeichnungsmechanismus beispielsweise mit speziellem Text in Ihrer Notiz implementieren, z. B. @ tag1, @tag2, @tag3.

# Methodenaufruf und Parameter

/ **
  * Behandelt das Markieren von Notizen für eine Notiz
  *
  * Diese Funktion wird aufgerufen, wenn Tags hinzugefügt, entfernt oder umbenannt werden
  * Eine Notiz oder die Tags einer Notiz sollten aufgelistet sein
  *
  * @param note
  * @param Aktion kann "Hinzufügen", "Entfernen", "Umbenennen" oder "Liste" sein.
  * @param tagName Tagname, der hinzugefügt, entfernt oder umbenannt werden soll
  * @param newTagName Tag-Name, in den umbenannt werden soll, wenn action = "umbenennen"
  * @return note text string oder string-list of tag names (wenn action = "list")
  */
function noteTaggingHook (note, action, tagName, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13
  • Sobald ein Skript aktiviert ist, das die neue Funktion noteTaggingHook implementiert, wird das Note-Tagging von dieser Funktion verarbeitet
  • die folgenden Funktionen sollten über die QOwnNotes-Benutzeroberfläche funktionieren
    • importieren Sie zunächst Tags wie @tag aus Ihren Notizen und überschreiben Sie Ihre aktuelle Tag-Zuweisung
      • Sie werden Ihren Schlagworte-Baum nicht verlieren, sondern nur die frühere Zuordnung zu Notizen
      • Sie können Tags weiterhin in andere Tags verschieben
      • wenn mehr als ein Tag denselben Namen in Ihrem Tag-Baum hat, wird der erste Treffer zugewiesen
    • durch Hinzufügen eines Tags zu einer Notiz wird das Tag zum Notiztext hinzugefügt
    • durch Entfernen eines Tags aus einer Notiz wird das Tag aus dem Notiztext entfernt
    • durch das Entfernen von Tags in der Tag-Liste werden diese Tags aus Ihren Notizen entfernt
    • durch das Umbenennen von Tags in der Tag-Liste werden diese Tags in Ihren Notizen umbenannt
    • durch Massen-Tagging von Notizen in der Notizenliste werden diese Tags zu Ihren Notizen hinzugefügt
    • durch das Entfernen von Tags aus Notizen in der Notizenliste werden diese Tags aus Ihren Notizen entfernt
    • die Anwendung, die eine Reihe von Aktionen zum add und remove aus für alle Rechte Tags und ihre unter Elemente Elemente in allen Notizen, wenn Tags werden im Tag-Panel

You may want to take a look at the example note-tagging.qml (opens new window) to implement your own tagging mechanism.

WARNING

Stellen Sie sicher, dass Ihre Aktion list sehr schnell ist, da sie bei jedem erneuten Laden des Notizordners für jede Notiz ausgeführt wird!

# noteTaggingByObjectHook

Ähnlich wie bei noteTaggingHook können Sie Ihren eigenen Mechanismus zum Markieren von Notizen implementieren, sind jedoch nicht an Tag-Namen im Tag-Stammbaum gebunden. Auf diese Weise können Sie den gesamten Tag-Baum anstelle von nur einer Tag-Liste verwenden.

Mit noteTaggingByObjectHook erhalten Sie anstelle eines Tag-Namens einTagApi -Objekt als Parameter. Als Ergebnis für die Aktion Liste müssen Sie eine Liste der Tag-IDs bereitstellen.

Dies bedeutet auch, dass Sie fehlende Tags selbst erstellen müssen, um eine Liste bereits vorhandener Tag-IDs für die Aktion Liste bereitstellen zu können.

# Methodenaufruf und Parameter

/**
  * Behandelt das Markieren von Notizen für eine Notiz
  *
  * Diese Funktion wird aufgerufen, wenn Tags hinzugefügt, entfernt oder umbenannt werden
  * Eine Notiz oder die Tags einer Notiz sollten aufgelistet sein
  *
  * @param note
  * @param Aktion kann "Hinzufügen", "Entfernen", "Umbenennen" oder "Liste" sein.
  * @ param-Tag, das hinzugefügt, entfernt oder umbenannt werden soll
  * @param newTagName Tag-Name, in den umbenannt werden soll, wenn action = "umbenennen"
  * @return note text string oder string-list of tag ids (wenn action = "list")
  */
function noteTaggingByObjectHook(note, action, tag, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13

You may want to take a look at the example note-tagging-by-object.qml (opens new window) to implement your own tagging mechanism.

# autocompletionHook

Sie können eine Liste von Zeichenfolgen zurückgeben, die der Autovervollständigungsliste hinzugefügt werden sollen, wenn diese automatisch vervollständigt wird (z.B. durch Drücken von Ctrl + Space).

# Methodenaufruf und Parameter

/**
  * Ruft die AutocompletionHook-Funktion für alle Skriptkomponenten auf
  * Diese Funktion wird aufgerufen, wenn die automatische Vervollständigung in einer Notiz aufgerufen wird
  *
  * @return QStringListe des Textes für die Autovervollständigungsliste
  */
Funktion callAutocompletionHook ();
1
2
3
4
5
6
7

You may want to take a look at the example autocompletion.qml (opens new window).

# websocketRawDataHook

Dieser Hook wird aufgerufen, wenn Daten von der QOwnNotes Web Companion-Browsererweiterung über das Kontextmenü des Webbrowsers gesendet werden.

# Methodenaufruf und Parameter

/**
 * @param requestType kann "Seite" oder "Auswahl" sein
 * @param pageUrl die Url der Webseite, auf der die Anfrage gestellt wurde
 * @param pageTitle der Seitentitel der Webseite, auf der die Anfrage gestellt wurde
 * @param rawData die übertragenen Daten, html für requestType „page“ oder Klartext für requestType „selection“
 * @param screenshotDataUrl die Daten-Url des Screenshots, wenn die Webseite, auf der die Anfrage gestellt wurde
 * @return true, wenn Daten von einem Hook verarbeitet wurden
 */
function callHandleWebsocketRawDataHook(requestType, pageUrl, pageTitle, rawData, screenshotDataUrl);
1
2
3
4
5
6
7
8
9

You may want to take a look at the examples websocket-raw-data-new-note.qml (opens new window) and websocket-raw-data-selection-in-note.qml (opens new window).

# onDetachedProcessCallback

Dieser Hook wird aufgerufen, wenn ein Skript-Thread von startDetachedProcess ausgeführt wird.

# Methodenaufruf und Parameter

/**
 * Diese Funktion wird aufgerufen, wenn ein Skript-Thread ausgeführt wurde.
 * Hinweis: Thread [1]==0 hilft festzustellen, ob ein Großteil der gestarteten Prozesse für einen bestimmten Bezeichner ausgeführt wird.
 *
  * @param {QString} callbackIdentifier - die beim Aufruf von startDetachedProcess () angegebene ID
  * @param {QString} resultSet - das Ergebnis des Prozesses
  * @param {QVariantList} cmd - das gesamte Befehlsarray [0-ausführbarer Pfad, 1-Parameter, 2-exitCode]
  * @param {QVariantList} Thread - das Thread-Informationsarray [0-übergebener CallbackParameter, 1 verbleibende Threads für diesen Bezeichner]
  */
Funktion onDetachedProcessCallback (callbackIdentifier, resultSet, cmd, thread);
1
2
3
4
5
6
7
8
9
10

You may want to take a look at the example callback-example.qml (opens new window).

# windowStateChangedHook

# Methodenaufruf und Parameter

/**
  * Diese Funktion wird aufgerufen, nachdem ein WindowStateChange-Ereignis ausgelöst wurde
  *
  * @param {QString} windowState - Der neue Fensterstatus, Parameterwert kann "minimiert", "maximiert", "Vollbild", "aktiv" oder "nostate" sein.
  */
Funktion windowStateChangedHook (windowState);
1
2
3
4
5
6

You may want to take a look at the example window-state-changed.qml (opens new window).

# workspaceSwitchedHook

Dieser Hook wird aufgerufen, wenn Workspaces gewechselt werden.

# Methodenaufruf und Parameter

/**
 * Diese Funktion wird aufgerufen, wenn Workspaces umgeschaltet werden
 *
 * @param oldUuid old uuid of workspace
 * @param newUuid new uuid of workspace
 */
function workspaceSwitchedHook(oldUuid, newUuid);
1
2
3
4
5
6
7

You may want to take a look at the example websocket-raw-data-new-note.qml (opens new window).