Développer un Plugin pour Obsidian: Ressources Utiles et Conseils
Publié le 3 avril 2024 - par Andy Cinquin
ObsidianPluginDéveloppementRessourcesNotesProductivitéWorkflowOptimisation
Dans cet article, nous allons voir comment j'ai eu l'occasion de développer un plugin pour Obsidian, et je vais partager quelques ressources utiles que j'ai eu l'occasion de trouver lors du développement de ce plugin.
Tout d'abord, qu'est-ce qu'Obsidian ? C'est un outil qui permet de prendre des notes (un peu comme Notion ou OneNote) mais avec un système de connexion entre les notes. Par exemple, on pourra faire en sorte de lier les éléments entre eux ; on parlera d'une voiture, on fera un lien vers une fiche qui explique ce que sont des roues.
Obsidian est souvent utilisé comme un second cerveau (les principes GTD, Zettelkasten, etc.). Bref, un super outil de développement personnel !
Personnellement, je m'en sers quotidiennement. Maintenant, j'écris mes articles, je garde les outils intéressants, j'explore de nouvelles technos ; bref, c'est mon Wikipedia et mon bac à sable personnel !
Ok ! Maintenant qu'on sait de quoi on parle, pourquoi faire un plugin sur Obsidian et comment ? Pour ma part, j'écris mes articles sur cet outil, et j'avais besoin de pouvoir exporter mes articles de mes notes Obsidian directement en tant qu'articles sur mon blog, mon blog qui est géré sur du Strapi pour le coup.
Donc, un plugin Obsidian, ça s'articule comment ? Simple :
- un fichier main.js
- un fichier manifest.json
La techno, du JavaScript, et la librairie Obsidian qui contient les différentes fonctions de base propres à Obsidian pour pouvoir interagir avec l'API interne de leur logiciel.
Le besoin initial était donc de parcourir la note, d'uploader toutes les images vers mon S3 où je stocke mes images, de remplacer les liens des images par les liens externes (liens vers mon API d'images), puis d'uploader l'article sur Strapi.
Ensuite, plusieurs améliorations étaient nécessaires. Lors de l'upload, il fallait faire passer l'image et le contexte vers ChatGPT et GPT Vision, pour analyser l'image, le contexte, et en sortir un texte alternatif.
Puis, avec le même contexte, remplir les différents champs nécessaires à l'upload de mon article (description pour Google, titre, tags, etc.), en suivant un template JSON fourni dans les paramètres de notre plugin, et la description de ce même plugin.
J'ai également ajouté la possibilité d'ajouter un prompt custom, sa clé OpenAPI, d'ajouter des images supplémentaires, un autre appel alternatif (qui me sert pour l'upload d'une réalisation et pas d'un article de blog).
Voici donc, ci-dessus, ma roadmap projet au début.
Petit tips :
ctrl + shift + i
pour accéder à la console de débogage dans Obsidian (c'est un navigateur embarqué, en Chromium, donc même outil de débogage que Chrome !).Plugin Obsidian hot-reload : (GitHub - pjeby/hot-reload: Automatically reload Obsidian plugins in development when their files are changed) pour que ça soit plus agréable de développer sur Obsidian.
Base template : GitHub - obsidianmd/obsidian-sample-plugin, un plugin par défaut pour pouvoir avoir un exemple.
La doc développeur Obsidian: Home - Developer Documentation
Le plugin que j'ai développer et ensuite publié sur NPM:
Franchement, ça fait un peu peur au début, mais c'est archi simple de développer dans l'environnement Obsidian et d'ajouter des plugins pour à peu prêt tout et n'importe quoi, bref, maintenant, j'ai mon plugin pour ajouter automatiquement mes articles à mon site internet !
En vous remerciant de votre visite, n'hésitez pas à me
contacter pour toute demande de renseignements, devis ou
proposition de collaboration. Je me ferai un plaisir de
vous répondre dans les plus brefs délais.
Vous avez aimé cet article ? N'hésitez pas à le partager !