# 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
  * *
  * Hier können Sie die Überschrift der Notiz ändern, bevor sie erstellt wird
  * Beachten Sie, dass Sie sich ansonsten um einen eindeutigen Notennamen kümmern müssen
  * Die neue Notiz wird nicht erstellt, sondern nur in der Notizliste angezeigt
  * *
  * Mit dieser Methode können Sie Notizvorlagen erstellen
  * *
  * @param Überschriftentext, der zum Erstellen der Überschrift verwendet wird
  * @return {string} die Überschrift der Notiz
  * /
Funktion handleNewNoteHeadlineHook (Überschrift);
1
2
3
4
5
6
7
8
9
10
11
12
13

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
  *
  * Hier können Sie ändern, was an den Markdown-to-HTML-Konverter übergeben wird
  *
  * Die Methode kann beispielsweise in mehreren Skripten zum Rendern von Code verwendet werden (wie LaTeX-Mathematik oder Meerjungfrau).
  * zu seiner grafischen Darstellung für die Vorschau
  *
  * Der Hinweis wird dabei nicht geändert
  *
  * @param {NoteApi} note - das Notizobjekt
  * @param {string} markdown - der Markdown, der in HTML konvertiert werden soll
  * @param {string} forExport - true, wenn der HTML-Code für einen Export verwendet wird, false für die Vorschau
  * @return {string} der geänderte Markdown oder eine leere Zeichenfolge, wenn nichts geändert werden soll
  */
function 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 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 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 Tag-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 can be "page" or "selection"
 * @param pageUrl the url of the webpage where the request was made
 * @param pageTitle the page title of the webpage where the request was made
 * @param rawData the data that was transmitted, html for requestType "page" or plain text for requestType "selection"
 * @param screenshotDataUrl the data url of the screenshot if the webpage where the request was made
 * @return true if data was handled by a hook
 */
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).