ObsiViewer/CODE_BLOCK_FEATURES.md
Bruno Charest 914515efe4 ```
docs: restructure README with concise overview and improved organization

- Condensed README from 715 to 113 lines with streamlined feature descriptions
- Replaced verbose documentation with quick-start focused content
- Reorganized sections: removed detailed architecture, API endpoints, and Meilisearch implementation details
- Added version badges and simplified feature categories (Navigation, Markdown, Graph)
- Streamlined installation instructions with Docker-first approach and simplified local
2025-11-19 15:56:56 -05:00

144 lines
4.8 KiB
Markdown

# ✅ Bloc de Code Nimbus - Améliorations Terminées
## 🎯 Fonctionnalités Implémentées
### 1. **Mode Preview / Collapse** ✓
- **En mode replié** : Le bloc affiche une forme de "pill" compacte (comme le bloc File)
- Icône de code
- Nom du langage détecté
- Nombre de lignes
- Bouton "Preview"
- **Clic sur le bloc replié** : Expansion pour voir le code complet
### 2. **Détection Automatique du Langage** ✓
- Utilise `highlight.js` pour détecter automatiquement le langage
- Se déclenche lors de la saisie de code (si aucun langage n'est sélectionné)
- Mise à jour automatique de l'affichage du langage
### 3. **Menu de Sélection de Langage** ✓
- Badge cliquable affichant le langage actuel
- Menu déroulant avec liste complète des langages supportés
- Langages disponibles : JavaScript, TypeScript, Python, Java, C#, C++, Go, Rust, PHP, Ruby, Swift, Kotlin, Scala, HTML, CSS, SCSS, JSON, XML, YAML, Markdown, SQL, Bash, Shell, PowerShell, Dockerfile, GraphQL, Plain Text
### 4. **Menu de Sélection de Thèmes** ✓
- Accessible via le menu principal (bouton ⋮)
- Sous-menu avec 11 thèmes préconçus :
- Darcula
- Default
- MBO
- MDN
- Monokai
- Neat
- NEO
- Nord
- Yeti
- Yonce
- Zenburn
### 5. **Menu de Sélection de Fonts** ✓
- Accessible via le menu principal (bouton ⋮)
- Sous-menu avec 6 polices couramment utilisées pour le code :
- Default Mono (système)
- **Fira Code** (avec ligatures)
- **JetBrains Mono**
- **Consolas**
- **Source Code Pro**
- **Ubuntu Mono**
- Import Google Fonts pour toutes les polices web
### 6. **Bouton "Copier dans le Presse-papiers"** ✓
- Icône de copie dans la barre d'outils
- Animation de confirmation (✓) après copie
- Également disponible dans le menu principal
### 7. **Toggle Numéros de Ligne** ✓
- Bouton (#) dans la barre d'outils
- Affichage/masquage des numéros de ligne
- Colonne dédiée avec fond semi-transparent
- Également dans le menu principal
### 8. **Légende au Bas du Bloc** ✓
- **Gauche** :
- Indicateur coloré (point) + Nom du langage
- Nombre de caractères
- Nombre de lignes
- **Droite** :
- Nom de la police actuelle (visible au survol)
### 9. **Menu Principal Amélioré** ✓
- Bouton ⋮ (trois points verticaux)
- **Structure du menu** :
- Theme → (sous-menu)
- Font → (sous-menu)
- ---
- Copy code
- Show/Hide line numbers
- Enable/Disable wrap
- ---
- Collapse block
### 10. **Fonctionnalités Supplémentaires** ✓
- **Word wrap** : Toggle pour activer/désactiver le retour à la ligne
- **Interface responsive** : Menus repositionnés intelligemment
- **Scrollbar personnalisé** : Design moderne et discret
- **Icônes SVG** : Utilisation d'icônes SVG pour une meilleure qualité
- **Fermeture automatique** : Les menus se ferment en cliquant à l'extérieur
- **Animations fluides** : Transitions douces pour toutes les interactions
- **Hover effects** : Feedback visuel sur tous les éléments interactifs
## 🎨 Améliorations Visuelles
### Header
- Fond semi-transparent avec effet de profondeur
- Badge de langage stylisé avec couleur primaire
- Actions rapides (copie, numéros de ligne) facilement accessibles
- Séparateurs visuels pour organiser l'interface
### Body
- Padding confortable pour la lisibilité
- Scrollbar personnalisé discret
- Support du mode sombre et clair
- Colonne de numéros de ligne avec bordure subtile
### Footer
- Informations contextuelles toujours visibles
- Design minimaliste qui ne distrait pas
- Nom de police visible au survol
### Collapsed State
- Design de "pill" élégant et compact
- Icône de code reconnaissable
- Informations essentielles visibles
- Hover effect pour indiquer l'interactivité
## 🔧 Architecture Technique
### Composant Principal
- `code-block.component.ts` : Logique complète réécrite
- Utilisation de Signals Angular pour la réactivité
- HostListener pour fermer les menus au clic extérieur
- Gestion d'état local pour les menus et sous-menus
### Styles
- `code-themes.css` : 11 thèmes de couleur avec support dark/light
- Import Google Fonts pour les polices web
- Classes CSS pour chaque police
- Scrollbar personnalisé
### Services
- `CodeThemeService` : Gestion centralisée des thèmes et langages
- 28 langages supportés avec noms d'affichage
### Modèle de Données
- `CodeProps` : Interface complète avec tous les champs nécessaires
- `lang`, `code`, `theme`, `showLineNumbers`, `enableWrap`, `collapsed`
## ✅ Build Réussi
Le projet compile sans erreurs avec `npm run build`.
## 📝 Notes
- Toutes les fonctionnalités demandées ont été implémentées
- Le design est professionnel et moderne
- La performance est optimisée (détection de langage avec debouncing implicite)
- Compatibilité totale avec l'architecture existante du projet Nimbus