# 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

Vielleicht m├Âchten Sie sich das Beispiel on-note-opened.qml (opens new window) ansehen.

# 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

Vielleicht m├Âchten Sie sich das Beispiel on-note-opened.qml (opens new window) ansehen.

# 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

Vielleicht m├Âchten Sie sich das Beispiel external-note-open.qml (opens new window) ansehen.

# 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

Vielleicht m├Âchten Sie sich das Beispiel example.qml (opens new window) ansehen.

# 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

Vielleicht m├Âchten Sie sich das Beispiel example.qml (opens new window) ansehen.

# 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

Vielleicht m├Âchten Sie sich ein Beispiel ansehen: example.qml (opens new window), insert-headline-with-link-from-github-url.qml (opens new window) oder 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen

example.qml </ 0> oder 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

Vielleicht m├Âchten Sie sich das Beispiel example.qml (opens new window) ansehen.

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

Vielleicht m├Âchten Sie sich das Beispiel ansehen 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen: 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen example.qml (opens new window) oder 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

Vielleicht m├Âchten Sie sich ein Beispiel ansehen: encryption-keybase.qml (opens new window), encryption-pgp.qml (opens new window) oder 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen: note-tagging.qml (opens new window), um Ihren eigenen Tagging-Mechanismus zu implementieren.

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

Sie k├Ânnen sich das Beispiel note-tagging-by-object.qml (opens new window) ansehen, um Ihren eigenen Tagging-Mechanismus zu implementieren.

# 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen 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

Vielleicht m├Âchten Sie sich die Beispiele ansehen websocket-raw-data-new-note.qml (opens new window) und Websocket-Rohdatenauswahl-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

Vielleicht m├Âchten Sie sich das Beispiel ansehen 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen 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

Vielleicht m├Âchten Sie sich das Beispiel ansehen websocket-raw-data-new-note.qml (opens new window).