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

    • Aperçu
    • Concept
    • Démo QOwnNotes
    • Antisèche Markdown
    • Importer des notes
    • Paramètres de l'interface de ligne de commande
    • Extension de navigateur QOwnNotes Web Companion
    • API de suggestion Homepage
    • Gestionnaire de snippets en ligne de commande
    • Application Web QOwnNotes
    • App QOwnNotesAPI Nextcloud
    • Panneau des relations entre les notes
    • Recherche de notes
    • Raccourcis
    • Contrôle de version avec git
  • Installation

    • Installation
    • Installer sur Ubuntu Linux, elementary OS et Linux Mint
    • Installer sur Microsoft Windows™
    • Installer sur macOS™
    • Installer sur Debian Linux
    • Installer sur openSUSE Linux
    • Installer sur Fedora Linux
    • Installer depuis Snap
    • Installer en tant que Flatpak
    • Installer en tant qu'AppImage
    • Installer via Nix
    • Installer sur Arch Linux
    • Installer sur Solus
    • Installer sur KaOS Linux
    • Installer sur CentOS Linux
    • Installer sur Raspberry Pi OS
    • Installer sur Gentoo Linux
    • Installer sur Funtoo Linux
    • Installer sur Void Linux
    • Installer sur Slackware Linux
    • Installer sur FreeBSD
    • Compiler QOwnNotes
  • Éditeur

    • Vérification orthographique
    • LanguageTool
    • Harper
    • LSP Markdown
    • Support de l’intelligence artificielle (IA)
    • Formats d’horodatage
  • Scripting

    • Scripts QOwnNotes
    • Méthodes et objets fournis par QOwnNotes
    • Hooks
    • Classes exposées
  • Contribuer

    • Contribuer
    • Contributions sur le code source
    • Code de Conduite
    • Mainteneurs
    • Traduction
    • Faire un don
    • Les sponsors
  • FAQ

    • Comment puis-je simplement afficher le panneau d'aperçu sans le panneau d'édition des notes ?
    • Comment puis-je savoir ce que les autres disent au sujet de QOwnNotes ?
    • Pourquoi des statistiques d'utilisation ?
  • Blog (en anglais)

    • 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 (en anglais)

    • QOwnNotes Changelog

Hooks

onNoteStored

Appel de méthode et paramètres

/**
 * Cette fonction est appelée quand une note est stockée dans le disque
 * Vous ne pouvez pas modifier les notes stockées, ce serait le bazar puisque
 * vous les éditeriez sûrement à la main en même temps
 *
 * @param {NoteApi} note - l’objet de note de la note stockée
 */
function onNoteStored(note);

Vous voudrez peut-être jeter un coup d'œil à l'exemple on-note-opened.qml.

noteOpenedHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée après l'ouverture d'une note
 *
 * @param {NoteApi} note - l'objet note qui a été ouvert
 */
function noteOpenedHook(note);

Vous voudrez peut-être jeter un coup d'œil à l'exemple on-note-opened.qml.

noteDoubleClickedHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée après un double clic sur une note
 *
 * @param {NoteApi} note - l'objet de note sur lequel l'utilisateur a cliqué
 */
function noteDoubleClickedHook(note);

Vous voudrez peut-être jeter un coup d'œil à l'exemple external-note-open.qml.

insertMediaHook

Cette fonction est appelée lorsqu'un fichier multimédia est inséré dans la note actuelle.

Si cette fonction est définie dans plusieurs scripts, le premier script qui renvoie une chaîne non vide l'emporte.

Appel de méthode et paramètres

/**
 * @param fileName string le chemin du fichier du fichier multimédia source avant sa copie dans le dossier multimédia
 * @param markdownText string le texte en markdown du fichier multimédia, par exemple ![mon-image](média / mon-image-4101461585.jpg)
 * @return string le nouveau texte Markdown du fichier multimédia
 */
function insertMediaHook(fileName, markdownText);

Vous voudrez peut-être jeter un coup d'œil à l'exemple example.qml.

insertAttachmentHook

Cette fonction est appelée lorsqu'un fichier de pièce jointe est inséré dans la note actuelle.

