# Crochets

# onNoteStored

# Appel de méthode et paramÚtres

/**
 * This function is called when a note gets stored to disk
 * You cannot modify stored notes, that would be a mess since
 * you are most likely editing them by hand at the same time
 *
 * @param {NoteApi} note - the note object of the stored note
 */
function onNoteStored(note);
1
2
3
4
5
6
7
8

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple sur-note-open.qml (opens new window).

# 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);
1
2
3
4
5
6

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple sur-note-open.qml (opens new window).

# 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);
1
2
3
4
5
6

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple external-note-open.qml (opens new window).

# 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);
1
2
3
4
5
6

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple exemple.qml (opens new window).

# 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);
1
2
3
4
5
6

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple exemple.qml (opens new window).

# 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
 * @ renvoie la chaßne à insérer à la place du texte de l'objet QMimeData
 */
function insertingFromMimeDataHook (text, html);
1
2
3
4
5
6
7
8

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple exemple.qml (opens new window), insĂ©rer-titre-avec-lien-de-github-url.qml (opens new window) ou note-text-from-17pm-mail.qml (opens new window).

# 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 paramĂštres
  *
  * Il 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 doit
  * ne 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);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple exemple.qml (opens new window) ou nom-de-balise-d'utilisation-dans-nom-de-fichier.qml (opens new window).

# 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
  *
  * Il 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);
1
2
3
4
5
6
7
8
9
10
11

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple exemple.qml (opens new window).

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);
1
2
3
4
5
6
7
8
9
10
11
12
13

Vous pouvez jeter un Ɠil à l'exemple custom-new-note-headline.qml (opens new window).

# 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 LaTeX math 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 {string} 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);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple preview-styling.qml (opens new window).

# 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 {string} 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);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple exemple.qml (opens new window) ou preview-styling.qml (opens new window).

Veuillez vous référer à la documentation du sous-ensemble HTML pris en charge (opens new window) 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 (texte, mot de passe, décrypter);
1
2
3
4
5
6
7
8
9

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple encryption-keybase.qml (opens new window), encryption-pgp.qml (opens new window) ou encryption-rot13.qml (opens new window).

# noteTaggingHook

Vous pouvez implémenter votre propre mécanisme de marquage 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 marquage des notes pour une note
  *
  * Cette fonction est appelée lorsque des balises sont ajoutées, supprimées ou renommées dans
  * une note ou les balises d'une note doivent ĂȘtre listĂ©es
  *
  * @param note
  * L'action @param peut ĂȘtre "ajouter", "supprimer", "renommer" ou "lister"
  * @param tagName nom de la balise Ă  ajouter, supprimer ou renommer
  * @param newTagName nom de la balise Ă  renommer si action = "renommer"
  * @return note chaĂźne de texte ou chaĂźne-liste de noms de balises (si action = "list")
  */
function noteTaggingHook (note, action, tagName, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13
  • dĂšs qu'un script est activĂ© qui implĂ©mente la nouvelle fonction noteTaggingHook le marquage des notes sera gĂ©rĂ© par cette fonction
  • les fonctionnalitĂ©s suivantes doivent fonctionner via l'interface utilisateur QOwnNotes
    • importation initiale de balises telles que @tag Ă  partir de vos notes et Ă©crasement de votre attribution de balise actuelle
      • vous ne perdrez pas votre arbre de balises, juste l'ancienne affectation aux notes
      • vous pouvez toujours dĂ©placer des balises dans d'autres balises
      • si plus d'une balise porte le mĂȘme nom dans votre arborescence de balises, le premier hit sera attribuĂ©
    • l'ajout d'une balise Ă  une note ajoutera la balise au texte de la note
    • la suppression d'une Ă©tiquette d'une note supprimera l'Ă©tiquette du texte de la note
    • la suppression des balises dans la liste des balises supprimera ces balises de votre notes
    • renommer les balises dans la liste des balises renomme ces balises dans votre Notes
    • le marquage en masse des notes dans la liste de notes ajoutera ces balises Ă  votre Notes
    • la suppression massive des balises des notes de la liste de notes supprimera ces balises de vos notes
    • l'application dĂ©clenchera une sĂ©rie d'actions ajouter et supprimer pour toutes les balises sĂ©lectionnĂ©es et leurs enfants sur toutes les notes si les balises sont dĂ©placĂ©es dans le panneau des balises

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple note-tagging.qml (opens new window) pour implĂ©menter votre propre mĂ©canisme de balisage.

WARNING

Assurez-vous que votre action liste est vraiment rapide car elle sera exécutée pour chaque note à chaque rechargement du dossier de notes !

# noteTaggingByObjectHook

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

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

Cela signifie Ă©galement que vous devez crĂ©er vous-mĂȘme les balises manquantes pour pouvoir fournir une liste des identifiants de balises dĂ©jĂ  existants pour l'action list.

# Appel de méthode et paramÚtres

/ **
 * GĂšre le marquage des notes pour une note
 *
 * Cette fonction est appelée lorsque des balises sont ajoutées, supprimées ou renommées dans
 * une note ou que les balises d'une note doivent ĂȘtre listĂ©es
 *
 * @param note
 * L'action @param peut ĂȘtre "ajouter", "supprimer", "renommer" ou "lister"
 * Balise @param Ă  ajouter, supprimer ou renommer
 * @param newTagName nom de la balise Ă  renommer si action = "renommer"
 * @return note chaĂźne de texte ou liste de chaĂźnes d'identifiants de balises (si action = "list")
 * /
function noteTaggingByObjectHook(note, action, tag, newTagName);
1
2
3
4
5
6
7
8
9
10
11
12
13

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple note-tagging-by-object.qml (opens new window) pour implĂ©menter votre propre mĂ©canisme de balisage.

# 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();
1
2
3
4
5
6
7

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple autocompletion.qml (opens new window).

# 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 sur laquelle la demande a été effectuée
 * @param pageTitrer le titre de la page Web oĂč la demande a Ă©tĂ© faite
 * @param rawData les données qui ont été transmises, HTML pour requestType "page" ou texte brut pour requestType "selection"
 * @param screenshotDataUrl l'URL des donnĂ©es de la capture d'Ă©cran si la page Web oĂč la demande a Ă©tĂ© faite
 * @return true si les données ont été gérées par un hook
 */
function callHandleWebsocketRawDataHook (requestType, pageUrl, pageTitle, rawData, screenshotDataUrl);
1
2
3
4
5
6
7
8
9

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil aux exemples websocket-raw-data-new-note.qml (opens new window) et websocket-raw-data-selection-in-note.qml (opens new window).

# onDetachedProcessCallback

Ce hook est appelé lorsqu'un thread de script de startDetachedProcess est exécuté.

# Appel de méthode et paramÚtres

/**
  * Cette fonction est appelée lorsqu'un thread de script est terminé.
 * 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 threads [paramÚtre de rappel passé à 0, 1 threads restants pour cet identifiant]
 */
function onDetachedProcessCallback (callbackIdentifier, resultSet, cmd, thread);
1
2
3
4
5
6
7
8
9
10

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple callback-example.qml (opens new window).

# 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);
1
2
3
4
5
6

Vous voudrez peut-ĂȘtre jeter un coup d'Ɠil Ă  l'exemple window-state-changed.qml (opens new window).