Scripts
Un script est un fichier .js du coffre, exécuté comme étape Script d’un enchaînement. Il suit la convention de QuickAdd : un script écrit pour l’un fonctionne dans l’autre.
Signature
Section intitulée « Signature »module.exports = async (params, settings) => { const { app, api, variables, obsidian } = params; // …};app est l’objet App d’Obsidian. api est l’API publique d’Hypomnema. obsidian est le module Obsidian, qui donne accès à Notice, Modal, TFile et au reste sans import. variables contient les réponses aux invites {{VALUE:…}} ; il est partagé par toutes les étapes de l’enchaînement, si bien qu’un script peut lire les valeurs saisies plus tôt, et modifier ou ajouter des valeurs que les étapes suivantes verront.
settings contient les paires clé → valeur réglées sur l’étape script : un même fichier peut ainsi servir à plusieurs enchaînements, avec des réglages différents.
L’export peut aussi être un objet doté d’une fonction entry, comme dans QuickAdd :
module.exports = { entry: async (params, settings) => { /* … */ } };Exécution
Section intitulée « Exécution »Hypomnema demande une confirmation, qui nomme le fichier, au premier lancement d’un script, puis à nouveau chaque fois que le contenu du fichier change. Si le script lève une erreur, l’enchaînement s’arrête et une notification affiche le message.
// Scripts/compter.js — affiche le nombre de commentaires de la note activemodule.exports = async ({ app, api, variables, obsidian }, settings) => { const file = app.workspace.getActiveFile(); if (!file) throw new Error("Aucune note active"); const threads = await api.threads(file); variables.nombre = String(threads.length); new obsidian.Notice(`${threads.length} commentaire(s)`);};Une étape suivante peut utiliser {{VALUE:nombre}} sans que la question soit posée. Un exemple plus complet figure dans la note de méthode La fin de lecture.
L’export copie le chemin d’un script, jamais son code. Qui importe le geste doit ajouter le fichier à son propre coffre.