plantuml-ascii

安装量: 7.4K
排名: #358

安装

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

PlantUML ASCII Art Diagram Generator Overview

Create text-based ASCII art diagrams using PlantUML. Perfect for documentation in terminal environments, README files, emails, or any scenario where graphical diagrams aren't suitable.

What is PlantUML ASCII Art?

PlantUML can generate diagrams as plain text (ASCII art) instead of images. This is useful for:

Terminal-based workflows Git commits/PRs without image support Documentation that needs to be version-controlled Environments where graphical tools aren't available Installation

macOS

brew install plantuml

Linux (varies by distro)

sudo apt-get install plantuml # Ubuntu/Debian sudo yum install plantuml # RHEL/CentOS

Or download JAR directly

wget https://github.com/plantuml/plantuml/releases/download/v1.2024.0/plantuml-1.2024.0.jar

Output Formats Flag Format Description -txt ASCII Pure ASCII characters -utxt Unicode ASCII Enhanced with box-drawing characters Basic Workflow 1. Create PlantUML Diagram File @startuml participant Bob actor Alice

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

  1. Generate ASCII Art

Standard ASCII output

plantuml -txt diagram.puml

Unicode-enhanced output (better looking)

plantuml -utxt diagram.puml

Using JAR directly

java -jar plantuml.jar -txt diagram.puml java -jar plantuml.jar -utxt diagram.puml

  1. View Output

Output is saved as diagram.atxt (ASCII) or diagram.utxt (Unicode).

Diagram Types Supported Sequence Diagram @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

Class Diagram @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

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

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

Component Diagram @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

Use Case Diagram @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

Deployment Diagram @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

Command-Line Options

Specify output directory

plantuml -txt -o ./output diagram.puml

Process all files in directory

plantuml -txt ./diagrams/

Include dot files (hidden files)

plantuml -txt -includeDot diagrams/

Verbose output

plantuml -txt -v diagram.puml

Specify charset

plantuml -txt -charset UTF-8 diagram.puml

Ant Task Integration

Tips for Better ASCII Diagrams Keep it simple: Complex diagrams don't render well in ASCII Short labels: Long text breaks ASCII alignment Use Unicode (-utxt): Better visual quality with box-drawing chars Test before sharing: Verify in terminal with fixed-width font Consider alternatives: For complex diagrams, use Mermaid.js or graphviz Example Output Comparison

Standard ASCII (-txt):

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

Unicode ASCII (-utxt):

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

Quick Reference

Create sequence diagram in ASCII

cat > seq.puml << 'EOF' @startuml Alice -> Bob: Request Bob --> Alice: Response @enduml EOF

plantuml -txt seq.puml cat seq.atxt

Create with Unicode

plantuml -utxt seq.puml cat seq.utxt

Troubleshooting

Problem: Garbled Unicode characters

Solution: Ensure terminal supports UTF-8 and has proper font

Problem: Diagram looks misaligned

Solution: Use fixed-width font (Courier, Monaco, Consolas)

Problem: Command not found

Solution: Install PlantUML or use Java JAR directly

Problem: Output file not created

Solution: Check file permissions, ensure PlantUML has write access

返回排行榜