Couleurs, styles et réutilisabilité - Spectre Console Series
Spectre Console est un puissant package NuGet for .NET qui permet aux développeurs de transformer de simples applications de console en expériences visuellement riches. En combinant les couleurs de la console Spectre, les décorations de texte et les styles réutilisables, vous pouvez transformer une sortie de console ordinaire en quelque chose d'informatif et d'élégant.
Dans sa vidéo "Colors and Styles and Reusability - Spectre Console Series", Tim Corey explique exactement comment procéder. Dans cet article, nous allons passer en revue les mêmes points que Tim, en indiquant les horodatages pour que vous puissiez suivre. C'est un excellent moyen de comprendre comment créer et personnaliser des couleurs, une classe de style et même un nouveau style pour une utilisation répétée.
Introduction au formatage de la console Spectre
À 0:00, Tim explique que Spectre Console "vous permet de transformer vos applications de console en applications visuellement attrayantes et informatives" Il note que cette série divise la bibliothèque en petits morceaux afin que les développeurs puissent se concentrer sur une fonctionnalité à la fois.
Il indique le lien vers le code source dans la description et invite les utilisateurs à s'abonner à sa chaîne. Cette leçon se concentre sur la manière de définir et de renvoyer du texte formaté dans la sortie de la console et sur la manière de rendre ces formats réutilisables dans l'ensemble de votre programme.
Utilisation de Inline Markup et MarkupLine
À 0:36, Tim commence par démontrer AnsiConsole.MarkupLine et AnsiConsole.Markup. Ces méthodes vous permettent d'intégrer des couleurs et des décorations directement dans la représentation de votre chaîne de caractères.
Comme l'explique Tim à 0:51, Markup n'insère pas automatiquement une nouvelle ligne, alors que MarkupLine le fait - "C'est un peu comme Console.Write par rapport à WriteLine" Cette différence est importante lorsque vous souhaitez afficher plusieurs éléments ou une liste sur des lignes distinctes.
Il tape [red]This is the inline markup[/] et l'exécute pour afficher une chaîne rouge. Puis, à 1:38, il montre les couleurs d'avant-plan et d'arrière-plan - "Rouge sur blanc" - afin que l'utilisateur puisse voir un texte rouge sur un arrière-plan blanc. À 2:05, il ajoute le gras comme décoration.
Tim note à 2:18 que le balisage en ligne est rapide et facile pour les petites actions, mais "ce n'est pas vraiment génial pour tout le reste" lorsque vous voulez un style plus structuré ou réutilisable à travers les fonctions.

Création d'une classe de style prédéfinie
À 2:32, Tim montre comment créer une nouvelle instance d'une classe de style pour la réutiliser. Il écrit :
var dangerStyle = new Style(
foreground: Color.Red,
background: Color.White,
decoration: Decoration.Bold);
var dangerStyle = new Style(
foreground: Color.Red,
background: Color.White,
decoration: Decoration.Bold);
Ici, Tim assigne une variable appelée dangerStyle qui contient un nouveau style avec un avant-plan rouge, un arrière-plan blanc et une décoration en gras. Il note également qu'à 3:26, il n'est pas nécessaire de remplir tous les arguments - vous pouvez choisir seulement l'avant-plan ou la décoration en fonction de ce dont vous avez besoin.
Cette approche basée sur les classes vous permet de mettre à jour votre style en un seul endroit et de l'appliquer de manière cohérente partout où vous rendez du texte, au lieu de répéter des balises.
Application de styles avec de nouvelles balises
À 3:48, Tim montre comment appliquer ce style. AnsiConsole.WriteLine n'acceptant pas directement les styles, vous devez utiliser AnsiConsole.Write avec un nouvel objet de balisage :
AnsiConsole.Write(
new Markup("Danger text from style", dangerStyle));
AnsiConsole.Write(
new Markup("Danger text from style", dangerStyle));
À 4:08, il explique que WriteLine ne prend que des chaînes ou des types simples, mais que Write a une surcharge qui accepte un objet IRenderable. C'est pourquoi vous transmettez votre style aux nouvelles balises, puis vous les écrivez.
Tim remarque à 4:45 que cette syntaxe représente "un peu plus de travail", mais c'est la manière officielle d'afficher du texte stylé. Il suggère même de créer votre propre méthode pour la simplifier si vous faites cela souvent.

