软件

Joplin 使用教程 —— PlantUML 详解

波比AI · 5月2日 · 2025年本文共8321个字 · 预计阅读28分钟10次已读

安装

搭建

参考:https://github.com/plantuml/plantuml-server

version: “3.9”
services:
plantuml:
image: plantuml/plantuml-server:latest
container_name: plantuml
hostname: plantuml
mem_limit: 2g
cpu_shares: 768
security_opt:
– no-new-privileges:true
user: 1000:1000
healthcheck:
test: wget –no-verbose –tries=1 –spider http://localhost:8080
ports:
– 9020:8080
volumes:
– ./data:/tmp/jetty:rw
environment:
TZ: Asia/Shanghai
restart: on-failure:5

语法

:这里只介绍在Joplin里面的用法,其他环境不做测试。 plantuml:https://plantuml.com/zh/ 在线体验编辑器:https://www.plantuml.com/plantuml/

plantuml 语法

时序图

参考:https://plantuml.com/en/sequence-diagram

@startuml  
actor Bob #red  
' The only difference between actor  
'and participant is the drawing  
participant Alice  
particibobyaipant "I have a really\nlong name" as L #99FF99  
/' You can also declare:  
  participant L as "I have a really\nlong name"  #99FF99  
  '/  
​  
Alice->Bob: Authentication Request  
Bob->Alice: Authentication Response  
Bob->L: Log transaction  
@enduml  

用列图

参考:https://plantuml.com/zh/use-case-diagram

@startuml

User -> (Start)
User –> (Use the application) : A small label

:Main Admin: —> (Use the application) : This is\nyet another\nlabel

@enduml

类图

参考:https://plantuml.com/zh/class-diagram

