137 lines
4.3 KiB
Markdown
137 lines
4.3 KiB
Markdown
# ⌨️ Raccourcis Clavier - Project Notes
|
|
|
|
Cette documentation liste tous les raccourcis clavier disponibles dans l'application Project Notes.
|
|
|
|
## 📋 Liste des Raccourcis
|
|
|
|
### Navigation
|
|
|
|
| Raccourci | Action | Description |
|
|
|-----------|--------|-------------|
|
|
| `Ctrl/Cmd + H` | Accueil | Retourner à la page d'accueil |
|
|
| `Ctrl/Cmd + D` | Note du jour | Ouvrir la note quotidienne (Daily Note) |
|
|
| `Ctrl/Cmd + B` | Sidebar | Afficher ou masquer la barre latérale |
|
|
|
|
### Création
|
|
|
|
| Raccourci | Action | Description |
|
|
|-----------|--------|-------------|
|
|
| `Ctrl/Cmd + N` | Nouvelle note | Ouvrir la modale de création de note |
|
|
| `Ctrl/Cmd + Shift + F` | Nouveau dossier | Ouvrir la modale de création de dossier |
|
|
|
|
### Édition
|
|
|
|
| Raccourci | Action | Description |
|
|
|-----------|--------|-------------|
|
|
| `Ctrl/Cmd + S` | Sauvegarder | Enregistrer la note actuelle |
|
|
| `Ctrl/Cmd + P` | Prévisualisation | Basculer entre l'éditeur seul et éditeur+preview |
|
|
|
|
### Recherche
|
|
|
|
| Raccourci | Action | Description |
|
|
|-----------|--------|-------------|
|
|
| `Ctrl/Cmd + K` | Recherche | Focus sur le champ de recherche global |
|
|
|
|
### Paramètres
|
|
|
|
| Raccourci | Action | Description |
|
|
|-----------|--------|-------------|
|
|
| `Ctrl/Cmd + ,` | Paramètres | Ouvrir les paramètres (thèmes, polices) |
|
|
|
|
### Général
|
|
|
|
| Raccourci | Action | Description |
|
|
|-----------|--------|-------------|
|
|
| `Escape` | Fermer | Fermer les modales et dialogues ouverts |
|
|
|
|
## 🖥️ Notes Spécifiques par Plateforme
|
|
|
|
- **Windows/Linux** : Utilisez la touche `Ctrl`
|
|
- **macOS** : Utilisez la touche `Cmd` (⌘)
|
|
|
|
## 🎯 Contexte des Raccourcis
|
|
|
|
### Raccourcis Globaux
|
|
Ces raccourcis fonctionnent partout dans l'application :
|
|
- `Ctrl/Cmd + K` (Recherche)
|
|
- `Ctrl/Cmd + D` (Note du jour)
|
|
- `Ctrl/Cmd + N` (Nouvelle note)
|
|
- `Ctrl/Cmd + H` (Accueil)
|
|
- `Ctrl/Cmd + B` (Sidebar)
|
|
- `Ctrl/Cmd + ,` (Paramètres)
|
|
- `Escape` (Fermer modales)
|
|
|
|
### Raccourcis Contextuels
|
|
Ces raccourcis fonctionnent uniquement dans certains contextes :
|
|
- `Ctrl/Cmd + S` : Fonctionne uniquement quand une note est ouverte
|
|
- `Ctrl/Cmd + /` : Fonctionne uniquement dans l'éditeur
|
|
|
|
## 🔧 Implémentation Technique
|
|
|
|
Les raccourcis clavier sont gérés par le module `keyboard-shortcuts.js` qui :
|
|
1. Écoute tous les événements `keydown` au niveau document
|
|
2. Détecte les combinaisons de touches (Ctrl/Cmd, Shift, etc.)
|
|
3. Ignore les raccourcis quand l'utilisateur tape dans un champ de saisie (sauf exceptions)
|
|
4. Exécute l'action correspondante
|
|
|
|
## 📝 Ajouter un Nouveau Raccourci
|
|
|
|
Pour ajouter un nouveau raccourci, modifiez le fichier `frontend/src/keyboard-shortcuts.js` :
|
|
|
|
```javascript
|
|
this.shortcuts = [
|
|
// ... raccourcis existants
|
|
{
|
|
key: 'nouvelle-touche',
|
|
ctrl: true,
|
|
shift: false, // optionnel
|
|
description: 'Description du raccourci',
|
|
action: () => this.maFonction()
|
|
}
|
|
];
|
|
```
|
|
|
|
Puis ajoutez la méthode correspondante dans la classe :
|
|
|
|
```javascript
|
|
maFonction() {
|
|
// Votre code ici
|
|
console.log('Raccourci exécuté');
|
|
}
|
|
```
|
|
|
|
## 🎨 Affichage dans l'Interface
|
|
|
|
Les raccourcis sont affichés :
|
|
- Dans les **tooltips** des boutons (attribut `title`)
|
|
- Sur la **page d'accueil** dans la section "⌨️ Raccourcis clavier"
|
|
- Dans cette **documentation**
|
|
|
|
## ⚡ Performances
|
|
|
|
Le gestionnaire de raccourcis est optimisé pour :
|
|
- Écouter un seul événement au niveau document
|
|
- Utiliser une recherche linéaire rapide (< 1ms)
|
|
- Ne pas interférer avec les champs de saisie
|
|
- Supporter les raccourcis multi-plateformes
|
|
|
|
## 🐛 Dépannage
|
|
|
|
### Le raccourci ne fonctionne pas
|
|
1. Vérifiez que vous n'êtes pas dans un champ de saisie (input/textarea)
|
|
2. Vérifiez la console du navigateur pour les messages d'erreur
|
|
3. Vérifiez que la fonction cible existe et est accessible
|
|
|
|
### Conflit avec les raccourcis du navigateur
|
|
Certains raccourcis peuvent entrer en conflit avec le navigateur :
|
|
- `Ctrl/Cmd + W` : Fermer l'onglet (réservé au navigateur)
|
|
- `Ctrl/Cmd + T` : Nouvel onglet (réservé au navigateur)
|
|
- `Ctrl/Cmd + R` : Recharger (réservé au navigateur)
|
|
|
|
Évitez d'utiliser ces combinaisons pour l'application.
|
|
|
|
## 📚 Références
|
|
|
|
- [MDN - KeyboardEvent](https://developer.mozilla.org/fr/docs/Web/API/KeyboardEvent)
|
|
- [Web Platform Keyboard Shortcuts](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/)
|