# Hooks

# onNoteStored

# Methodeaanroep en parameters

/ **
  * Deze functie wordt aangeroepen wanneer een notitie op schijf wordt opgeslagen
  * Je kunt opgeslagen notities niet wijzigen, dat zou een puinhoop zijn sindsdien
  * u bewerkt ze waarschijnlijk tegelijkertijd met de hand
  *
  * @param {NoteApi} notitie - het notitieobject van de opgeslagen notitie
  * /
functie onNoteStored (Notizie);
1
2
3
4
5
6
7
8

Misschien wilt u het voorbeeld bekijken on-note-opened.qml (opens new window).

# noteOpenedHook

# Methodeaanroep en parameters

/ **
  * Deze functie wordt aangeroepen nadat een notitie is geopend
  *
  * @param {NoteApi} note - het notitieobject dat werd geopend
  * /
functie noteOpenedHook (note);
1
2
3
4
5
6

Misschien wilt u het voorbeeld bekijken on-note-opened.qml (opens new window).

# noteDoubleClickedHook

# Methodeaanroep en parameters

/ **
    * Deze functie wordt aangeroepen nadat een notitie is geopend
    *
    * @param {NoteApi} note - het notitieobject dat werd geopend
    * /
functie noteOpenedHook (note);
1
2
3
4
5
6

Misschien wilt u het voorbeeld bekijken external-note-open.qml (opens new window).

# insertMediaHook

Deze functie wordt aangeroepen wanneer een mediabestand in de huidige notitie wordt ingevoegd.

Als deze functie in meerdere scripts is gedefinieerd, wint het eerste script dat een niet-lege tekenreeks retourneert.

# Methodeaanroep en parameters

// **
  * @param fileName string het bestandspad van het bronmediabestand voordat het naar de mediamap werd gekopieerd
  * @param markdownText string de markdown-tekst van het mediabestand, bijv. ![mijn-afbeelding] ![my-image](media/my-image-4101461585.jpg)
  * @return string de nieuwe markdown-tekst van het mediabestand
  * /
functie insertMediaHook (bestandsnaam, markdownText);
1
2
3
4
5
6

Misschien wilt u het voorbeeld bekijken example.qml (opens new window).

# insertAttachmentHook

Deze functie wordt aangeroepen wanneer een mediabestand in de huidige notitie wordt ingevoegd.

Als deze functie in meerdere scripts is gedefinieerd, wint het eerste script dat een niet-lege tekenreeks retourneert.

# Methodeaanroep en parameters

/**
  * @param fileName string het bestandspad van het bronbijlagebestand voordat het naar de bijlagemap werd gekopieerd
  * @param markdownText string de markdown-tekst van het bijlagebestand, bijv. [mijn-bestand.txt] (bijlagen / mijn-bestand-4245650967.txt)
  * @return string de nieuwe markdown-tekst van het bijlagebestand
  */
functie insertAttachmentHook (bestandsnaam, markdownText);
1
2
3
4
5
6

Misschien wilt u het voorbeeld bekijken example.qml (opens new window).

# insertingFromMimeDataHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen wanneer html of een mediabestand in een notitie wordt geplakt met `Ctrl + Shift + V`
  *
  * @ parametertekst tekst van het QMimeData-object
  * @param html html van het QMimeData-object
  * @ retourneert de tekenreeks die moet worden ingevoegd in plaats van de tekst uit het QMimeData-object
  */
functie insertingFromMimeDataHook (tekst, html);
1
2
3
4
5
6
7
8

Misschien wilt u het voorbeeld bekijken example.qml (opens new window), insert-headline-with-link-from-github-url.qml (opens new window) of note-text-from-5pm-mail.qml (opens new window).

# handleNoteTextFileNameHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen wanneer een notitie op schijf wordt opgeslagen als
  * "Toestaan dat de naam van het notitiebestand anders is dan de kop" is ingeschakeld
  * in de instellingen
  *
  * Hiermee kunt u de naam van het notitiebestand wijzigen
  * Houd er rekening mee dat u zelf voor dubbele namen moet zorgen!
 *
  * Retourneer een lege tekenreeks als de bestandsnaam van de notitie zou moeten
  * niet worden gewijzigd
  *
  * @param {NoteApi} note - het notitieobject van de opgeslagen notitie
  * @return {string} de bestandsnaam van de notitie
  */
functie handleNoteTextFileNameHook (opmerking);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Misschien wilt u het voorbeeld eens bekijken example.qml (opens new window) of use-tag-names-in-filename.qml (opens new window).

