Un environnement de développement moderne pour créer et maintenir plusieurs plugins Obsidian avec du code partagé.
- 🔄 Build simultané de plusieurs plugins
- 📦 Configuration Vite optimisée
- 🧪 Tests unitaires centralisés
- 🛠 Code partagé entre plugins
- 🔍 Hot reload automatique
- Cloner le repository
git clone https://github.com/dianedef/obsidian-development.git
cd obsidian-development
- Installer les dépendances
npm install
- Structure des plugins Chaque plugin doit suivre cette structure :
obsidian-my-plugin/
├── src/
│ ├── main.ts # Point d'entrée obligatoire
│ └── ... # Autres fichiers du plugin
├── manifest.json # Manifest Obsidian
└── styles.css # Styles optionnels
.
├── obsidian---plugin-boilerplate/ # Template de base pour nouveaux plugins
├── obsidian-plugin1/ # Plugin 1
├── obsidian-plugin2/ # Plugin 2
├── tests/ # Tests partagés
│ ├── __mocks__/ # Mocks globaux
│ └── services/ # Tests des services
└── vite.config.ts # Configuration build
- Créer un nouveau plugin
- Copier le dossier
obsidian---plugin-boilerplate
- Renommer en
obsidian-my-plugin
- Modifier
manifest.json
selon vos besoins
⚠️ Important: Le fichier main.ts doit exporter une classe par défaut qui étendPlugin
:
import { Plugin } from 'obsidian';
export default class MyPlugin extends Plugin {
async onload() {
// Plugin initialization
}
onunload() {
// Cleanup
}
}
- Développement
npm run dev
Le build se fait automatiquement pour tous les plugins ayant un fichier src/main.ts
ou src/main.js
. Il génère un fichier main.js
à la racine du dossier de chaque plugin et Obsidian le charge automatiquement.
- Build production
npm run build
- Vite détecte automatiquement tous les dossiers commençant par
obsidian-
- Chaque plugin est buildé dans son propre dossier
- Le hot reload surveille les changements dans tous les plugins
- Les tests sont centralisés mais peuvent être spécifiques à chaque plugin
# Lancer tous les tests
npm test
# Lancer les tests avec UI
npm run test:ui
# Couverture de code
npm run test:coverage
- Créez votre plugin dans un nouveau dossier
obsidian-my-plugin
- Assurez-vous d'avoir un
src/main.ts
ousrc/main.js
- Le build se fera automatiquement
MIT - voir LICENSE
Le fichier vite.config.ts
peut être personnalisé pour :
- Ajouter des dépendances externes
- Modifier les chemins de build
- Configurer des alias
- Ajuster les options de build
⚠️ Important: Les dépendances externes doivent être installées localement dans chaque plugin qui les utilise.
cd obsidian-my-plugin
npm install ma-dependance