plantuml-ascii

Par github · awesome-copilot

Génère des diagrammes ASCII avec le mode texte de PlantUML. À utiliser lorsque l'utilisateur demande des diagrammes ASCII, des diagrammes en texte brut, des diagrammes compatibles terminal, ou mentionne plantuml ascii, text diagram, ascii art diagram. Fonctionnalités prises en charge : conversion de diagrammes PlantUML en ASCII art, création de diagrammes de séquence, de classes et d'organigrammes au format ASCII, génération d'ASCII art enrichi en Unicode avec le flag `-utxt`.

npx skills add https://github.com/github/awesome-copilot --skill plantuml-ascii

Générateur de diagrammes ASCII Art PlantUML

Aperçu

Créez des diagrammes ASCII art basés sur du texte en utilisant PlantUML. Parfait pour la documentation dans les environnements terminal, les fichiers README, les emails, ou tout scénario où les diagrammes graphiques ne conviennent pas.

Qu'est-ce que PlantUML ASCII Art ?

PlantUML peut générer des diagrammes en texte brut (ASCII art) au lieu d'images. C'est utile pour :

  • Les workflows basés sur terminal
  • Les commits/PR Git sans support d'images
  • La documentation qui doit être versionnée
  • Les environnements où les outils graphiques ne sont pas disponibles

Installation

# macOS
brew install plantuml

# Linux (varie selon la distribution)
sudo apt-get install plantuml  # Ubuntu/Debian
sudo yum install plantuml      # RHEL/CentOS

# Ou télécharger le JAR directement
wget https://github.com/plantuml/plantuml/releases/download/v1.2024.0/plantuml-1.2024.0.jar

Formats de sortie

Flag Format Description
-txt ASCII Caractères ASCII purs
-utxt Unicode ASCII Amélioré avec caractères de boîte

Workflow de base

1. Créer un fichier de diagramme PlantUML

@startuml
participant Bob
actor Alice

Bob -> Alice : hello
Alice -> Bob : Is it ok?
@enduml

2. Générer ASCII Art

# Sortie ASCII standard
plantuml -txt diagram.puml

# Sortie améliorée en Unicode (meilleur rendu)
plantuml -utxt diagram.puml

# Utilisation du JAR directement
java -jar plantuml.jar -txt diagram.puml
java -jar plantuml.jar -utxt diagram.puml

3. Afficher la sortie

La sortie est sauvegardée en tant que diagram.atxt (ASCII) ou diagram.utxt (Unicode).

Types de diagrammes supportés

Diagramme de séquence

@startuml
actor User
participant "Web App" as App
database "Database" as DB

User -> App : Login Request
App -> DB : Validate Credentials
DB --> App : User Data
App --> User : Auth Token
@enduml

Diagramme de classe

@startuml
class User {
  +id: int
  +name: string
  +email: string
  +login(): bool
}

class Order {
  +id: int
  +total: float
  +items: List
  +calculateTotal(): float
}

User "1" -- "*" Order : places
@enduml

Diagramme d'activité

@startuml
start
:Initialize;
if (Is Valid?) then (yes)
  :Process Data;
  :Save Result;
else (no)
  :Log Error;
  stop
endif
:Complete;
stop
@enduml

Diagramme d'état

@startuml
[*] --> Idle
Idle --> Processing : start
Processing --> Success : complete
Processing --> Error : fail
Success --> [*]
Error --> Idle : retry
@enduml

Diagramme de composant

@startuml
[Client] as client
[API Gateway] as gateway
[Service A] as svcA
[Service B] as svcB
[Database] as db

client --> gateway
gateway --> svcA
gateway --> svcB
svcA --> db
svcB --> db
@enduml

Diagramme de cas d'usage

@startuml
actor "User" as user
actor "Admin" as admin

rectangle "System" {
  user -- (Login)
  user -- (View Profile)
  user -- (Update Settings)
  admin -- (Manage Users)
  admin -- (Configure System)
}
@enduml

Diagramme de déploiement

@startuml
actor "User" as user
node "Load Balancer" as lb
node "Web Server 1" as ws1
node "Web Server 2" as ws2
database "Primary DB" as db1
database "Replica DB" as db2

user --> lb
lb --> ws1
lb --> ws2
ws1 --> db1
ws2 --> db1
db1 --> db2 : replicate
@enduml

Options de ligne de commande

# Spécifier le répertoire de sortie
plantuml -txt -o ./output diagram.puml

# Traiter tous les fichiers du répertoire
plantuml -txt ./diagrams/

# Inclure les fichiers cachés
plantuml -txt -includeDot diagrams/

# Sortie verbose
plantuml -txt -v diagram.puml

# Spécifier le charset
plantuml -txt -charset UTF-8 diagram.puml

Intégration avec tâche Ant

<target name="generate-ascii">
  <plantuml dir="./src" format="txt" />
</target>

<target name="generate-unicode-ascii">
  <plantuml dir="./src" format="utxt" />
</target>

Conseils pour de meilleurs diagrammes ASCII

  1. Garder simple : Les diagrammes complexes ne s'affichent pas bien en ASCII
  2. Étiquettes courtes : Le texte long casse l'alignement ASCII
  3. Utiliser Unicode (-utxt) : Meilleure qualité visuelle avec caractères de boîte
  4. Tester avant de partager : Vérifier dans le terminal avec police à largeur fixe
  5. Considérer des alternatives : Pour les diagrammes complexes, utiliser Mermaid.js ou graphviz

Comparaison d'exemple de sortie

ASCII standard (-txt) :

     ,---.          ,---.
     |Bob|          |Alice|
     `---'          `---'
      |   hello      |
      |------------->|
      |              |
      |  Is it ok?   |
      |<-------------|
      |              |

Unicode ASCII (-utxt) :

┌─────┐        ┌─────┐
│ Bob │        │Alice│
└─────┘        └─────┘
  │   hello      │
  │─────────────>│
  │              │
  │  Is it ok?   │
  │<─────────────│
  │              │

Référence rapide

# Créer diagramme de séquence en ASCII
cat > seq.puml << 'EOF'
@startuml
Alice -> Bob: Request
Bob --> Alice: Response
@enduml
EOF

plantuml -txt seq.puml
cat seq.atxt

# Créer avec Unicode
plantuml -utxt seq.puml
cat seq.utxt

Dépannage

Problème : Caractères Unicode corrompus

  • Solution : S'assurer que le terminal supporte UTF-8 et dispose d'une police appropriée

Problème : Diagramme mal aligné

  • Solution : Utiliser une police à largeur fixe (Courier, Monaco, Consolas)

Problème : Commande non trouvée

  • Solution : Installer PlantUML ou utiliser le JAR Java directement

Problème : Fichier de sortie non créé

  • Solution : Vérifier les permissions de fichier, s'assurer que PlantUML a un accès en écriture

Skills similaires