🌌 ObsiViewer — Explorateur de voûte Obsidian
ObsiViewer est une application Angular 20 qui permet de parcourir une voûte Obsidian en lecture seule : navigation dans l’arborescence des notes, rendu Markdown enrichi, visualisation du graphe et filtrage avancé par tags ou dates.
📝 Mode démo par défaut : l’interface repose sur des données générées par
VaultService. Vous pouvez connecter ObsiViewer à vos fichiers Markdown via le serveur Express fourni.
🚀 Aperçu rapide
- Framework : Angular + TailwindCSS
- Rendu Markdown :
MarkdownService(supporte Mermaid, KaTeX, surlignage de code) - Visualisations :
- Explorateur de fichiers (
app/components/file-explorer/) - Graphe de liens (
app/components/graph-view/) - Vue tags (
app/components/tags-view/) - Recherche + calendrier (intégré à
app.component.simple.html)
- Explorateur de fichiers (
- Backend optionnel : serveur Express (
server/index.mjs) qui lit la voûte physique (vault/) et expose une API REST.
🧰 Prérequis
- Node.js 20+ et npm (
node --version) - Angular CLI (facultatif mais pratique) :
npm install -g @angular/cli - Docker (facultatif) pour utiliser les scripts situés dans
docker/etdocker-compose/
⚙️ Installation & scripts utiles
npm install # Installe toutes les dépendances
npm run dev # Lance l'app en mode développement (http://localhost:3000)
npm run build # Compile la version production dans dist/
npm run preview # Sert la build de prod avec ng serve
👉 Le port de dev et la configuration de build sont définis dans angular.json.
🗂️ Structure du dépôt
src/: composant principalapp.component.ts, vue simplifiée, composants UI, services, typesserver/: serveur Express pour charger vos notes locales et fournir l’API/apivault/: emplacement attendu des fichiers Markdown (créé au démarrage du serveur)docker/&docker-compose/: scripts et configurations pour l’exécution en conteneursindex.tsx: point d’entrée Angular (bootstrap sans zone)metadata.json: métadonnées pour l’intégration AI Studio
🔌 Configurer l’API locale (optionnel)
npm run build # génère dist/
node server/index.mjs # lance l'API + serveur statique sur http://localhost:4000
Assurez-vous que vos notes Markdown se trouvent dans vault/. L’API expose :
GET /api/healthGET /api/vaultGET /api/files/metadataGET /api/files/by-date?date=2025-01-01GET /api/files/by-date-range?start=...&end=...
🐳 Exécution avec Docker (facultatif)
docker/build-img.ps1/docker/deploy-img.ps1pour construire et pousser une image localedocker/Dockerfile.origipour une build manuelle (docker build ...)docker-compose/docker-compose.ymlpour orchestrer un conteneur préconfiguré
💡 Pensez à personnaliser les fichiers .env (.env.local, docker-compose/.env) avant toute utilisation réelle.
🧪 Tests & qualité
- Aucun test automatisé n’est fourni pour l’instant.
- Ajoutez vos propres suites (
ng test,ng e2e) selon vos besoins.
⚠️ Points d’attention
- Les scripts Docker hérités supposent la présence d’un dossier
server/et d’un schémadb/schema.sql(non inclus ici). - Les secrets fournis en exemple dans les fichiers
.envdoivent être remplacés avant toute utilisation en production. - Le rendu Markdown peut nécessiter des adaptations pour des voûtes Obsidian complexes.
📚 Ressources
- Angular : https://angular.dev/
- CLI Angular (
ng serve) : https://angular.dev/cli/serve - Guide Docker Compose : voir
docker-compose/README.md
✨ Bonne exploration dans ObsiViewer !
Description
Languages
TypeScript
70.2%
JavaScript
12.4%
HTML
8.9%
CSS
5.6%
PowerShell
1.2%
Other
1.5%