Si cette fonction est définie dans plusieurs scripts, le premier script qui renvoie une chaîne non vide l'emporte.

Appel de méthode et paramètres

/**
 * @param fileName string le chemin du fichier de la pièce jointe source avant sa copie dans le dossier de la pièce jointe
 * @param markdownText string le texte en Markdown du fichier joint, par exemple [my-file.txt](pièces jointes/mon-fichier-4245650967.txt)
 * @return string le nouveau texte en Markdown du fichier joint
 */
function insertAttachmentHook(fileName, markdownText);

Vous voudrez peut-être jeter un coup d'œil à l'exemple example.qml.

insertingFromMimeDataHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée lorsque du HTML ou un fichier multimédia est collé dans une note avec `Ctrl + Maj + V`
 *
 * @param text texte de l'objet QMimeData
 * @param html HTML de l'objet QMimeData
 * @returns la chaîne à insérer à la place du texte de l'objet QMimeData
 */
function insertingFromMimeDataHook(text, html);

Vous voudrez peut-être jeter un coup d'œil aux exemples example.qml, insert-headline-with-link-from-github-url.qml ou note-text-from-5pm-mail.qml.

handleNoteTextFileNameHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée lorsqu'une note est stockée sur le disque si
 * « Autoriser le nom du fichier de note à être différent du titre » est activé
 * dans les préférences
 *
 * Elle vous permet de modifier le nom du fichier de note
 * Gardez à l'esprit que vous devez vous soucier des noms en double !
 *
 * Renvoie une chaîne vide si le nom de fichier de la note ne doit
 * pas être modifié
 *
 * @param {NoteApi} note - l'objet note de la note stockée
 * @return {string} le nom de fichier de la note
 */
function handleNoteTextFileNameHook(note);

Vous voudrez peut-être jeter un coup d'œil aux exemples example.qml ou use-tag-names-in-filename.qml.

handleNoteNameHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée lorsque le nom de la note est déterminé pour une note
 *
 * Elle vous permet de modifier le nom de la note qui est visualisée
 *
 * Renvoie une chaîne vide si le nom de la note ne doit pas être modifié
 *
 * @param {NoteApi} note - l'objet note de la note stockée
 * @return {string} le nom de la note
 */
function handleNoteNameHook(note);

Le nom de la note est surtout utilisé lorsque la note est affichée dans les listes.

Vous voudrez peut-être jeter un coup d'œil à l'exemple example.qml.

Ce n'est peut-être pas une bonne idée d'utiliser ce hook si le paramètre permettant d'utiliser le nom de fichier comme nom de note est actif.

handleNewNoteHeadlineHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée avant la création d'une note
 *
 * Elle vous permet de modifier le titre de la note avant sa création
 * Notez que vous devez faire attention à un nom de note unique, sinon
 * la nouvelle note ne sera pas créée, elle sera seulement présente dans la liste des notes
 *
 * Vous pouvez utiliser cette fonction pour créer des modèles de notes
 *
 * @param texte du titre qui serait utilisé pour créer le titre
 * @return {string} le titre de la note
 */
function handleNewNoteHeadlineHook(headline);

Vous pouvez jeter un œil à l'exemple custom-new-note-headline.qml.

preNoteToMarkdownHtmlHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée avant la génération du code HTML Markdown d'une note
 *
 * Elle vous permet de modifier ce qui est passé au convertisseur Markdown vers HTML
 *
 * La fonction peut par exemple être utilisée dans de multiples scripts pour rendre du code (comme des maths LaTeX ou mermaid)
 * dans sa représentation graphique pour l'aperçu
 *
 * La note ne sera pas modifiée dans ce processus
 *
 * @param {NoteApi} note - l'objet note
 * @param {string} markdown - le Markdown qui doit être converti en HTML
 * @param {bool} forExport - true si le HTML est utilisé pour une exportation, false pour l'aperçu
 * @return {string} le Markdown modifié ou une chaîne vide si rien ne doit être modifié
 */
function preNoteToMarkdownHtmlHook(note, markdown, forExport);

Vous voudrez peut-être jeter un coup d'œil à l'exemple preview-styling.qml.

noteToMarkdownHtmlHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée lorsque le code HTML Markdown d'une note est généré
 *
 * Elle vous permet de modifier ce HTML
 * Elle est par exemple appelée avant par l'aperçu de la note
 *
 * Cette fonction peut être utilisée dans plusieurs scripts pour modifier le HTML de l'aperçu
 *
 * @param {NoteApi} note - l'objet note
 * @param {string} html - le HTML qui est doit être rendu
 * @param {bool} forExport - true si le HTML est utilisé pour une exportation, false pour l'aperçu
 * @return {string} le code HTML modifié ou une chaîne vide si rien ne doit être modifié
 */
function noteToMarkdownHtmlHook(note, html, forExport);

Vous voudrez peut-être jeter un coup d'œil aux exemples example.qml ou preview-styling.qml.

Veuillez vous référer à la documentation du sous-ensemble HTML pris en charge pour une liste de tous les styles CSS pris en charge.

encryptionHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée lorsque le texte doit être chiffré ou déchiffré
 *
 * @param text string le texte à crypter ou décrypter
 * @param password string le mot de passe
 * @param decrypt bool si un faux chiffrement est demandé, si un vrai déchiffrement est demandé
 * @return le texte déchiffré chiffré
 */
fonction encryptionHook(text, password, decrypt);

Vous voudrez peut-être jeter un coup d'œil aux exemples encryption-keybase.qml, encryption-pgp.qml ou encryption-rot13.qml.

noteTaggingHook

Vous pouvez implémenter votre propre mécanisme de tagage de note, par exemple avec un texte spécial dans votre note comme @tag1, @tag2, @tag3.

Appel de méthode et paramètres

/**
 * Gère le tagage pour une note
 *
 * Cette fonction est appelée lorsque des tags sont ajoutés, supprimés ou renommés dans
 * une note ou que les tags d'une note doivent être listés
 *
 * @param note
 * L'action @param peut être « add », « remove », « rename » ou « list »
 * @param tagName nom du tag à ajouter, supprimer ou renommer
 * @param newTagName nom du tag à renommer si action = "rename"
 * @return note chaîne de texte ou chaîne-liste de noms de tags (si action = "list")
 */
function noteTaggingHook(note, action, tagName, newTagName);
  • dès qu'un script qui implémente la nouvelle fonction noteTaggingHook est activé, le tagage des notes sera géré par cette fonction
  • les fonctionnalités suivantes doivent fonctionner via l'interface utilisateur QOwnNotes
    • importation initiale de tags tels que @tag à partir de vos notes et écrasement de votre attribution de tag actuelle
      • vous ne perdrez pas votre arbre de tags, juste l'ancienne affectation aux notes
      • vous pouvez toujours déplacer des tags dans d'autres tags
      • si plus d'un tag porte le même nom dans votre arborescence de tags, le premier résultat sera attribué
    • l'ajout d'un tag à une note ajoutera le tag au texte de la note
    • la suppression d'un tag d'une note supprimera le tag du texte de la note
    • la suppression des tags dans la liste des tags supprimera ces tags de vos notes
    • renommer les tags dans la liste des tags renommera ces tags dans vos notes
    • le tagage en masse des notes dans la liste de notes ajoutera ces tags à vos notes
    • la suppression en masse des tags des notes de la liste de notes supprimera ces tags de vos notes
    • l'application déclenchera une série d'actions ajouter et supprimer pour tous les tags sélectionnés et leurs enfants sur toutes les notes si les tags sont déplacés dans le panneau des tags

Vous voudrez peut-être jeter un coup d'œil à l'exemple note-tagging.qml pour implémenter votre propre mécanisme de tagage.

Avertissement

Assurez-vous que votre action list est vraiment rapide car elle sera exécutée pour chaque note à chaque rechargement du dossier de notes ou de l’arbre des tags !

Cela correspond à chaque vois que vous trouverez reloadTagTree dans mainwindow.cpp.

noteTaggingByObjectHook

De la même manière que noteTaggingHook, vous pouvez implémenter votre propre mécanisme de tagage de note, mais vous n'êtes pas lié aux noms de tags dans la racine de l'arborescence des tags. De cette façon, vous pouvez utiliser l'intégralité de l'arborescence des tags au lieu d'une seule liste de tags.