@startuml  
title 使用方括号([])表示的线混合样式  
class foo类  
class bar类  
bar类1 : [#red,thickness=1]  
bar类2 : [#red,dashed,thickness=2]  
bar类3 : [#green,dashed,thickness=4]  
bar类4 : [#blue,dotted,thickness=8]  
bar类5 : [#blue,plain,thickness=16]  
​  
foo类 --> bar类               : ∅  
foo类 -[#red,thickness=1]-> bar类1      : [#red,1]  
foo类 -[#red,dashed,thickness=2]-> bar类2  : [#red,dashed,2]  
foo类 -[#green,dashed,thickness=4]-> bar类3 : [#green,dashed,4]  
foo类 -[#blue,dotted,thickness=8]-> bar类4  : [blue,dotted,8]  
foo类 -[#blue,plain,thickness=16]-> bar类5  : [blue,plain,16]  
@enduml  

活动图

参考:https://plantuml.com/zh/activity-diagram-beta

@startuml
!pragma useVerticalIf on
start
if (condition A) then (yes)
:Text 1;
elseif (condition B) then (yes)
:Text 2;
stop
elseif (condition C) then (yes)
:Text 3;
elseif (condition D) then (yes)
:Text 4;
else (nothing)
:Text else;
endif
stop
@enduml

流程图

参考:https://mermaid-js.github.io/mermaid/#/flowchart

组件图

参透:https://plantuml.com/zh/component-diagram

@startuml

package “Some Group” {
HTTP – [First Component]
[Another Component]
}

node “Other Groups” {
FTP – [Second Component]
[First Component] –> FTP
}

cloud {
[Example 1]
}


database “MySql” {
folder “This is my folder” {
[Folder 3]
}
frame “Foo” {
[Frame 4]
}
}


[Another Component] –> [Example 1]
[Example 1] –> [Folder 3]
[Folder 3] –> [Frame 4]

@enduml

状态图

参考:https://plantuml.com/en/state-diagram

@startuml
scale 600 width

[] -> State1
State1 –> State2 : Succeeded
State1 –> [
] : Aborted
State2 –> State3 : Succeeded
State2 –> [] : Aborted
state State3 {
state “Accumulate Enough Data\nLong State Name” as long1
long1 : Just a test
[
] –> long1
long1 –> long1 : New Data
long1 –> ProcessData : Enough Data
}
State3 –> State3 : Failed
State3 –> [] : Succeeded / Save Result
State3 –> [
] : Aborted

@enduml

对象图

参考:https://plantuml.com/zh/object-diagram

@startuml PERT
left to right direction
‘ Horizontal lines: –>, <–, <-->
‘ Vertical lines: ->, <-, <->
title PERT: Project Name

map Kick.Off {
}
map task.1 {
Start => End
}
map task.2 {
Start => End
}
map task.3 {
Start => End
}
map task.4 {
Start => End
}
map task.5 {
Start => End
}
Kick.Off –> task.1 : Label 1
Kick.Off –> task.2 : Label 2
Kick.Off –> task.3 : Label 3
task.1 –> task.4
task.2 –> task.4
task.3 –> task.4
task.4 –> task.5 : Label 4
@enduml

部署图

参考:https://plantuml.com/zh/deployment-diagram

@startuml

artifact artifact1
artifact artifact2
artifact artifact3
artifact artifact4
artifact artifact5
artifact artifact6
artifact artifact7
artifact artifact8
artifact artifact9
artifact artifact10
artifact1 –> artifact2
artifact1 –* artifact3
artifact1 –o artifact4
artifact1 –+ artifact5
artifact1 –# artifact6
artifact1 –>> artifact7
artifact1 –0 artifact8
artifact1 –^ artifact9
artifact1 –(0 artifact10

@enduml

定时图

参考:https://plantuml.com/en/timing-diagram

@startuml
concise “Client” as Client
concise “Server” as Server
concise “Response freshness&laoxiongb2c#8221; as Cache

Server is idle
Client is idle

@Client
0 is send
Client -> Server@+25 : GET
+25 is await
+75 is recv
+25 is idle
+25 is send
Client -> Server@+25 : GET\nIf-Modified-Since: 150
+25 is await
+50 is recv
+25 is idle
@100 <-> @275 : no need to re-request from server

@Server
25 is recv
+25 is work
+25 is send
Server -> Client@+25 : 200 OK\nExpires: 275
+25 is idle
+75 is recv
+25 is send
Server -> Client@+25 : 304 Not Modified
+25 is idle

@Cache
75 is fresh
+200 is stale
@enduml

网络图

参考:https://plantuml.com/en/nwdiag

@startuml
nwdiag {
network Sample_front {
address = “192.168.10.0/24”
color = “red”

// define group  
group web {  
  web01 [address = ".1, .2", shape = "node"]  
  web02 [address = ".2, .3"]  
}  

}
network Sample_back {
address = “192.168.20.0/24”
color = “palegreen”
web01 [address = “.1”]
web02 [address = “.2”]
db01 [address = “.101”, shape = database ]
db02 [address = “.102”]

// define network using defined nodes  
group db {  
  db01;  
  db02;  
}  

}
}
@endumllaoxiongb2c

线框图

参考:https://plantuml.com/en/salt

@startsalt
{
..
== with T!
{T!
+Region | Population | Age
+ World | 7.13 billion | 30
++ America | 964 million | 30
}
..
== with T-
{T-
+Region | Population | Age
+ World | 7.13 billion | 30
++ America | 964 million | 30
}
..
== with T+
{T+
+Region | Population | Age
+ World | 7.13 billion | 30
++ America | 964 million | 30
}
..
== with T#
{T#
+Region | Population | Age
+ World | 7.13 billion | 30
++ America | 964 million | 30
}
..
}
@endsalt

拱形图

参考:https://plantuml.com/en/archimate-diagram

@startuml  
skinparam rectangle<<behavior>> {  
    roundCorner 25  
}  
sprite $bProcess jar:archimate/business-process  
sprite $aService jar:archimate/application-service  
sprite $aComponent jar:archimate/application-component  
​  
rectangle "Handle claim"  as HC <<$bProcess>><<behavior>> #Business  
rectangle "Capture Information"  as CI <<$bProcess>><<behavior>> #Business  
rectangle "Notify\nAdditional Stakeholders" as NAS <<$bProcess>><<behavior>> #Business  
rectangle "Validate" as V <<$bProcess>><<behavior>> #Business  
rectangle "Investigate" as I <<$bProcess>><<behavior>> #Business  
rectangle "Pay" as P <<$bProcess>><<behavior>> #Business  
​  
HC *-down- CI  
HC *-down- NAS  
HC *-down- V  
HC *-down- I  
HC *-down- P  
​  
CI -right->> NAS  
NAS -right->> V  
V -right->> I  
I -right->> P  
​  
rectangle "Scanning" as scanning <<$aService>><<behavior>> #Application  
rectangle "Customer admnistration" as customerAdministration <<$aService>><<behavior>> #Application  
rectangle "Claims admnistration" as claimsAdministration <<$aService>><<behavior>> #Application  
rectangle Printing <<$aService>><<behavior>> #Application  
rectangle Payment <<$aService>><<behavior>> #Application  
​  
scanning -up-> CI  
customerAdministration  -up-> CI  
claimsAdministration -up-> NAS  
claimsAdministration -up-> V  
claimsAdministration -up-> I  
Payment -up-> P  
​  
Printing -up-> V  
Printing -up-> P  
​  
rectangle "Document\nManagement\nSystem" as DMS <<$aComponent>> #Application  
rectangle "General\nCRM\nSystem" as CRM <<$aComponent>>  #Application  
rectangle "Home & Away\nPolicy\nAdministration" as HAPA <<$aComponent>> #Application  
rectangle "Home & Away\nFinancial\nAdministration" as HFPA <<$aComponent>>  #Application  
​  
DMS .up.|> scanning  
DMS .up.|> Printing  
CRM .up.|> customerAdministration  
HAPA .up.|> claimsAdministration  
HFPA .up.|> Payment  
​  
legend left  
Example from the "Archisurance case study" (OpenGroup).  
See  
====  
<$bProcess> :business process  
====  
<$aService> : application service  
====  
<$aComponent> : application component  
endlegend  
@enduml

甘特图

参考:https://plantuml.com/zh/gantt-diagram

@startgantt
saturday are closed
sunday are closed

Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]

2021-01-18 to 2021-01-22 are named [End’s committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt

思维导图

参考:https://plantuml.com/en/mindmap-diagram

@startmindmap
* Debian
** Ubuntu
*** Linux Mint
*** Kubuntu
*** Lubuntu
*** KDE Neon
** LMDE
** SolydXK
** SteamOS
** Raspbian with a very long name
*** Raspmbc => OSMC
*** Raspyfi => Volumio
@endmindmap

工作分解结构图

参考:https://plantuml.com/en/wbs-diagram

@startwbs
* Business Process Modelling WBS
** Launch the project
*** Complete Stakeholder Research
*** Initial Implementation Plan
** Design phase
*** Model of AsIs Processes Completed
**** Model of AsIs Processes Completed1
**** Model of AsIs Processes Completed2
*** Measure AsIs performance metrics
*** Identify Quick Wins
** Complete innovate phase
@endwbs

JSON数据显示效果图

参考:https://plantuml.com/zh/json

@startjson  
{  
  "firstName": "John",  
  "lastName": "Smith",  
  "isAlive": true,  
  "age": 27,  
  "address": {  
   "streetAddress": "21 2nd Street",  
   "city": "New York",  
   "state": "NY",  
   "postalCode": "10021-3100"  
  },  
  "phoneNumbers": [  
   {  
    "type": "home",  
    "number": "212 555-1234"  
   },  
   {  
    "type": "office",  
    "number": "646 555-4567"  
   }  
  ],  
  "children": [],  
  "spouse": null  
}  
@endjson  


其他相关文章:
[[Joplin 使用教程 —— 基础设置]]
[[Joplin 使用教程 —— 插件推荐]]​

[Total: 0 Average: 0]
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!