Gestion des sauts de ligne et du placement du curseur
Après avoir exécuté le code, Tim fait remarquer à 5:44 que le curseur se trouve sur la même ligne que le texte stylé. En effet, Write n'ajoute pas de nouvelle ligne. À 6:07, il montre comment résoudre ce problème en ajoutant \Nà l'intérieur de la chaîne, ce qui déplace le curseur vers le bas.
Cette petite astuce permet de s'assurer que votre résultat correspond à vos attentes, ce qui est important lorsque vous créez des applications de console plus importantes où les entrées ou les données de l'utilisateur viennent après une invite stylisée.
Ajouter des décorations multiples
Tim montre ensuite comment combiner des décorations. À 6:27, il dit : "Et si vous voulez appliquer plus d'une décoration ? Par exemple, je veux aussi appliquer l'italique" Pour ce faire, vous devez séparer les décorations à l'aide d'un seul caractère pipe.
Il montre que vous pouvez choisir parmi une longue liste de décorations - gras, italique, barré, souligné, estompé, inversé, clignotant - et mentionne même la prise en charge de Windows PowerShell et de Windows Terminal à 7:05. Pour l'instant, le clignotement lent et le clignotement rapide sont identiques dans Windows Terminal.
À 7:29, il exécute à nouveau le code et montre que le style italique est appliqué en plus du gras. "Vous pouvez les mélanger et les assortir comme vous le souhaitez", explique Tim à 7:49, en créant des styles que vous pouvez appliquer à plusieurs reprises.
Il s'agit d'une fonctionnalité puissante lorsque vous souhaitez mettre en évidence les erreurs en rouge, les messages de réussite en vert, les avertissements en jaune ou les étiquettes personnalisées en bleu, violet, orchidée ou même marron - Spectre Console prend en charge l'ensemble des couleurs RVB.
Mélange de styles en ligne et prédéfinis
À 8:02, Tim montre comment combiner des écritures et des rédactions de styles différents. Vous pouvez appeler AnsiConsole.Write plusieurs fois - d'abord avec votre texte stylé, puis avec un texte non stylé ou stylé différemment - pour ne mettre en évidence qu'une partie d'une ligne. Il montre :
AnsiConsole.Write(new Markup("Danger text", dangerStyle));
AnsiConsole.WriteLine(" and more");
AnsiConsole.Write(new Markup("Danger text", dangerStyle));
AnsiConsole.WriteLine(" and more");
Comme l'explique Tim à 8:37, c'est la raison pour laquelle Write est utilisé plutôt que WriteLine : vous pouvez vouloir mettre en évidence une partie seulement de votre texte avant de revenir à un style normal.

Cette fonction vous offre un moyen souple de créer une sortie composite - par exemple un tableau de données, une barre de progression pour un travail de longue haleine ou un panneau à plusieurs colonnes - et d'appliquer des styles à certains éléments ou étiquettes seulement.
Enveloppe - Vos options
À 9:01, Tim résume les options :
-
Utilisez la mise en forme en ligne avec [color]text[/] et Markup ou MarkupLine pour une mise en forme rapide.
- Vous pouvez également créer un nouveau style avec new Style() et l'appliquer aux objets Markup lorsque vous appelez AnsiConsole.Write.
Tim encourage les téléspectateurs à "les essayer avec différentes couleurs, arrière-plans, décorations et tout le reste" à 9:26. Cela inclut la création de nouveaux tableaux avec des en-têtes stylisés, l'ajout d'une barre de progression qui se met à jour au fur et à mesure que vous traitez des fichiers ou des tableaux d'éléments, ou même la conversion de données JSON en un affichage stylisé.
Il termine à 9:33 en remerciant les téléspectateurs et en leur rappelant qu'il est Tim Corey. Cette série est basée sur la bibliothèque Spectre Console créée par Patrik Svensson avec la contribution de développeurs tels que Phil Scott, et les vidéos de Tim vous aideront à maîtriser rapidement ses fonctionnalités.
Conclusion
La vidéo de Tim Corey montre clairement comment Spectre Console prend des applications de console ordinaires et les rend visuellement attrayantes. Du balisage en ligne aux classes de style entièrement réutilisables, il explique pas à pas comment contrôler les couleurs d'avant-plan et d'arrière-plan, les décorations de texte et le placement du curseur.
Si vous suivez les exemples de Tim aux heures indiquées ci-dessus, vous serez en mesure d'ajouter des styles d'aspect professionnel à vos propres applications de console en un rien de temps, sans avoir à deviner la syntaxe. Une fois que vous savez comment assigner des variables, ajouter des décorations et rendre du texte stylisé, vous pouvez facilement étendre ces compétences pour créer des tableaux, des panneaux, des barres de progression et d'autres fonctionnalités offertes par la console Spectre.
Comme le dit Tim, "Essayez-les... et voyez ce que vous aimez"