Avec noteTaggingByObjectHook, vous obtenez un objet TagApi comme paramètre, au lieu d'un nom de tag. Et comme résultat pour l'action list, vous devez fournir une liste d'identifiants de tags.

Cela signifie également que vous devez créer vous-même les tags manquants pour pouvoir fournir une liste des identifiants de tags déjà existants pour l'action list.

Appel de méthode et paramètres

/ **
 * Gère le tagage des notes pour une note
 *
 * Cette fonction est appelée lorsque des tags sont ajoutés, supprimés ou renommés dans
 * une note ou que les tags d'une note doivent être listés
 *
 * @param note
 * @param action peut être « add », « remove », « rename » ou « list »
 * @param tag à ajouter, supprimer ou renommer
 * @param newTagName nom de la balise à renommer si action = "rename"
 * @return note chaîne de texte ou liste de chaînes d'identifiants de balises (si action = "list")
 * /
function noteTaggingByObjectHook(note, action, tag, newTagName);

Vous voudrez peut-être jeter un coup d'œil à l'exemple note-tagging-by-object.qml pour implémenter votre propre mécanisme de tagage.

autocompletionHook

Vous pouvez renvoyer une liste de chaînes à ajouter à la liste de saisie semi-automatique lorsque la saisie semi-automatique est invoquée (par exemple en appuyant sur Ctrl + Espace).

Appel de méthode et paramètres

/**
 * Appelle la fonction autocompletionHook pour tous les composants de script
 * Cette fonction est appelée lorsque l'auto-complétion est invoquée dans une note
 *
 * @return QStringListe de texte pour la liste de saisie semi-automatique
 */
function callAutocompletionHook();

Vous voudrez peut-être jeter un coup d'œil à l'exemple autocompletion.qml.

websocketRawDataHook

Ce hook est appelé lorsque des données sont envoyées depuis l'extension de navigateur QOwnNotes Web Companion via le menu contextuel du navigateur Web.

Appel de méthode et paramètres

/**
 * @param requestType peut être "page" ou "selection"
 * @param pageUrl l’URL de la page web où la requête a été faite
 * @param pageTitle le titre de la page web où la requete a été faite
 * @param rawData les données qui ont été transmises : du HTML pour requestType="page" ou du texte brut pour requestType="selection"
 * @param screenshotDataUrl l’URL de données de la capture d’écran de la page web où la requête a été faite
 * @return true si les données ont été traitées par un hook
 */
function callHandleWebsocketRawDataHook(requestType, pageUrl, pageTitle, rawData, screenshotDataUrl);

Vous voudrez peut-être jeter un coup d’œil aux exemples layouts.qml et websocket-raw-data-selection-in-note.qml.

onDetachedProcessCallback

Ce hook est appelé lorsqu'un fil de script de startDetachedProcess a fini de s’exécuter.

Appel de méthode et paramètres

/**
 * Cette fonction est appelée lorsqu'un fil de script a fini de s’exécuter.
 * Astuce : thread[1]==0 aide à déterminer si un lot de processus démarrés pour un certain identifiant est terminé.
 *
 * @param {QString} callbackIdentifier - l'identifiant fourni lors de l'appel de startDetachedProcess()
 * @param {QString} resultSet - le résultat du processus
 * @param {QVariantList} cmd - l'ensemble du tableau de commandes [0-executablePath, 1-parameters, 2-exitCode]
 * @param {QVariantList} thread - le tableau d'information sur les fils [0-callbackParameter passé, 1-fils restants pour cet identifiant]
 */
function onDetachedProcessCallback(callbackIdentifier, resultSet, cmd, thread);

Vous voudrez peut-être jeter un coup d'œil à l'exemple callback-example.qml.

windowStateChangedHook

Appel de méthode et paramètres

/**
 * Cette fonction est appelée après le déclenchement d'un événement WindowStateChange
 *
 * @param {QString} windowState - le nouvel état de la fenêtre, la valeur du paramètre peut être "minimized", "maximized", "fullscreen", "active" ou "nostate"
 */
function windowStateChangedHook(windowState);

