Le thème Obsidian Monokai Night propose un système de configuration avancée pour personnaliser l'expérience de codage, inspiré des fonctionnalités de VSCode.
| Fonctionnalité | Description | VSCode équivalent |
|---|---|---|
| 🔤 Ligatures de police | Support des polices avec ligatures (Fira Code, JetBrains Mono) | "editor.fontLigatures": true |
| 🌈 Colorisation des parenthèses | Couleurs différentes par niveau d'imbrication | "editor.bracketPairColorization.enabled": true |
| ✏️ Styles syntaxiques | Italique/gras automatique selon le contexte | "editor.tokenColorCustomizations" |
| 🖱️ Curseur animé | Animation personnalisable du curseur | "editor.cursorBlinking": "expand" |
| 📦 Blocs de code améliorés | Numéros de ligne, boutons de copie | Extensions VSCode |
| ⚙️ Configuration graphique | Interface web pour personnaliser les options | Settings UI VSCode |
-
Ouvrir la page de configuration :
Ouvrez demo/code-styling-demo.html dans votre navigateur -
Personnaliser les options :
- Choisissez un preset ou configurez manuellement
- Visualisez les changements en temps réel
- Générez votre CSS personnalisé
-
Appliquer dans Obsidian :
- Copiez le CSS généré
- Créez un nouveau CSS snippet dans Obsidian
- Activez le snippet dans les paramètres
# Générer les styles avec configuration par défaut
npm run generate-code-styling
# Configuration personnalisée
node scripts/generate-code-styling.js --preset enhanced
# Build intégré au thème principal
npm run build-with-code-stylingDes snippets pré-configurés sont disponibles dans /snippets/ :
snippets/
├── minimal-code-styling.css # Configuration minimaliste
├── enhanced-code-styling.css # Configuration complète
├── performance-code-styling.css # Optimisé performances
└── custom-code-config.css # Template personnalisable
.theme-dark {
/* Police principale */
--font-family-code: 'Fira Code iScript', 'JetBrains Mono', monospace;
/* Taille et espacement */
--font-size-code: 16px;
--line-height-code: 1.6;
--letter-spacing-code: 0.02em;
/* Ligatures */
--enable-ligatures: true;
}Polices recommandées :
- Fira Code iScript - Avec variante cursive pour certains éléments
- JetBrains Mono - Police moderne avec excellentes ligatures
- Cascadia Code - Police Microsoft avec support complet
- Source Code Pro - Classique et lisible
.theme-dark {
/* Couleurs par niveau */
--bracket-1: #ff6188; /* Rose - Niveau 1 */
--bracket-2: #ffd866; /* Jaune - Niveau 2 */
--bracket-3: #a9dc76; /* Vert - Niveau 3 */
--bracket-4: #78dce8; /* Cyan - Niveau 4 */
--bracket-5: #ab9df2; /* Violet - Niveau 5 */
--bracket-6: #fc9867; /* Orange - Niveau 6 */
/* Options visuelles */
--bracket-opacity: 0.8;
--bracket-hover-scale: 1.1;
}- Commentaires (
// Commentaire) - Mots-clés de contrôle (
import,export,from) - Types et modificateurs (
class,static) - Chaînes de caractères (
"string",'string',`template`) - Noms de méthodes et tags
- Constantes built-in
- Noms de classes (
class MyClass) - Constructeurs
- Mots-clés importants
- Titres Markdown (
# Titre,## Sous-titre) - Headers de sections
- Opérateurs (
+,-,===,&&) - Nombres (
123,45.67) - Noms de fonctions
.theme-dark {
--cursor-color: #fcfcfa;
--cursor-width: 2px;
--cursor-animation: expand; /* expand | blink | smooth */
--cursor-duration: 1s;
}Types d'animation :
expand- Le curseur s'élargit et rétrécitblink- Clignotement classique on/offsmooth- Fondu en transparence
.theme-dark {
/* Apparence générale */
--code-block-background: var(--background-secondary);
--code-block-border: 1px solid var(--border-color);
--code-block-border-radius: 8px;
--code-block-padding: 16px;
/* Fonctionnalités */
--enable-line-numbers: false;
--enable-copy-button: true;
--enable-line-highlighting: true;
}/* Configuration minimaliste - Performance optimale */
.theme-dark {
--enable-ligatures: false;
--enable-bracket-colors: false;
--enable-italic-syntax: false;
--enable-cursor-animation: false;
--enable-line-numbers: false;
--enable-copy-button: false;
}Idéal pour : Machines moins puissantes, utilisation basique
/* Toutes les fonctionnalités activées */
.theme-dark {
--enable-ligatures: true;
--enable-bracket-colors: true;
--enable-italic-syntax: true;
--enable-cursor-animation: true;
--enable-line-numbers: false;
--enable-copy-button: true;
}Idéal pour : Développement intensif, expérience complète
/* Fonctionnalités importantes sans impact performance */
.theme-dark {
--enable-ligatures: true;
--enable-bracket-colors: false;
--enable-italic-syntax: true;
--enable-cursor-animation: false;
--enable-line-numbers: false;
--enable-copy-button: true;
}Idéal pour : Usage quotidien, bon compromis
-
Copiez le template :
/* Mon preset personnalisé */ .theme-dark.my-preset { --font-family-code: 'Ma Police Préférée'; --bracket-1: #custom-color-1; --bracket-2: #custom-color-2; /* ... autres personnalisations */ }
-
Activez conditionnellement :
/* Activation via attribut data */ .theme-dark[data-code-preset="my-preset"] { /* Vos styles personnalisés */ }
-
Script d'activation :
// Ajoutez ceci dans un script Obsidian document.body.setAttribute('data-code-preset', 'my-preset');
.theme-dark.ocean-scheme {
--bracket-1: #4FC3F7; /* Bleu clair */
--bracket-2: #29B6F6; /* Bleu */
--bracket-3: #039BE5; /* Bleu foncé */
--bracket-4: #0288D1; /* Bleu marine */
--bracket-5: #0277BD; /* Bleu profond */
--bracket-6: #01579B; /* Bleu nuit */
}.theme-dark.forest-scheme {
--bracket-1: #8BC34A; /* Vert clair */
--bracket-2: #689F38; /* Vert */
--bracket-3: #558B2F; /* Vert foncé */
--bracket-4: #33691E; /* Vert sombre */
--bracket-5: #1B5E20; /* Vert forêt */
--bracket-6: #0D4F0C; /* Vert profond */
}.theme-dark.sunset-scheme {
--bracket-1: #FF7043; /* Orange */
--bracket-2: #FF5722; /* Rouge-orange */
--bracket-3: #E64A19; /* Rouge */
--bracket-4: #D84315; /* Rouge foncé */
--bracket-5: #BF360C; /* Rouge brique */
--bracket-6: #8D2F0C; /* Marron */
}/* Styles spécifiques par langage */
/* JavaScript/TypeScript */
.language-javascript, .language-typescript {
--code-keyword-color: #ff6188;
--code-function-color: #a9dc76;
--code-string-color: #ffd866;
}
/* Python */
.language-python {
--code-decorator-color: #ab9df2;
--code-f-string-color: #78dce8;
}
/* CSS */
.language-css {
--code-property-color: #78dce8;
--code-value-color: #ffd866;
--code-selector-color: #ff6188;
}
/* Markdown */
.language-markdown {
--code-header-color: #ff6188;
--code-emphasis-color: #ffd866;
--code-link-color: #78dce8;
}/* Optimisations mobile */
@media (max-width: 768px) {
.theme-dark {
--font-size-code: 14px;
--line-height-code: 1.5;
--code-block-padding: 12px;
/* Désactiver certaines animations sur mobile */
--enable-cursor-animation: false;
--bracket-hover-scale: 1;
}
/* Ajuster les boutons de copie */
.code-sample::after {
font-size: 18px;
padding: 6px 10px;
}
}/* Interactions tactiles */
@media (hover: none) and (pointer: coarse) {
.code-sample::after {
opacity: 1; /* Toujours visible sur tactile */
}
.cm-bracket:hover {
transform: none; /* Pas d'effet hover sur tactile */
}
}/* Styles pour les requêtes Dataview */
.block-language-dataview {
--code-query-color: #ab9df2;
--code-field-color: #78dce8;
}/* Styles pour les templates */
.template-code {
--code-template-var: #ffd866;
--code-template-func: #a9dc76;
}Le système maintient la compatibilité avec vos paramètres VSCode :
// settings.json VSCode → CSS Obsidian
{
"editor.fontFamily": "Fira Code iScript"
→ --font-family-code: 'Fira Code iScript';
"editor.fontLigatures": true
→ --enable-ligatures: true;
"editor.bracketPairColorization.enabled": true
→ --enable-bracket-colors: true;
}# Synchroniser les styles avec la dernière version
npm run sync-code-styles
# Vérifier les mises à jour
npm run check-code-updates
# Régénérer avec nouvelles options
npm run build-code-styling| Problème | Cause | Solution |
|---|---|---|
| Ligatures ne s'affichent pas | Police non installée | Installer Fira Code ou JetBrains Mono |
| Parenthèses pas colorées | Plugin CSS conflictuel | Désactiver autres thèmes temporairement |
| Performance dégradée | Trop d'animations | Utiliser preset "Performance" |
| Curseur invisible | Conflit de couleur | Ajuster --cursor-color |
-
Vérifier les variables CSS :
// Console navigateur const styles = getComputedStyle(document.documentElement); console.log(styles.getPropertyValue('--font-family-code'));
-
Test des fonctionnalités :
/* CSS de test temporaire */ .debug-code-styling * { border: 1px solid red !important; }
-
Reset complet :
/* Retour aux defaults */ .theme-dark { --font-family-code: initial; --enable-ligatures: false; --enable-bracket-colors: false; }
- Fira Code - Police avec ligatures
- JetBrains Mono - Police JetBrains
- Cascadia Code - Police Microsoft
- Page de demo - Interface de configuration
- Générateur CSS - Script automatisé
- Validateur - Vérification des styles
- v2.0 : Plugin Obsidian natif avec interface graphique
- v2.1 : Support des thèmes adaptatifs (jour/nuit)
- v2.2 : Synchronisation bidirectionnelle avec VSCode
- v2.3 : Profils utilisateur et partage de configurations
- v3.0 : IA pour suggestions de style personnalisées
- Nouveaux presets de couleurs
- Support de langages additionnels
- Optimisations performance
- Tests automatisés
- Documentation multilingue
Vos contributions sont les bienvenues ! Consultez le guide de développement pour plus d'informations.
Issues GitHub : Signaler un problème
Discussions : Partager vos idées
Créé avec ❤️ pour la communauté Obsidian