QOwnNotesQOwnNotes
Aan de slag
Installatie
  • Ask question
  • Ask for feature
  • Report bug
  • Telegram Channel
  • Matrix/Element.io Room
  • Gitter Chat
  • IRC Channel
  • Mastodon
  • Twitter
  • Facebook
Doneren
  • English
  • Deutsch
  • Italiano
  • Français
  • Español
  • فارسی
  • Nederlands
  • Magyar
  • العربية
  • Polski
  • 한국어
GitHub
Aan de slag
Installatie
  • Ask question
  • Ask for feature
  • Report bug
  • Telegram Channel
  • Matrix/Element.io Room
  • Gitter Chat
  • IRC Channel
  • Mastodon
  • Twitter
  • Facebook
Doneren
  • English
  • Deutsch
  • Italiano
  • Français
  • Español
  • فارسی
  • Nederlands
  • Magyar
  • العربية
  • Polski
  • 한국어
GitHub
  • Aan de slag

    • Overzicht
    • Concept
    • QOwnNotes Demo
    • Markdown Cheatsheet
    • Notities importeren
    • Opdrachtregel-interface-parameters
    • Browser-extensie QOwnNotes Web Companion
    • Homepage suggestion API
    • Command-line Snippet Manager
    • QOwnNotes-webapp
    • QOwnNotesAPI Nextcloud App
    • Paneel Notitierelaties
    • Zoeken naar notities
    • Sneltoetsen
    • Git versiebeheer
  • Installatie

    • Installatie
    • Installatie op Ubuntu Linux, elementary OS en Linux Mint
    • Installatie op Microsoft Windows™
    • Installatie op macOS™
    • Installatie op Debian Linux
    • Installatie op openSUSE Linux
    • Installatie op Fedora Linux
    • Installatie als Snap
    • Installatie als Flatpak
    • Installeer als AppImage
    • Install via Nix
    • Installatie op Arch Linux
    • Installatie op Solus
    • Installatie op KaOS Linux
    • Installatie op CentOS Linux
    • Installatie op Raspberry Pi OS
    • Installatie op Gentoo Linux
    • Installatie op Funtoo Linux
    • Installatie on Void Linux
    • Installatie op Slackware Linux
    • Installatie op FreeBSD
    • QOwnNotes bouwen
  • Editor

    • Spellingcontrole
    • LanguageTool
    • Harper
    • AI-ondersteuning
    • Tijdnotatie
  • Scripting

    • QOwnNotes-scripts
    • Methoden en objecten die QOwnNotes biedt
    • Hooks
    • Blootgestelde klassen
  • Bijdragen

    • Actief worden
    • Code contributions
    • Gedragscode
    • Onderhouders
    • Vertaling
    • Doneren
    • Sponsors
  • FAQ

    • Hoe kan ik gewoon het voorbeeldvenster weergeven zonder het notitiebewerkingspaneel?
    • Waar kan ik vinden wat andere mensen zeggen over QOwnNotes?
    • Waarom statistieken?
  • Blog (in het Engels)

    • Overview
    • Layouts and layout presets
    • QOwnNotes Webpage Relaunch with VuePress 2, Vue.js 3, and Vuetify 3
    • Universal binary for macOS
    • Note relations panel
    • AI support was added to QOwnNotes
    • Source Archive switched from TuxFamily to GitHub Releases
    • Nextcloud Deck integration in QOwnNotes
    • QOwnNotes UI End2End Tests with the help of NixOS
    • Please test Qt6 version of QOwnNotes from a new PPA for Ubuntu Linux
    • Evernote import for huge files
    • Happy 1000th release of QOwnNotes
    • Polish website translation
    • Working with multiple notes
    • QOwnNotes command-line snippet manager
    • Nextcloud note versions
    • Manage orphaned image files and attachments
    • Linking of note headings
    • Tor Hidden Service Webpage
    • Use workspaces to manage different layouts of the user interface
    • Auto-complete text in note editor
    • Open links in the note editor
    • Solve simple equations in the note editor
    • Auto-format Markdown tables
    • QOwnNotes Mastodon page
    • Repository for Debian 11
    • Joplin import
    • Send photos from your mobile phone to QOwnNotes on the desktop
    • Four new languages added to the website
    • QOwnNotes Demo
    • Markdown explanation
    • Webpage translation
    • QOwnNotes for Ubuntu 21.04 Hirsute Hippo
    • QOwnNotes for Fedora 33
    • Release and blog posting automation
    • Legacy update service up again
    • RSS Feeds are back in place
    • Time Flies Podcast episode with interview about QOwnNotes
    • Bookmark management with QOwnNotes and Web Companion browser extension
    • Firefox extension on Firefox Add-ons page
    • Chrome extension in Chrome Web Store
    • QOwnNotes Web Companion Chrome extension
    • 500th release of QOwnNotes
    • QOwnNotes Telegram Group
    • Vim mode
    • QOwnNotes for openSUSE Leap 15, SUSE Linux Enterprise 15 and SUSE Linux Enterprise 12 SP3
    • QOwnNotes featured on LINUX Unplugged podcast and by Ubuntu
    • Interview for ownCloud
    • QOwnNotes for Fedora 27
    • QOwnNotes reviewed in German magazine c't
    • QOwnNotesAPI in the ownCloud Marketplace
    • QOwnNotes as AppImage
    • QOwnNotes for Debian 9.0, Fedora 26 and openSUSE Leap 42.3
    • Script repository and script settings variables
    • Fedora 25 release and new documentation page
    • Solus package for QOwnNotes
    • Automatic updates in Windows and macOS
    • Note encryption with keybase.io or directly with PGP
    • Evernote import
    • Portable mode
    • QOwnNotes on webupd8.org
    • QOwnNotes featured on the Linux Voice Podcast
    • QOwnNotes snap
    • QOwnNotes review in British magazine Linux Format
    • QOwnNotes Slackware Linux Repository
    • QOwnNotes review
    • QOwnNotes IRC
    • QOwnNotes now has scripting support
    • QOwnNotes is the Desktop App Pick on the Linux Action Show
    • QOwnNotes got featured in Linux Voice 25
    • QOwnNotes Gentoo Linux Overlay
    • Translate QOwnNotes on Crowdin
    • QOwnNotes 1.0 out now in 6 languages and with Freedesktop theme icons support
    • QOwnNotes software repository for Debian Linux
    • QOwnNotes package on the Arch User Repository
    • QOwnNotes software repository for Arch Linux
    • Webpage redesign
    • Qt widget QMarkdownTextEdit now a separate project for developer's pleasure
    • New release version RSS feed
    • New Linux software repositories and todo list support
    • QOwnNotes on Linux Unplugged
    • Build and release systems for QOwnNotes for Linux, macOS and Windows!
    • Links to other notes or files are now possible in QOwnNotes
  • Changelog (in het Engels)

    • QOwnNotes Changelog

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);