Vous voudrez peut-être jeter un coup d'œil à l'exemple window-state-changed.qml.

layoutSwitchedHook

Ce hook est appelé quand la disposition est changée.

Appel de méthode et paramètres

/**
 * Cette fonction est appelée quand la disposition est changée
 *
 * @param oldUuid l’ancien UUID de disposition
 * @param newUuid le nouvel UUID de disposition
 */
function layoutSwitchedHook(oldUuid, newUuid);

Vous voudrez peut-être jeter un œil à l’exemple layouts.qml.

openAiBackendsHook

Ce hook est appelé quand la configuration du service OpenAI est rechargée. Par exemple, c’est également le cas lorsque le moteur de scripts est rechargé.

Vous pouvez l’utiliser pour fournir la configuration à des back-ends OpenAI personnalisés, comme vos propres LLM compatibles avec l’API d’OpenAI, tels que ChatGPT, Claude ou des systèmes comme Ollama.

Appel de méthode et paramètres

/**
 * Cette fonction est appelée quand la configuration du service OpenAI est rechargée
 * Elle renvoie une liste d’objets avec des préférences de configurations pour les nouveaux back-ends d’OpenAI
 */
function openAiBackendsHook() {
  return [
    {
      id: "mon-ia-personnalisee",
      name: "Mon IA personnalisée",
      baseUrl: "http://localhost:5000",
      apiKey: "kDFJkjk3asdm",
      models: ["gpt-3.5-turbo", "gpt-4.0-turbo"],
    },
    {
      id: "mon-ia-personnalisee2",
      name: "Mon IA personnalisée 2",
      baseUrl: "http://localhost:5001",
      apiKey: "lOikf7eNdb9",
      models: ["gpt-3.5-turbo2", "gpt-4.0-turbo2"],
    },
  ];
}

Conseil

Vous pouvez utiliser Enregistrement des variables de préférences de script pour stocker les préférences de back-end OpenAI dans les préférences de script.

Vous voudrez peut-être jeter un coup d’œil à l’exemple custom-openai-backends.qml.

highlightingHook

Ce hook est appelé pour chaque bloc de texte dans l’éditeur lors de la coloration syntaxique. Il vous permet d’ajouter de la mise en évidence dynamique et contextuelle qui va plus loin que des simples expressions régulières statiques avec addHighlightingRule.

Avertissement

Ce hook est appelé très fréquemment (pour chaque bloc de texte visible à chaque appui de touche), gardez donc votre implémentation rapide. Si vous n’avez besoin que de mise en évidence statique fondée sur des expressions régulières, préférez plutôt l’utilisation de addHighlightingRule ou addHighlightingRule avec des couleurs personnalisées.

Appel de méthode et paramètres

/**
 * Cette fonction est appelée pour chaque bloc de texte lors de la coloration syntaxique.
 * Elle permet de la mise en évidence contextuelle et dynamique.
 *
 * @param text {QString} le texte du bloc courant en cours de mise en évidence
 * @param previousBlockState {int} l’état de mise en évidence du bloc précédent
 *     (-1 si c’est le premier bloc)
 * @return {Array} un tableau d’objets highlight range, chacun avec :
 *     start {int} - position de départ dans le texte
 *     length {int} - nombre de caractères à mettre en évidence
 *     state {int} - le HighlighterState à utiliser (optionnel, -1 pour « personnalisé uniquement »)
 *     foregroundColor {string} - nom ou hexadécimal de la couleur de premier plan (optionnel)
 *     backgroundColor {string} - nom ou hexadécimal de la couleur d’arrière-plan (optionnel)
 *     bold {bool} - utiliser le gras (optionnel)
 *     italic {bool} - utiliser l’italique (optionnel)
 *     underline {bool} - souligner le texte (optionnel)
 *     fontSize {int} - taille de la police (optionnel, en pt.)
 */
function highlightingHook(text, previousBlockState) {
  var highlights = [];

  // Example: surligne toutes les occurences de « FIXME » avec un soulignage rouge et en gras
  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;
}

Vous voudrez peut-être jeter un œil aux exemples highlighting.qml et custom-highlighting.qml.

Prev
Méthodes et objets fournis par QOwnNotes
Next
Classes exposées