Logo Cinquin Andy Signature

Développer un Plugin pour Obsidian: Ressources Utiles et Conseils

Développeur Freelance - Logo

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).
Screenshot of a text editor displaying a Markdown file named README.md with a checklist for a project roadmap related to exporting notes from Obsidian to Strapi CMS.
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:
Webpage screenshot of the Strapi Exporter software plugin for exporting notes from Obsidian to Strapi CMS. Features include AI-powered image handling and SEO optimization.
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 !

DÉVELOPPONS ENSEMBLE VOS PROJETS

Une idée, un projet ? Je suis là pour répondre à vos demandes et vous accompagner.
N’hésitez pas, je serais ravi d’échanger avec vous sur votre projet !
© 2024 Andy Cinquin - Tous droits réservés - Developed & Designed with ❤️ 🐝 ForHives co-founders