# đ 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`)
- **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/` et `docker-compose/`
---
## âïž Installation & scripts utiles
```bash
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 principal `app.component.ts`, vue simplifiée, composants UI, services, types
- `server/` : serveur Express pour charger vos notes locales et fournir lâAPI `/api`
- `vault/` : emplacement attendu des fichiers Markdown (créé au démarrage du serveur)
- `docker/` & `docker-compose/` : scripts et configurations pour lâexĂ©cution en conteneurs
- `index.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)
```bash
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/health`
- `GET /api/vault`
- `GET /api/files/metadata`
- `GET /api/files/by-date?date=2025-01-01`
- `GET /api/files/by-date-range?start=...&end=...`
---
## đł ExĂ©cution avec Docker (facultatif)
- `docker/build-img.ps1` / `docker/deploy-img.ps1` pour construire et pousser une image locale
- `docker/Dockerfile.origi` pour une build manuelle (`docker build ...`)
- `docker-compose/docker-compose.yml` pour 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Ă©ma `db/schema.sql` (non inclus ici).
- Les secrets fournis en exemple dans les fichiers `.env` doivent ĂȘtre remplacĂ©s avant toute utilisation en production.
- Le rendu Markdown peut nécessiter des adaptations pour des voûtes Obsidian complexes.
---
## đ Ressources
- Angular :
- CLI Angular (`ng serve`) :
- Guide Docker Compose : voir `docker-compose/README.md`
---
âš Bonne exploration dans ObsiViewer !