Misschien wilt u het voorbeeld bekijken on-note-opened.qml.

noteOpenedHook

Methodeaanroep en parameters

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

Misschien wilt u het voorbeeld bekijken on-note-opened.qml.

noteDoubleClickedHook

Methodeaanroep en parameters

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

Misschien wilt u het voorbeeld bekijken external-note-open.qml.

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);

Misschien wilt u het voorbeeld bekijken example.qml.

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);

Misschien wilt u het voorbeeld bekijken example.qml.

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);

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

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);

Misschien wilt u het voorbeeld eens bekijken example.qml of use-tag-names-in-filename.qml.

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);

The note name is mainly used when showing the note in the lists.

Misschien wilt u het voorbeeld bekijken example.qml .

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);

Misschien wilt u het voorbeeld bekijken custom-new-note-headline.qml .

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);

Misschien wilt u het voorbeeld bekijken preview-styling.qml .

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);

Misschien wilt u het voorbeeld bekijken example.qml of preview-styling.qml .

Raadpleeg de ondersteunde HTML Subset 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);

Misschien wilt u het voorbeeld eens bekijken encryption-keybase.qml, encryption-pgp.qml of encryption-rot13.qml.

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);
  • as soon as a script is activated that implements the new function noteTaggingHook note tagging will be handled by that function
  • zodra een script is geactiveerd dat de nieuwe functie noteTaggingHook implementeert, wordt het taggen van opmerkingen door die afgehandeld
    • initially importing tags like @tag from your notes and overwriting your current tag assignment
      • you will not lose your tags tree, just the former assignment to notes
      • u kunt nog steeds tags naar andere tags verplaatsen
      • if more than one tag has the same name in your tag tree the first hit will be assigned
    • 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
    • removing of tags in the tag list will remove those tags from your notes
    • renaming of tags in the tag list will rename those tags in your notes
    • bulk tagging of notes in the note list will add those tags to your notes
    • bulk removing of tags from notes in the note list will remove those tags from your notes
    • the application will trigger a series of add and remove actions for all selected tags and their children on all notes if tags are moved in the tag panel

