Des tonnes de modifications notamment VIM / Couleurs / typos
This commit is contained in:
388
docs/DAILY_NOTES.md
Normal file
388
docs/DAILY_NOTES.md
Normal file
@ -0,0 +1,388 @@
|
||||
# Daily Notes - Documentation
|
||||
|
||||
Les **Daily Notes** sont des notes quotidiennes permettant une prise de notes rapide et organisée par date. Cette fonctionnalité s'intègre parfaitement dans Project Notes avec un calendrier interactif et des raccourcis clavier.
|
||||
|
||||
## 🎯 Fonctionnalités
|
||||
|
||||
### 1. Accès Rapide
|
||||
- **Bouton dans le header** : Cliquez sur "📅 Note du jour"
|
||||
- **Raccourci clavier** : `Ctrl/Cmd+D` (fonctionne partout dans l'application)
|
||||
- **Création automatique** : La note du jour est créée automatiquement si elle n'existe pas
|
||||
|
||||
### 2. Calendrier Interactif
|
||||
- **Vue mensuelle compacte** dans la sidebar
|
||||
- **Navigation** : Utilisez les flèches `‹` et `›` pour changer de mois
|
||||
- **Indicateurs visuels** :
|
||||
- **Aujourd'hui** : Bordure violette avec fond dégradé
|
||||
- **Notes existantes** : Point bleu (●) sous la date + cliquable
|
||||
- **Jours sans notes** : Grisés (opacité 50%) et non cliquables
|
||||
- **Jours du mois** : Affichés selon leur état
|
||||
- **Autres mois** : Très grisés et non cliquables
|
||||
- **Clic sur une date** : Ouvre la note de ce jour (uniquement si elle existe)
|
||||
|
||||
### 3. Notes Récentes
|
||||
- Liste des **7 dernières daily notes** dans la sidebar
|
||||
- Affichage du jour de la semaine et de la date
|
||||
- Accès rapide par simple clic
|
||||
|
||||
## ✍️ Créer une Nouvelle Daily Note
|
||||
|
||||
**Important** : Seules les notes existantes sont cliquables dans le calendrier. Pour créer une nouvelle daily note :
|
||||
|
||||
### Méthode 1 : Note du Jour
|
||||
- **Bouton** : Cliquez sur "📅 Note du jour" dans le header
|
||||
- **Raccourci** : Appuyez sur `Ctrl/Cmd+D`
|
||||
- **Bouton calendrier** : Cliquez sur le bouton "📅 Aujourd'hui" sous le calendrier
|
||||
|
||||
Ces trois méthodes créent automatiquement la note du jour si elle n'existe pas encore.
|
||||
|
||||
### Méthode 2 : Date Spécifique (API)
|
||||
Pour créer une note à une date spécifique (par exemple pour une note passée oubliée), utilisez l'API :
|
||||
|
||||
```bash
|
||||
# Créer la note du 10 janvier 2025
|
||||
curl http://localhost:8080/api/daily/2025-01-10
|
||||
```
|
||||
|
||||
Ou accédez directement à l'URL dans votre navigateur :
|
||||
```
|
||||
http://localhost:8080/api/daily/2025-01-10
|
||||
```
|
||||
|
||||
### Méthode 3 : Création Manuelle
|
||||
Vous pouvez aussi créer manuellement le fichier :
|
||||
|
||||
1. Créez le dossier : `notes/daily/2025/01/`
|
||||
2. Créez le fichier : `10.md`
|
||||
3. Copiez le template (voir section Template ci-dessous)
|
||||
|
||||
Le calendrier affichera automatiquement la note après actualisation.
|
||||
|
||||
## 📁 Organisation des Fichiers
|
||||
|
||||
### Structure des Dossiers
|
||||
```
|
||||
notes/
|
||||
└── daily/
|
||||
└── 2025/
|
||||
└── 01/
|
||||
├── 01.md
|
||||
├── 02.md
|
||||
├── 11.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
### Format de Fichier
|
||||
- **Nom** : `DD.md` (ex: `11.md` pour le 11 janvier)
|
||||
- **Chemin complet** : `notes/daily/YYYY/MM/DD.md`
|
||||
- **Tag automatique** : `[daily]` pour toutes les daily notes
|
||||
|
||||
## 📝 Template par Défaut
|
||||
|
||||
Chaque nouvelle daily note est créée avec le template suivant :
|
||||
|
||||
```markdown
|
||||
---
|
||||
title: "Daily Note - 2025-01-11"
|
||||
date: "11-01-2025"
|
||||
last_modified: "11-01-2025:14:30"
|
||||
tags: [daily]
|
||||
---
|
||||
|
||||
# 📅 Samedi 11 janvier 2025
|
||||
|
||||
## 🎯 Objectifs du jour
|
||||
-
|
||||
|
||||
## 📝 Notes
|
||||
-
|
||||
|
||||
## ✅ Accompli
|
||||
-
|
||||
|
||||
## 💭 Réflexions
|
||||
-
|
||||
|
||||
## 🔗 Liens
|
||||
-
|
||||
```
|
||||
|
||||
### Sections du Template
|
||||
|
||||
1. **🎯 Objectifs du jour** : Liste des objectifs à accomplir
|
||||
2. **📝 Notes** : Notes libres, idées, observations
|
||||
3. **✅ Accompli** : Ce qui a été fait dans la journée
|
||||
4. **💭 Réflexions** : Pensées, apprentissages, réflexions personnelles
|
||||
5. **🔗 Liens** : Liens vers d'autres notes, ressources, etc.
|
||||
|
||||
## 🎨 Interface Utilisateur
|
||||
|
||||
### Header
|
||||
Le bouton "📅 Note du jour" apparaît dans le header entre "🏠 Accueil" et "✨ Nouvelle note".
|
||||
|
||||
### Sidebar
|
||||
La section "📅 Daily Notes" comprend :
|
||||
- **Calendrier** : Vue mensuelle avec navigation
|
||||
- **Bouton "Aujourd'hui"** : Accès rapide à la note du jour
|
||||
- **Section "Récentes"** : Liste des 7 dernières notes
|
||||
|
||||
### Style du Calendrier
|
||||
- **Grille 7x7** : Jours de la semaine + jours du mois
|
||||
- **En-têtes** : L M M J V S D (Lundi à Dimanche)
|
||||
- **Hover** : Effet de zoom léger (scale 1.05) et bordure bleue
|
||||
- **Responsive** : S'adapte aux petits écrans mobiles
|
||||
|
||||
## 🔧 Endpoints API
|
||||
|
||||
### GET /api/daily/today
|
||||
Ouvre ou crée la note du jour (aujourd'hui).
|
||||
|
||||
**Exemple** :
|
||||
```bash
|
||||
curl http://localhost:8080/api/daily/today
|
||||
```
|
||||
|
||||
**Comportement** :
|
||||
- Crée la note si elle n'existe pas
|
||||
- Redirige vers `/api/notes/daily/2025/01/11.md`
|
||||
|
||||
### GET /api/daily/{YYYY-MM-DD}
|
||||
Ouvre ou crée la note d'une date spécifique.
|
||||
|
||||
**Exemple** :
|
||||
```bash
|
||||
curl http://localhost:8080/api/daily/2025-01-15
|
||||
```
|
||||
|
||||
**Comportement** :
|
||||
- Crée la note si elle n'existe pas
|
||||
- Redirige vers `/api/notes/daily/2025/01/15.md`
|
||||
|
||||
### GET /api/daily/calendar/{YYYY}/{MM}
|
||||
Retourne le HTML du calendrier pour un mois spécifique.
|
||||
|
||||
**Exemple** :
|
||||
```bash
|
||||
curl http://localhost:8080/api/daily/calendar/2025/01
|
||||
```
|
||||
|
||||
**Response** : HTML du calendrier avec navigation et indicateurs
|
||||
|
||||
### GET /api/daily/recent
|
||||
Retourne les 7 dernières daily notes (HTML).
|
||||
|
||||
**Exemple** :
|
||||
```bash
|
||||
curl http://localhost:8080/api/daily/recent
|
||||
```
|
||||
|
||||
**Response** : Liste HTML des notes récentes
|
||||
|
||||
## 💻 Architecture Technique
|
||||
|
||||
### Backend (Go)
|
||||
|
||||
**Fichiers** :
|
||||
- `internal/api/daily_notes.go` : Logique métier des daily notes
|
||||
- `templates/daily-calendar.html` : Template du calendrier
|
||||
- `templates/daily-recent.html` : Template des notes récentes
|
||||
|
||||
**Fonctions clés** :
|
||||
- `getDailyNotePath(date)` : Calcule le chemin d'une daily note
|
||||
- `dailyNoteExists(date)` : Vérifie si une note existe
|
||||
- `createDailyNote(date)` : Crée une note avec le template
|
||||
- `buildCalendarData(year, month)` : Construit les données du calendrier
|
||||
|
||||
**Algorithme du Calendrier** :
|
||||
1. Calcule le premier et dernier jour du mois
|
||||
2. Remplit les jours avant le 1er (mois précédent, grisés)
|
||||
3. Remplit tous les jours du mois
|
||||
4. Remplit les jours après le dernier (mois suivant, grisés)
|
||||
5. Groupe les jours par semaines (lignes de 7 jours)
|
||||
6. Marque aujourd'hui et les jours ayant des notes
|
||||
|
||||
### Frontend (JavaScript)
|
||||
|
||||
**Fichier** : `frontend/src/daily-notes.js`
|
||||
|
||||
**Fonctions clés** :
|
||||
- `initDailyNotesShortcut()` : Raccourci `Ctrl/Cmd+D`
|
||||
- `refreshDailyNotes()` : Rafraîchit le calendrier et les notes récentes
|
||||
- Événements HTMX : Rafraîchissement automatique après sauvegarde
|
||||
|
||||
### Styles (CSS)
|
||||
|
||||
**Fichier** : `static/theme.css`
|
||||
|
||||
**Classes CSS** :
|
||||
- `.daily-calendar` : Conteneur du calendrier
|
||||
- `.calendar-grid` : Grille 7x7
|
||||
- `.calendar-day` : Cellule de jour
|
||||
- `.calendar-day-today` : Style pour aujourd'hui
|
||||
- `.calendar-day-has-note` : Style pour les jours avec notes
|
||||
- `.daily-recent-item` : Élément de la liste récente
|
||||
|
||||
## 🎯 Cas d'Usage
|
||||
|
||||
### 1. Journal Quotidien
|
||||
Utilisez les daily notes comme un journal personnel :
|
||||
- Notez vos objectifs le matin
|
||||
- Ajoutez des notes au fil de la journée
|
||||
- Récapitulez vos accomplissements le soir
|
||||
|
||||
### 2. Suivi de Projet
|
||||
Documentez l'avancement jour par jour :
|
||||
- Objectifs : Tâches du jour
|
||||
- Notes : Progrès et observations
|
||||
- Accompli : Livraisons et jalons
|
||||
- Réflexions : Blocages et solutions
|
||||
|
||||
### 3. Veille Technologique
|
||||
Collectez des informations quotidiennes :
|
||||
- Notes : Articles intéressants
|
||||
- Liens : Ressources découvertes
|
||||
- Réflexions : Apprentissages clés
|
||||
|
||||
### 4. Réunions Quotidiennes (Stand-up)
|
||||
Préparez vos stand-ups :
|
||||
- Accompli : Ce qui a été fait hier
|
||||
- Objectifs : Ce qui sera fait aujourd'hui
|
||||
- Réflexions : Blocages éventuels
|
||||
|
||||
## 🔄 Workflow Recommandé
|
||||
|
||||
### Matin (9h)
|
||||
1. `Ctrl/Cmd+D` pour ouvrir la note du jour
|
||||
2. Remplir la section "🎯 Objectifs du jour"
|
||||
3. Planifier les priorités
|
||||
|
||||
### Journée
|
||||
1. Ajouter des notes au fil de l'eau dans "📝 Notes"
|
||||
2. Capturer les idées importantes
|
||||
3. Ajouter des liens vers d'autres notes
|
||||
|
||||
### Soir (18h)
|
||||
1. Cocher les objectifs accomplis dans "✅ Accompli"
|
||||
2. Noter les réflexions dans "💭 Réflexions"
|
||||
3. Préparer les objectifs du lendemain
|
||||
|
||||
### Revue Hebdomadaire
|
||||
1. Cliquer sur les 7 dernières notes dans "Récentes"
|
||||
2. Synthétiser les accomplissements
|
||||
3. Identifier les patterns et améliorations
|
||||
|
||||
## 🛠️ Personnalisation
|
||||
|
||||
### Modifier le Template
|
||||
|
||||
Éditez `internal/api/daily_notes.go`, fonction `createDailyNote()` :
|
||||
|
||||
```go
|
||||
template := fmt.Sprintf(`---
|
||||
title: "Daily Note - %s"
|
||||
date: "%s"
|
||||
last_modified: "%s"
|
||||
tags: [daily, perso] // Ajoutez des tags personnalisés
|
||||
---
|
||||
|
||||
# 📅 %s %d %s %d
|
||||
|
||||
## Vos sections personnalisées
|
||||
-
|
||||
`, ...)
|
||||
```
|
||||
|
||||
### Changer le Dossier de Stockage
|
||||
|
||||
Modifiez `getDailyNotePath()` :
|
||||
|
||||
```go
|
||||
// Au lieu de notes/daily/2025/01/11.md
|
||||
// Utilisez notes/journal/2025-01-11.md
|
||||
relativePath := filepath.Join("journal", fmt.Sprintf("%s.md", date.Format("2006-01-02")))
|
||||
```
|
||||
|
||||
### Ajuster les Couleurs du Calendrier
|
||||
|
||||
Éditez `static/theme.css` :
|
||||
|
||||
```css
|
||||
/* Aujourd'hui */
|
||||
.calendar-day-today {
|
||||
border-color: #your-color;
|
||||
background: your-gradient;
|
||||
}
|
||||
|
||||
/* Notes existantes */
|
||||
.calendar-day-has-note .calendar-day-number {
|
||||
color: #your-color;
|
||||
}
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Avancée
|
||||
|
||||
### Désactiver l'Auto-création
|
||||
Si vous ne voulez pas créer automatiquement les notes :
|
||||
|
||||
```go
|
||||
// Dans handleDailyToday() et handleDailyDate()
|
||||
// Commentez ces lignes :
|
||||
// if !h.dailyNoteExists(date) {
|
||||
// if err := h.createDailyNote(date); err != nil {
|
||||
// ...
|
||||
// }
|
||||
// }
|
||||
```
|
||||
|
||||
### Changer le Raccourci Clavier
|
||||
Éditez `frontend/src/daily-notes.js` :
|
||||
|
||||
```javascript
|
||||
// Au lieu de Ctrl/Cmd+D, utilisez Ctrl/Cmd+J par exemple
|
||||
if ((event.ctrlKey || event.metaKey) && event.key === 'j') {
|
||||
event.preventDefault();
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
## 🐛 Dépannage
|
||||
|
||||
### Le calendrier ne s'affiche pas
|
||||
1. Vérifiez que le serveur a démarré correctement
|
||||
2. Vérifiez la console du navigateur pour des erreurs
|
||||
3. Vérifiez que `/api/daily/calendar/2025/01` retourne du HTML
|
||||
|
||||
### La note du jour ne se crée pas
|
||||
1. Vérifiez les permissions du dossier `notes/`
|
||||
2. Vérifiez les logs du serveur pour des erreurs
|
||||
3. Vérifiez que le dossier `notes/daily/` peut être créé
|
||||
|
||||
### Le raccourci Ctrl/Cmd+D ne fonctionne pas
|
||||
1. Vérifiez que le frontend a été compilé (`npm run build`)
|
||||
2. Vérifiez la console du navigateur pour "Daily notes shortcuts initialized"
|
||||
3. Assurez-vous qu'aucun autre raccourci ne capture Ctrl/Cmd+D
|
||||
|
||||
### Le calendrier ne se rafraîchit pas après sauvegarde
|
||||
1. Vérifiez que le chemin de la note commence par `daily/`
|
||||
2. Vérifiez les événements HTMX dans la console
|
||||
3. Rafraîchissez manuellement en cliquant sur les flèches du calendrier
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [ARCHITECTURE.md](../ARCHITECTURE.md) - Architecture globale
|
||||
- [CLAUDE.md](../CLAUDE.md) - Guide de développement
|
||||
- [API.md](../API.md) - Documentation de l'API REST
|
||||
|
||||
## 🎉 Bonnes Pratiques
|
||||
|
||||
1. **Consistance** : Écrivez chaque jour, même brièvement
|
||||
2. **Honnêteté** : Notez ce qui s'est vraiment passé
|
||||
3. **Liens** : Créez des liens vers d'autres notes
|
||||
4. **Tags** : Ajoutez des tags supplémentaires si nécessaire
|
||||
5. **Revue** : Relisez vos notes passées régulièrement
|
||||
|
||||
---
|
||||
|
||||
**Version** : 1.0.0
|
||||
**Date** : 2025-01-11
|
||||
**Auteur** : Project Notes Team
|
||||
Reference in New Issue
Block a user