11 KiB
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 :
# 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 :
- Créez le dossier :
notes/daily/2025/01/ - Créez le fichier :
10.md - 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.mdpour 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 :
---
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
- 🎯 Objectifs du jour : Liste des objectifs à accomplir
- 📝 Notes : Notes libres, idées, observations
- ✅ Accompli : Ce qui a été fait dans la journée
- 💭 Réflexions : Pensées, apprentissages, réflexions personnelles
- 🔗 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 :
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 :
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 :
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 :
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 notestemplates/daily-calendar.html: Template du calendriertemplates/daily-recent.html: Template des notes récentes
Fonctions clés :
getDailyNotePath(date): Calcule le chemin d'une daily notedailyNoteExists(date): Vérifie si une note existecreateDailyNote(date): Crée une note avec le templatebuildCalendarData(year, month): Construit les données du calendrier
Algorithme du Calendrier :
- Calcule le premier et dernier jour du mois
- Remplit les jours avant le 1er (mois précédent, grisés)
- Remplit tous les jours du mois
- Remplit les jours après le dernier (mois suivant, grisés)
- Groupe les jours par semaines (lignes de 7 jours)
- Marque aujourd'hui et les jours ayant des notes
Frontend (JavaScript)
Fichier : frontend/src/daily-notes.js
Fonctions clés :
initDailyNotesShortcut(): RaccourciCtrl/Cmd+DrefreshDailyNotes(): 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)
Ctrl/Cmd+Dpour ouvrir la note du jour- Remplir la section "🎯 Objectifs du jour"
- Planifier les priorités
Journée
- Ajouter des notes au fil de l'eau dans "📝 Notes"
- Capturer les idées importantes
- Ajouter des liens vers d'autres notes
Soir (18h)
- Cocher les objectifs accomplis dans "✅ Accompli"
- Noter les réflexions dans "💭 Réflexions"
- Préparer les objectifs du lendemain
Revue Hebdomadaire
- Cliquer sur les 7 dernières notes dans "Récentes"
- Synthétiser les accomplissements
- Identifier les patterns et améliorations
🛠️ Personnalisation
Modifier le Template
Éditez internal/api/daily_notes.go, fonction createDailyNote() :
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() :
// 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 :
/* 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 :
// 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 :
// 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
- Vérifiez que le serveur a démarré correctement
- Vérifiez la console du navigateur pour des erreurs
- Vérifiez que
/api/daily/calendar/2025/01retourne du HTML
La note du jour ne se crée pas
- Vérifiez les permissions du dossier
notes/ - Vérifiez les logs du serveur pour des erreurs
- Vérifiez que le dossier
notes/daily/peut être créé
Le raccourci Ctrl/Cmd+D ne fonctionne pas
- Vérifiez que le frontend a été compilé (
npm run build) - Vérifiez la console du navigateur pour "Daily notes shortcuts initialized"
- Assurez-vous qu'aucun autre raccourci ne capture Ctrl/Cmd+D
Le calendrier ne se rafraîchit pas après sauvegarde
- Vérifiez que le chemin de la note commence par
daily/ - Vérifiez les événements HTMX dans la console
- Rafraîchissez manuellement en cliquant sur les flèches du calendrier
📚 Ressources
- ARCHITECTURE.md - Architecture globale
- CLAUDE.md - Guide de développement
- API.md - Documentation de l'API REST
🎉 Bonnes Pratiques
- Consistance : Écrivez chaque jour, même brièvement
- Honnêteté : Notez ce qui s'est vraiment passé
- Liens : Créez des liens vers d'autres notes
- Tags : Ajoutez des tags supplémentaires si nécessaire
- Revue : Relisez vos notes passées régulièrement
Version : 1.0.0 Date : 2025-01-11 Auteur : Project Notes Team