Journal d'un Terrien

Web log de Serge Boisse

On line depuis 1992 !

Publicité
Si cette page vous a plu, Copiez son adresse et partagez-la !
http://sboisse.free.fr/programmation/projets/programmation de Plugins Obsidian.php
Savez-vous quels sont les articles les plus vendus sur Amazon.fr ?
programmation de Plugins Obsidian
programmation > projets > programmation de Plugins Obsidian

Comment créer un plugin🔌Obsidian

Toutes mes astuces sur la programmation de de plugins pour Obsidian
voir aussi @ Idées de plugins Obsidian(lien privé) (lien privé) et _Obsidian Plugins 🔌

Pasted image 20250309155408.png

ressources

généralités

Les plugins sont généralement (en tout cas celui par défaut) écrits en Typescript (page web)

On peut utiliser des framework comme React :- react Obsidian plugin developper (page web)

@ Markdown en HTML
@ Markdown en HTML

Notons que dans l'API obsidian, il y a une fonction renderMarkdown() qui transforme le md en html, y compris tous les résultats des post-processeurs (dataview, etc)
cf Obsidian API (page web)
et Markdown to html (page web sur le forum Obsidian)

Tutos video

étapes

source : How to create your own Obsidian Plugin (page web) C'est le texte de la video
  1. setup
    1. installer Node.js
    2. Editeur de code (eg VisualStudio code, notepad++,...)
    3. (optionnel) Git et un compte GitHub,
    4. le sample plugin (sur GitHub : clone and download zip) ou clic "use this template" et donner un nom au "repository", e.g. test
    5. en local ouvrir l'explorateur windows à l'endroit où on veut (eg documents), clic droit ouvrir un terminal et git-clone avec l'url du repository GitHub que l'on vient de créer
    6. On n'a pas besoin de tous les fichiers; seulement de main.ts, manifest.json, package.json et éventuellement style.css. on peut mettre tous ces fichiers à la racine.
    7. Dans le shell de l'éditeur ou celui de windows (et dans le bon répertoire) faire npm install
  2. Cycle
    1. Editer le source .ts
    2. Dans la classe Myplugin
      1. la méthode onload sera exécutée lorsque le plugin est chargé pour la 1ere fois. elle appelle d'autres méthodes (pas très utiles mais pour exemple)
        1. deux méthodes pour charger et sauver les settings
        2. la méthode addCommand eg pour ouvrir une fenêtre modale
    3. Compiler
      1. npm run build --> crée le main.js (ne pas l'éditer en général)
      1. à noter : npm run dev -> va recompiler à chaque sauvegarde.
    4. Exécuter dans Obsidian
      1. copier le main.js, Manifest.json et styles.css dans un vault (attention a ne pas utiliser le coffre perso). Eg le coffre "obsidian-hub" cf Obsidian hub (page web)
      2. coller dans .obsidian/plugin/new folder
      3. On peut tester dans obsidian ! (bouton "recharger" à droite de la ligne paramètres/plugins tiers/plugins installés)
      4. Avec le sample plugin du texte passe en rouge parce que le syles.css dit "tout le body en rouge". On peut l'effacer. et recharger.
      5. Si on édite les settings du plugin on crée/change un fichier data.json
    5. Modifier...
      1. On peut carrément virer le contenu de onload( ) et onunload()
      2. Cf la video Youtube pour re-créer le plugin cycle through panes
    6. Publier
      1. Editer manifest.json déterminer un numéro de version et s'en souvenir, il faudra le réutiliser
      2. "git add ."
      3. git commit "initial release"
      4. git push
      5. go to git website, check...
      6. create a release. maintenant le plugin est visible sur git, mais il faut le faire enregistrer comme plugin Obsidian
        1. github.com/obsidian.md clic on obsidian releases, open community plugins.json Ajouter la description du plugin à la fin
        2. cliquer sur "propose changes" and then pull request

Après avoir créé votre plugin, vous pouvez l'ajouter à notre marché communautaire de plugins en créant une pull request dans le dépôt de releases (page web). Consultez l'exemple (sample) de plugin pour savoir comment publier les mises à jour de votre plugin.

trucs et astuces

récupérer tous les tags du coffre :

import { getAllTags } from 'obsidian'; const tags = getAllTags();

récupérer tous les fichiers
First off: Don't call getMarkdownFiles() inside your plugin's onLoad function. On startup, Obsidian asynchronously walks through all the folders and files in your vault directory and registers them with the Vault. Your plugin's onLoad is called before that.

If your plugin needs to iterate through the vault on startup, you should do so within the onLayoutReady callback, which is fired after the Vault has been initialized and the files have been resolved.

je me lance...

Publicité
Commentaires

Commentaires (0) :

Page :



Ajouter un commentaire (pas besoin de s'enregistrer)

Pseudo :
Message :


image de protection
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !
Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.
< Retour en haut de la page