Exemples de blocs de code Firefly
Ici, nous explorons comment utiliser Expressive Code pour présenter des blocs de code. Les exemples fournis sont basés sur la documentation officielle, que vous pouvez consulter pour plus de détails.
Code expressif
Coloration syntaxique
Coloration syntaxique standard
console.log('Ce code a la coloration syntaxique !')Rendu des séquences d’échappement ANSI
[1;4mStandard ANSI colors:[0m- Dimmed: [2;30m Black [2;31m Red [2;32m Green [2;33m Yellow [2;34m Blue [2;35m Magenta [2;36m Cyan [2;37m White [0m- Foreground: [30m Black [31m Red [32m Green [33m Yellow [34m Blue [35m Magenta [36m Cyan [37m White [0m- Background: [40m Black [41m Red [42m Green [43m Yellow [44m Blue [45m Magenta [46m Cyan [47m White [0m- Reversed: [7;30m Black [7;31m Red [7;32m Green [7;33m Yellow [7;34m Blue [7;35m Magenta [7;36m Cyan [7;37m White [0m
[1;4m8-bit colors (showing colors 160-171 as an example):[0m- Dimmed: [2;38;5;160m 160 [2;38;5;161m 161 [2;38;5;162m 162 [2;38;5;163m 163 [2;38;5;164m 164 [2;38;5;165m 165 [2;38;5;166m 166 [2;38;5;167m 167 [2;38;5;168m 168 [2;38;5;169m 169 [2;38;5;170m 170 [2;38;5;171m 171 [0m- Foreground: [38;5;160m 160 [38;5;161m 161 [38;5;162m 162 [38;5;163m 163 [38;5;164m 164 [38;5;165m 165 [38;5;166m 166 [38;5;167m 167 [38;5;168m 168 [38;5;169m 169 [38;5;170m 170 [38;5;171m 171 [0m- Background: [48;5;160m 160 [48;5;161m 161 [48;5;162m 162 [48;5;163m 163 [48;5;164m 164 [48;5;165m 165 [48;5;166m 166 [48;5;167m 167 [48;5;168m 168 [48;5;169m 169 [48;5;170m 170 [48;5;171m 171 [0m- Reversed: [7;38;5;160m 160 [7;38;5;161m 161 [7;38;5;162m 162 [7;38;5;163m 163 [7;38;5;164m 164 [7;38;5;165m 165 [7;38;5;166m 166 [7;38;5;167m 167 [7;38;5;168m 168 [7;38;5;169m 169 [7;38;5;170m 170 [7;38;5;171m 171 [0m
[1;4m24-bit colors (full RGB):[0m- Dimmed: [2;38;2;34;139;34m ForestGreen - RGB(34,139,34) [2;38;2;102;51;153m RebeccaPurple - RGB(102,51,153) [0m- Foreground: [38;2;34;139;34m ForestGreen - RGB(34,139,34) [38;2;102;51;153m RebeccaPurple - RGB(102,51,153) [0m- Background: [48;2;34;139;34m ForestGreen - RGB(34,139,34) [48;2;102;51;153m RebeccaPurple - RGB(102,51,153) [0m- Reversed: [7;38;2;34;139;34m ForestGreen - RGB(34,139,34) [7;38;2;102;51;153m RebeccaPurple - RGB(102,51,153) [0m
[1;4mFont styles:[0m- Default- [1mBold[0m- [2mDimmed[0m- [3mItalic[0m- [4mUnderline[0m- [7mReversed[0m- [9mStrikethrough[0mCadres éditeur et terminal
Cadre éditeur de code
console.log('Exemple d\'attribut de titre')<div>Exemple de commentaire de nom de fichier</div>Cadre terminal
echo "Ce cadre terminal n'a pas de titre"Write-Output "Celui-ci a un titre !"Redéfinir le type de cadre
echo "Regardez, pas de cadre !"# Sans redéfinition, ce serait un cadre terminalfunction Watch-Tail { Get-Content -Tail 20 -Wait $args }New-Alias tail Watch-TailMarqueurs de texte et de ligne
Marqueurs de texte et de ligne
Marquer des lignes entières et des plages de lignes
// Ligne 1 - ciblée par numéro de ligne// Ligne 2// Ligne 3// Ligne 4 - ciblée par numéro de ligne// Ligne 5// Ligne 6// Ligne 7 - ciblée par la plage "7-8"// Ligne 8 - ciblée par la plage "7-8"Choisir le type de marqueur de ligne (mark, ins, del)
function demo() { console.log('Cette ligne est marquée comme supprimée') // Cette ligne et la suivante sont marquées comme insérées console.log('Deuxième ligne insérée')
return 'Cette ligne utilise le marqueur neutre par défaut'}Ajouter des étiquettes aux marqueurs de ligne
<button role="button" {...props} value={value} className={buttonClassName} disabled={disabled} active={active}> {children && !active && (typeof children === 'string' ? <span>{children}</span> : children)}</button>Ajouter des étiquettes longues sur des lignes séparées
<button role="button" {...props}
value={value} className={buttonClassName}
disabled={disabled} active={active}>
{children && !active && (typeof children === 'string' ? <span>{children}</span> : children)}</button>Utiliser une syntaxe de type diff
Cette ligne sera marquée comme inséréeCette ligne sera marquée comme suppriméeCeci est une ligne normale--- a/README.md+++ b/README.md@@ -1,3 +1,4 @@+this is an actual diff file-all contents will remain unmodified no whitespace will be removed eitherCombiner coloration syntaxique et syntaxe diff
function thisIsJavaScript() { // Tout le bloc sera mis en évidence en JavaScript, // et nous pouvons toujours y ajouter des marqueurs diff ! console.log('Ancien code à supprimer') console.log('Nouveau code brillant !')}Marquer du texte spécifique dans une ligne
function demo() { // Marquer n'importe quel texte donné dans la ligne return 'Supporte plusieurs correspondances du texte donné';}Expressions régulières
console.log('Les mots yes et yep seront marqués.')Échapper les barres obliques
echo "Test" > /home/test.txtChoisir le type de marqueur en ligne (mark, ins, del)
function demo() { console.log('Voici les types de marqueurs ins et del'); // L'instruction return utilise le marqueur par défaut return true;}Retour à la ligne automatique
Configurer le retour à la ligne par bloc
// Exemple avec retour à la ligne activéfunction getLongString() { return 'Ceci est une très longue chaîne de caractères qui ne tiendra probablement pas dans l\'espace disponible à moins que le conteneur ne soit très large'}// Exemple avec wrap=falsefunction getLongString() { return 'Ceci est une très longue chaîne de caractères qui ne tiendra probablement pas dans l\'espace disponible à moins que le conteneur ne soit très large'}Configurer l’indentation du retour à la ligne
// Exemple preserveIndent (activé par défaut)function getLongString() { return 'Ceci est une très longue chaîne de caractères qui ne tiendra probablement pas dans l\'espace disponible à moins que le conteneur ne soit très large'}// Exemple preserveIndent=falsefunction getLongString() { return 'Ceci est une très longue chaîne de caractères qui ne tiendra probablement pas dans l\'espace disponible à moins que le conteneur ne soit très large'}Sections repliables
5 lignes masquées
// Tout ce code de configuration sera repliéimport { someBoilerplateEngine } from '@example/some-boilerplate'import { evenMoreBoilerplate } from '@example/even-more-boilerplate'
const engine = someBoilerplateEngine(evenMoreBoilerplate())
// Cette partie du code est visible par défautengine.doSomething(1, 2, 3, calcFn)
function calcFn() { // Vous pouvez avoir plusieurs sections repliées3 lignes masquées
const a = 1 const b = 2 const c = a + b
// Ceci restera visible console.log(`Résultat : ${a} + ${b} = ${c}`) return c}
4 lignes masquées
// Tout le code jusqu'à la fin du bloc sera à nouveau repliéengine.closeConnection()engine.freeMemory()engine.shutdown({ reason: 'Fin du code de démonstration' })Numéros de ligne
Afficher les numéros de ligne par bloc
// Ce bloc de code affichera les numéros de ligneconsole.log('Bonjour depuis la ligne 2 !')console.log('Je suis à la ligne 3')// Ce bloc désactive les numéros de ligneconsole.log('Bonjour ?')console.log('Désolé, savez-vous à quelle ligne je suis ?')Modifier le numéro de ligne de départ
console.log('Bonjour depuis la ligne 5 !')console.log('Je suis à la ligne 6')Soutenir & Partager
Si cet article vous a aidé, partagez-le ou soutenez-moi !