# handleNoteNameHook

# Methodeaanroep en parameters

/ **
  * Deze functie wordt aangeroepen wanneer de nootnaam voor een noot wordt bepaald
  *
  * Hiermee kunt u de naam wijzigen van de notitie die wordt bekeken
  *
  * Retourneer een lege tekenreeks als de naam van de notitie niet moet worden gewijzigd
  *
  * @param {NoteApi} note - het notitieobject van de opgeslagen notitie
  * @return {string} de naam van de notitie
  * /
functie handleNoteNameHook (opmerking);
1
2
3
4
5
6
7
8
9
10
11

Misschien wilt u het voorbeeld bekijken example.qml (opens new window).

Het is misschien geen goed idee om deze hook te gebruiken als de instelling om de bestandsnaam als nootnaam te gebruiken actief is.

# handleNewNoteHeadlineHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen voordat een noot wordt gemaakt
  *
  * Hiermee kunt u de kop van de notitie wijzigen voordat deze wordt gemaakt
  * Houd er rekening mee dat u anders moet zorgen voor een unieke nootnaam
  * de nieuwe notitie wordt niet gemaakt, deze wordt alleen in de notitielijst gevonden
  *
  * U kunt deze functie gebruiken voor het maken van notitiesjablonen
  *
  * @param koptekst die zou worden gebruikt om de kop te maken
  * @return {string} de kop van de notitie
  */
function handleNewNoteHeadlineHook(headline);
1
2
3
4
5
6
7
8
9
10
11
12
13

Misschien wilt u het voorbeeld bekijken custom-new-note-headline.qml (opens new window).

# preNoteToMarkdownHtmlHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen voordat de markdown-html van een notitie wordt gegenereerd
  *
  * Hiermee kunt u wijzigen wat wordt doorgegeven aan de markdown naar html-converter
  *
  * De functie kan bijvoorbeeld in meerdere scripts worden gebruikt om code weer te geven (zoals LaTeX wiskunde of zeemeermin)
  * naar de grafische weergave voor de preview
  *
  * De notitie wordt tijdens dit proces niet gewijzigd
  *
  * @param {NoteApi} notitie - het notitieobject
  * @param {string} markdown - de markdown die op het punt staat te worden geconverteerd naar html
  * @param {bool} forExport - waar als de html wordt gebruikt voor een export, onwaar voor het voorbeeld
  * @return {string} de gewijzigde afwaardering of een lege tekenreeks als er niets moet worden gewijzigd
  */
functie preNoteToMarkdownHtmlHook(note, markdown, forExport);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Misschien wilt u het voorbeeld bekijken preview-styling.qml (opens new window).

# noteToMarkdownHtmlHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen wanneer de markdown-html van een notitie wordt gegenereerd
  *
  * Hiermee kunt u deze html wijzigen
  * Dit wordt bijvoorbeeld eerder aangeroepen door de notitievoorbeeld
  *
  * De functie kan in meerdere scripts worden gebruikt om de html van de preview te wijzigen
  *
  * @param {NoteApi} notitie - het notitieobject
  * @param {string} html - de html die op het punt staat te worden weergegeven
  * @param {bool} forExport - waar als de html wordt gebruikt voor een export, onwaar voor het voorbeeld
  * @return {string} de gewijzigde html of een lege string als er niets gewijzigd moet worden
  */
functie noteToMarkdownHtmlHook(note, html, forExport);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Misschien wilt u het voorbeeld bekijken example.qml (opens new window) of preview-styling.qml (opens new window).

Raadpleeg de ondersteunde HTML Subset (opens new window) documentatie voor een lijst met alle ondersteunde css-stijlen.

# encryptionHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen wanneer tekst moet worden gecodeerd of gedecodeerd
  *
  * @param text string de tekst die moet worden versleuteld of ontsleuteld
  * @param wachtwoord tekenreeks het wachtwoord
  * @param decrypt bool als valse codering vereist is, als echte decodering vereist is
  * @return de versleutelde ontsleutelde tekst
  */
functie encryptionHook (tekst, wachtwoord, decoderen);
1
2
3
4
5
6
7
8
9

Misschien wilt u het voorbeeld eens bekijken encryption-keybase.qml (opens new window), encryption-pgp.qml (opens new window) of encryption-rot13.qml (opens new window).

# noteTaggingHook

