README
¶
NotesMD 📝
Un navigateur de notes Markdown élégant et rapide pour le terminal, construit avec Go et Bubble Tea.
NotesMD est un explorateur de fichiers interactif spécialisé pour les notes Markdown. Il offre une prévisualisation en temps réel avec Glamour, une navigation intuitive Vim-style, et des fonctionnalités avancées comme la recherche fuzzy, les signets et l'historique.
🖼️ Démos visuelles


✨ Fonctionnalités
- Interface TUI en deux colonnes (explorateur 30% + preview 70%)
- Prévisualisation Markdown temps réel avec Glamour et navigation Vim (
j/k,gg,G,Ctrl+d/u) - Liens wiki style Obsidian :
[[Note]]pour lier des notes entre elles (toucheLpour voir tous les liens) - Double éditeur : éditeur inline rapide (
E) ou externe (e) avec$EDITOR - Recherche fuzzy (
/) dans noms + recherche in-note (F) avec highlight ⚡ - CRUD via modals (
n,r,D) avec confirmations - Signets (
b,B), fichiers récents (Ctrl+R) et copie clipboard (y,Y) - Thème cyclable (
t), filtres (.md only, fichiers cachés, tri) et écran d'accueil ASCII
📦 Installation
Via go install (recommandé)
go install github.com/HrodWolfS/Notes-md/cmd/notesmd@latest
Le binaire notesmd est déposé dans $GOPATH/bin (souvent ~/go/bin). Ajoutez ce dossier au PATH si nécessaire :
# ---- NotesMD ----
export PATH="$(go env GOPATH)/bin:$PATH" # à placer dans ~/.zshrc ou ~/.bashrc
# Alias optionnel pour raccourcir la commande
alias nmd='notesmd'
Installation manuelle
# Cloner le dépôt
git clone https://github.com/HrodWolfS/Notes-md.git
cd Notes-md
# Compiler le binaire
go build -o nmd ./cmd/notesmd
# Installer dans /usr/local/bin (optionnel)
sudo mv nmd /usr/local/bin/
# Ou installer dans ~/bin
mkdir -p ~/bin
mv nmd ~/bin/
export PATH="$HOME/bin:$PATH" # Ajouter à ~/.bashrc ou ~/.zshrc
Avec Makefile (optionnel)
make build # construit nmd
sudo make install # installe dans /usr/local/bin/nmd
make install-user # installe dans ~/bin/nmd (sans sudo)
Vérifier l'installation
notesmd
# ou avec l'alias
nmd
🚀 Utilisation
Démarrage rapide
# Lancer dans le répertoire courant
notesmd
# ou avec l'alias : nmd
# Lancer dans un répertoire spécifique
notesmd ~/Documents/notes
# Lancer avec un dossier de notes
notesmd ~/obsidian-vault
Navigation
| Touche | Action |
|---|---|
↑ ↓ j k |
Naviguer dans la liste |
→ l Enter |
Entrer dans dossier / Ouvrir fichier |
← h |
Dossier parent |
gg |
Aller au début |
G |
Aller à la fin |
Ctrl+d / Ctrl+u |
Page suivante / précédente |
Ctrl+o / Ctrl+i |
Historique arrière / avant |
- |
Dossier parent |
~ |
Aller à HOME |
Gestion de fichiers
| Touche | Action |
|---|---|
n |
Nouvelle note |
N |
Nouveau dossier |
D |
Supprimer (avec confirmation) |
r |
Renommer |
E |
Éditeur inline rapide |
e |
Éditer dans $EDITOR |
c |
Copier |
p |
Coller |
L |
Voir liens wiki dans la note |
Recherche
| Touche | Action |
|---|---|
/ |
Recherche fuzzy dans les noms |
F |
Recherche dans la note ouverte |
Enter |
Ouvrir résultat / Appliquer recherche |
Esc |
Annuler recherche |
Organisation
| Touche | Action |
|---|---|
b |
Toggle bookmark |
B |
Voir tous les bookmarks |
Ctrl+R |
Fichiers récents |
y |
Copier chemin |
Y |
Copier contenu |
Filtres et affichage
| Touche | Action |
|---|---|
m |
Filtrer fichiers .md uniquement |
. |
Afficher/cacher fichiers cachés |
s |
Cycle mode tri (nom/date/taille) |
u / d |
Scroll preview haut/bas |
t |
Changer thème |
Aide et navigation
| Touche | Action |
|---|---|
? |
Afficher aide |
q |
Quitter |
⚙️ Configuration
La configuration est automatiquement créée dans ~/.config/notesmd/.
Structure des fichiers
~/.config/notesmd/
├── config.json # Configuration utilisateur
└── state.json # État de session (récents, bookmarks)
Exemple config.json
{
"editor": "nvim",
"theme": 0,
"default_dir": "~/Documents/notes",
"filters": {
"md_only": false,
"show_hidden": false
},
"search": {
"content_search_enabled": true
}
}
Variables d'environnement
EDITOR- Éditeur par défaut (défaut:nvim)
🛠️ Développement
Prérequis
- Go 1.21 ou supérieur
- Git
Cloner et compiler
git clone https://github.com/hrodwolf/notesmd.git
cd notesmd
go mod download
go build -o nmd ./cmd/notesmd
Lancer en mode développement
go run ./cmd/notesmd ~/notes
Structure du projet
notesmd/
├── cmd/notesmd/ # Code source principal
│ ├── main.go # Point d'entrée
│ ├── model.go # État de l'application
│ ├── update.go # Logique de mise à jour
│ ├── view_*.go # Rendus des vues
│ ├── modal.go # Composants modaux
│ ├── notes.go # Gestion des notes
│ ├── fs.go # Opérations fichiers
│ ├── search.go # Recherche de contenu
│ ├── config.go # Configuration
│ ├── clipboard.go # Intégration clipboard
│ ├── statusbar.go # Barre de statut
│ └── theme.go # Styles et couleurs
├── go.mod # Dépendances Go
├── README.md # Cette documentation
├── LICENSE # Licence MIT
└── CLAUDE.md # Guide pour Claude Code
🤝 Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche (
git checkout -b feature/amazing-feature) - Commit vos changements (
git commit -m 'Add amazing feature') - Push vers la branche (
git push origin feature/amazing-feature) - Ouvrir une Pull Request
🐛 Rapporter un bug
Utilisez les GitHub Issues pour rapporter des bugs ou suggérer des fonctionnalités.
📝 Roadmap
✅ Implémenté
- Navigation de base et prévisualisation
- Recherche fuzzy dans noms de fichiers
- Recherche in-note avec highlight
- Signets et fichiers récents
- Gestion de fichiers (créer/renommer/supprimer)
- Persistance de configuration
- Thèmes multiples
- Liens wiki
[[Note]]style Obsidian - Éditeur inline rapide (E) + externe (e)
🔮 Fonctionnalités futures
- Backlinks : voir quelles notes pointent vers la note actuelle
- Graph view : visualiser les connexions entre notes
- Tags avec auto-complétion :
#tagpour organiser les notes - Full-text search : recherche dans le contenu de toutes les notes
- Support Git (status, diff dans preview)
- Export (PDF, HTML)
- Templates de notes personnalisables
- Synchronisation cloud (optionnelle)
📜 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
🙏 Remerciements
Construit avec :
- Bubble Tea - Framework TUI
- Bubbles - Composants TUI
- Lipgloss - Styles terminal
- Glamour - Rendu Markdown
Inspiré par :
- Obsidian - Pour la structure et les liens wiki
[[Note]] - Apple Notes - Pour la simplicité et l'expérience utilisateur
- Ranger - Pour la navigation terminal efficace
👤 Auteur
hrodwolf
- GitHub: @hrodwolf
⭐ Si vous aimez ce projet, n'oubliez pas de lui donner une étoile sur GitHub !