Misschien wilt u het voorbeeld bekijken note-tagging.qml om uw eigen tagging-mechanisme te implementeren.

Notitie

Make sure your list action is really fast, because it will be executed for every note every time the note folder or the tag tree is reloaded!

That is every time you find reloadTagTree in mainwindow.cpp.

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);

Misschien wilt u het voorbeeld bekijken notice-tagging-by-object.qml 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 ();

Misschien wilt u het voorbeeld bekijken autocompletion.qml .

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);

You may want to take a look at the examples layouts.qml and websocket-raw-data-selection-in-note.qml.

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);

Misschien wilt u het voorbeeld bekijken callback-example.qml .

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);

Misschien wilt u het voorbeeld bekijken window-state-changed.qml .

layoutSwitchedHook

This hook is called when layouts are switched.

Methodeaanroep en parameters

/**
 * This function is called when layouts are switched
 *
 * @param oldUuid old uuid of layout
 * @param newUuid new uuid of layout
 */
function layoutSwitchedHook(oldUuid, newUuid);

You may want to take a look at the example layouts.qml.

openAiBackendsHook

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

Je kunt het gebruiken om configuratie te bieden voor aangepaste OpenAI-backends, zoals die van eigen OpenAI API-compatibele LLM's, zoals ChatGPT, Claude of systemen zoals Ollama.

Methode-aanroep en parameters

/**
 * This function is called when the OpenAI service config is reloaded
 * It returns a list of objects with config parameters for new 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"],
    },
  ];
}

Tips

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.

highlightingHook

This hook is called for each text block in the editor during syntax highlighting. It allows you to add dynamic, context-aware highlighting that goes beyond static regex rules registered with addHighlightingRule.

Notitie

This hook is called very frequently (for every visible text block on every keystroke), so keep your implementation fast. If you only need static regex-based highlighting, prefer using addHighlightingRule or addHighlightingRule with custom colors instead.

Method call and parameters

/**
 * This function is called for each text block during syntax highlighting.
 * It allows context-aware, dynamic highlighting.
 *
 * @param text {QString} the text of the current block being highlighted
 * @param previousBlockState {int} the highlighter state of the previous block
 *     (-1 if this is the first block)
 * @return {Array} an array of highlight range objects, each with:
 *     start {int} - start position in the text
 *     length {int} - number of characters to highlight
 *     state {int} - the HighlighterState to use (optional, -1 for custom only)
 *     foregroundColor {string} - foreground color name or hex (optional)
 *     backgroundColor {string} - background color name or hex (optional)
 *     bold {bool} - bold font weight (optional)
 *     italic {bool} - italic font style (optional)
 *     underline {bool} - underline the text (optional)
 *     fontSize {int} - font point size (optional)
 */
function highlightingHook(text, previousBlockState) {
  var highlights = [];

  // Example: highlight all occurrences of "FIXME" with red bold underline
  var re = /FIXME/g;
  var match;
  while ((match = re.exec(text)) !== null) {
    highlights.push({
      start: match.index,
      length: match[0].length,
      foregroundColor: "#ff0000",
      underline: true,
      bold: true,
    });
  }

  return highlights;
}

You may want to take a look at the examples highlighting.qml and custom-highlighting.qml.

Prev
Methoden en objecten die QOwnNotes biedt
Next
Blootgestelde klassen