plantuml-syntax

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

PlantUML Syntax Reference

PlantUML语法参考

Overview

概述

PlantUML is a Java-based tool that creates diagrams from text descriptions. It supports comprehensive UML diagrams and many non-UML diagram types.
Key advantages:
  • Most comprehensive diagram support (15+ types)
  • Mature C4 model integration with icons/sprites
  • Extensive customization options
  • Battle-tested (since 2009)
Requirements:
  • Java Runtime Environment (JRE)
  • GraphViz (for some diagram types)
  • Or use Docker:
    docker run -p 8080:8080 plantuml/plantuml-server

PlantUML是一款基于Java的工具,可通过文本描述生成图表。它支持全面的UML图表以及多种非UML图表类型。
核心优势:
  • 支持最全面的图表类型(15+种)
  • 成熟的C4模型集成,包含图标/精灵图
  • 丰富的自定义选项
  • 久经考验(自2009年起)
运行要求:
  • Java运行环境(JRE)
  • GraphViz(部分图表类型需要)
  • 或使用Docker:
    docker run -p 8080:8080 plantuml/plantuml-server

Diagram Types Quick Reference

图表类型速查

UML Diagrams

UML图表

TypeKeywordsBest For
Sequence
@startuml
Interactions, API flows, protocols
Use Case
@startuml
Requirements, user stories
Class
@startuml
OOP design, domain models
Activity
@startuml
Workflows, processes
Component
@startuml
System structure
Deployment
@startuml
Infrastructure, deployment
State
@startuml
State machines
类型关键字适用场景
时序图
@startuml
交互流程、API流程、协议
用例图
@startuml
需求、用户故事
类图
@startuml
面向对象设计、领域模型
活动图
@startuml
工作流、流程
组件图
@startuml
系统结构
部署图
@startuml
基础设施、部署
状态图
@startuml
状态机

Non-UML Diagrams

非UML图表

TypeKeywordsBest For
JSON
@startjson
JSON structure visualization
YAML
@startyaml
YAML structure visualization
Wireframe
@startsalt
UI mockups
Gantt
@startgantt
Project timelines
MindMap
@startmindmap
Hierarchical ideas
WBS
@startwbs
Work breakdown
ER
@startuml
Database schemas
C4
@startuml
with C4 include
Software architecture

类型关键字适用场景
JSON图
@startjson
JSON结构可视化
YAML图
@startyaml
YAML结构可视化
线框图
@startsalt
UI原型
甘特图
@startgantt
项目时间线
思维导图
@startmindmap
层级化想法
WBS图
@startwbs
工作分解结构
ER图
@startuml
数据库 schema
C4图包含C4的
@startuml
软件架构

Basic Syntax

基础语法

All PlantUML diagrams are wrapped in start/end tags:
plantuml
@startuml
' Your diagram code here
@enduml
Comments:
  • Single line:
    ' This is a comment
  • Block:
    /' This is a block comment '/
Title and captions:
plantuml
@startuml
title My Diagram Title
caption This is a caption
header Page Header
footer Page Footer

' Diagram content
@enduml

所有PlantUML图表都需要包裹在开始/结束标签中:
plantuml
@startuml
' 你的图表代码写在这里
@enduml
注释:
  • 单行注释:
    ' 这是一条注释
  • 块注释:
    /' 这是块注释 '/
标题与说明文字:
plantuml
@startuml
title 我的图表标题
caption 这是说明文字
header 页面页眉
footer 页面页脚

' 图表内容
@enduml

Quick Reference Card

速查卡片

Sequence

时序图

plantuml
@startuml
participant A
participant B
A -> B: Message
A <-- B: Response
@enduml
plantuml
@startuml
participant A
participant B
A -> B: 消息
A <-- B: 响应
@enduml

Class

类图

plantuml
@startuml
class Name {
    - private
    + public
    + method()
}
A <|-- B : extends
A *-- B : contains
@enduml
plantuml
@startuml
class Name {
    - private
    + public
    + method()
}
A <|-- B : extends
A *-- B : contains
@enduml