U kunt uw eigen tagging-mechanisme voor notities implementeren met bijvoorbeeld speciale tekst in uw notitie, zoals @tag1, @tag2, @tag3.

# Methodeaanroep en parameters

/ **
  * Verwerkt notitie-tagging voor een notitie
  *
  * Deze functie wordt aangeroepen wanneer tags worden toegevoegd aan, verwijderd uit of hernoemd in
  * een notitie of de tags van een notitie moeten worden vermeld
  *
  * @param opmerking
  * @param-actie kan zijn "toevoegen", "verwijderen", "hernoemen" of "lijst"
  * @param tagName tag naam die moet worden toegevoegd, verwijderd of hernoemd
  * @param newTagName tagnaam die moet worden hernoemd als action = "hernoemen"
  * @return opmerking tekstreeks of string-lijst met tagnamen (if action = "list")
  * /
functie noteTaggingHook (note, action, tagName, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13
  • zodra een script is geactiveerd dat de nieuwe functie noteTaggingHook implementeert, wordt het taggen van opmerkingen door die functie afgehandeld
  • zodra een script is geactiveerd dat de nieuwe functie <0>noteTaggingHook</0> implementeert, wordt het taggen van opmerkingen door die afgehandeld
    • in eerste instantie tags zoals @tag uit je notities importeren en je huidige tag-toewijzing overschrijven
      • je raakt je tags-boom niet kwijt, alleen de vorige toewijzing aan notities
      • u kunt nog steeds tags naar andere tags verplaatsen
      • als meer dan één tag dezelfde naam heeft in uw tagboom, wordt de eerste treffer toegewezen
    • door een tag aan een notitie toe te voegen, wordt de tag aan de notitietekst toegevoegd
    • door een tag aan een notitie toe te voegen, wordt de tag aan de notitietekst toegevoegd
    • als u tags in de taglijst verwijdert, worden die tags uit uw notities verwijderd
    • het hernoemen van tags in de tag-lijst zal de naam van die tags in uw notities
    • bulksgewijs taggen van notities in de notitielijst zal die tags aan uw notities
    • het bulksgewijs verwijderen van tags uit notities in de notitielijst zal die tags uit uw notities verwijderen
    • de applicatie activeert een reeks toevoegen en verwijderen acties voor alle geselecteerde tags en hun kinderen op alle notities als tags worden verplaatst in het tagpaneel

Misschien wilt u het voorbeeld bekijken note-tagging.qml (opens new window) om uw eigen tagging-mechanisme te implementeren.

WARNING

Zorg ervoor dat uw lijst -actie echt snel is, want deze wordt voor elke notitie uitgevoerd telkens wanneer de notitiemap opnieuw wordt geladen!

# noteTaggingByObjectHook

Net als bij noteTaggingHook kunt u uw eigen mechanisme voor het taggen van notities implementeren, maar u bent niet gebonden aan het taggen van namen in de root van de tagboom. Op deze manier kunt u gebruik maken van de hele tagboom in plaats van alleen een taglijst.

Met noteTaggingByObjectHook krijg je een TagApi -object als parameter, in plaats van een tagnaam. En als resultaat voor de list -actie moet u een lijst met tag-id's.

Dit betekent ook dat u zelf ontbrekende tags moet maken om een lijst met reeds bestaande tag-ID's voor de list -actie te kunnen leveren.

# Methodeaanroep en parameters

/ **
  * Verwerkt notitie-tagging voor een notitie
  *
  * Deze functie wordt aangeroepen wanneer tags worden toegevoegd aan, verwijderd uit of hernoemd in
  * een notitie of de tags van een notitie moeten worden vermeld
  *
  * @param opmerking
  * @param-actie kan zijn "toevoegen", "verwijderen", "hernoemen" of "lijst"
  * @param-tag die moet worden toegevoegd, verwijderd of hernoemd
  * @param newTagName tagnaam die moet worden hernoemd als action = "hernoemen"
  * @return notitie tekstreeks of string-lijst met tag-ID's (if action = "list")
  * /
functie noteTaggingByObjectHook (opmerking, actie, tag, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13

Misschien wilt u het voorbeeld bekijken notice-tagging-by-object.qml (opens new window) om uw eigen tagging-mechanisme te implementeren.

# autocompletionHook

U kunt een lijst met tekenreeksen retourneren die aan de autocomplete-lijst moeten worden toegevoegd wanneer ze automatisch worden aangeroepen (bijvoorbeeld door op Ctrl + Space te drukken).

# Methodeaanroep en parameters

/**
  * Roept de functie autocompletionHook aan voor alle scriptcomponenten
  * Deze functie wordt aangeroepen wanneer automatische aanvulling wordt aangeroepen in een notitie
  *
  * @return QStringLijst met tekst voor de autocomplete lijst
  */
functie callAutocompletionHook ();
1
2
3
4
5
6
7

Misschien wilt u het voorbeeld bekijken autocompletion.qml (opens new window).

# websocketRawDataHook

Deze hook wordt aangeroepen wanneer gegevens worden verzonden vanuit de QOwnNotes Web Companion-browserextensie via het contextmenu van de webbrowser.

# Methodeaanroep en parameters

/**
 * @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 of 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

Misschien wilt u de voorbeelden eens bekijken websocket-raw-data-new-note.qml (opens new window) en websocket-raw-data-selection-in-note.qml (opens new window).

# onDetachedProcessCallback

Deze hook wordt aangeroepen wanneer een scriptthread van startDetachedProcess klaar is met uitvoeren.

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen wanneer een scriptthread klaar is met uitvoeren.
 * Hint: thread [1]==0 helpt om te bepalen of een groot deel van de gestarte processen voor een bepaalde identifier is voltooid.
 *
  * @param {QString} callbackIdentifier - de opgegeven id bij het aanroepen van startDetachedProcess ()
  * @param {QString} resultSet - het resultaat van het proces
  * @param {QVariantList} cmd - de volledige commando-array [0-executablePath, 1-parameters, 2-exitCode]
  * @param {QVariantList} thread - de thread-informatie-array [0-doorgegeven callbackParameter, 1-resterende threads voor deze identifier]
  * /
functie onDetachedProcessCallback (callbackIdentifier, resultSet, cmd, thread);
1
2
3
4
5
6
7
8
9
10

Misschien wilt u het voorbeeld bekijken callback-example.qml (opens new window).

# windowStateChangedHook

# Methodeaanroep en parameters

/**
  * Deze functie wordt aangeroepen nadat een WindowStateChange-gebeurtenis is geactiveerd
  *
  * @param {QString} windowState - de nieuwe vensterstatus, parameterwaarde kan "geminimaliseerd", "gemaximaliseerd", "volledig scherm", "actief" of "nostate" zijn
  */
functie windowStateChangedHook (windowState);
1
2
3
4
5
6

Misschien wilt u het voorbeeld bekijken window-state-changed.qml (opens new window).

# workspaceSwitchedHook

Deze haak wordt aangeroepen wanneer werkplekken worden geschakeld.

# Methodeaanroep en parameters

/**
 * This function is called when workspaces are switched
 *
 * @param oldUuid old uuid of workspace
 * @param newUuid new uuid of workspace
 */
function workspaceSwitchedHook(oldUuid, newUuid);
1
2
3
4
5
6
7

Misschien wilt u het voorbeeld bekijken websocket-raw-data-new-note.qml (opens new window).

# openAiBackendsHook

Deze hook wordt aangeroepen bij het laden van de OpenAI-serviceconfiguratie. Dit wordt bijv. ook gedaan wanneer de scriptengine opnieuw wordt geladen.

U kunt het gebruiken om configuratie te bieden voor aangepaste OpenAI-backends, zoals uw eigen OpenAI API-compatibele LLM's.

# Methode-aanroep en parameters

/**
 * Deze functie wordt aangeroepen wanneer de OpenAI-serviceconfiguratie wordt geladen
 * Het retourneert een lijst met objecten met configuratieparameters voor nieuwe OpenAI-backends
 */
function openAiBackendsHook() {
    return [
        {
            "id": "my-custom-ai",
            "name": "My Custom AI",
            "baseUrl": "http://localhost:5000",
            "apiKey": "kDFJkjk3asdm",
            "models": ["gpt-3.5-turbo", "gpt-4.0-turbo"],
        },
        {
            "id": "my-custom-ai2",
            "name": "My Custom AI 2",
            "baseUrl": "http://localhost:5001",
            "apiKey": "lOikf7eNdb9",
            "models": ["gpt-3.5-turbo2", "gpt-4.0-turbo2"],
        },
    ];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

TIP

U kunt Scriptinstellingen variabelen registreren gebruiken om de OpenAI backend-instellingen op te slaan in de scriptinstellingen.

Bestudeer vooral het voorbeeld custom-openai-backends.qml (opens new window).