Activity

活动图

plantuml
@startuml
start
:Action;
if (condition?) then (yes)
    :True path;
else (no)
    :False path;
endif
stop
@enduml
plantuml
@startuml
start
:操作;
if (条件?) then ()
    :真分支;
else ()
    :假分支;
endif
stop
@enduml

State

状态图

plantuml
@startuml
[*] --> State1
State1 --> State2 : event
State2 --> [*]
@enduml
plantuml
@startuml
[*] --> State1
State1 --> State2 : 事件
State2 --> [*]
@enduml

Component

组件图

plantuml
@startuml
[Component1] --> [Component2]
database DB
Component2 --> DB
@enduml

plantuml
@startuml
[Component1] --> [Component2]
database DB
Component2 --> DB
@enduml

References

参考资料

For detailed syntax and complete examples, see:
ReferenceContentWhen to Load
sequence.mdParticipants, arrows, activation, groups, notesCreating sequence diagrams
class.mdClasses, visibility, relationships, cardinalityCreating class diagrams
activity.mdConditions, swimlanes, fork/joinCreating activity diagrams
state-component.mdState machines, components, deploymentCreating state/component diagrams
c4.mdC4 context, container, component diagramsCreating C4 architecture diagrams
special-diagrams.mdER, JSON, MindMap, GanttCreating non-UML diagrams
styling-setup.mdSkinparams, themes, installationCustomizing diagrams, setting up PlantUML

如需详细语法和完整示例,请查看:
参考文档内容适用场景
sequence.md参与者、箭头、激活、分组、注释创建时序图
class.md类、可见性、关系、基数创建类图
activity.md条件、泳道、分支/合并创建活动图
state-component.md状态机、组件、部署创建状态图/组件图
c4.mdC4上下文、容器、组件图创建C4架构图
special-diagrams.mdER图、JSON图、思维导图、甘特图创建非UML图表
styling-setup.mdSkinparams、主题、安装自定义图表、PlantUML设置

File Extensions

文件扩展名

ExtensionDescription
.puml
Standard PlantUML file
.plantuml
Alternative extension
.pu
Short extension
.iuml
Include file

扩展名说明
.puml
标准PlantUML文件
.plantuml
替代扩展名
.pu
短扩展名
.iuml
包含文件

Test Scenarios

测试场景

Scenario 1: Creating a sequence diagram

场景1:创建时序图

Query: "Create a PlantUML sequence diagram for user authentication"
Expected: Skill activates, provides sequence syntax with participants, arrows, and alt/else blocks
查询: "为用户认证流程创建PlantUML时序图"
预期结果: 工具激活,提供包含参与者、箭头、alt/else块的时序图语法

Scenario 2: Creating a class diagram

场景2:创建类图

Query: "Generate a PlantUML class diagram for an e-commerce domain"
Expected: Skill activates, provides class syntax with relationships and cardinality
查询: "为电商领域生成PlantUML类图"
预期结果: 工具激活,提供包含关系和基数的类图语法

Scenario 3: Creating a C4 diagram

场景3:创建C4图

Query: "Create a C4 container diagram in PlantUML"
Expected: Skill activates, directs to c4.md reference for includes and syntax

Last Updated: 2025-12-28 PlantUML Version: 1.2024.6
查询: "用PlantUML创建C4容器图"
预期结果: 工具激活,引导查看c4.md参考文档获取包含文件和语法

最后更新: 2025-12-28 PlantUML版本: 1.2024.6

Version History

版本历史

  • v1.1.0 (2025-12-28): Refactored to progressive disclosure - extracted content to references/
  • v1.0.0 (2025-12-26): Initial release
  • v1.1.0 (2025-12-28): 重构为渐进式披露 - 将内容拆分至references/目录
  • v1.0.0 (2025-12-26): 初始版本