跳转到主要内容

Python的MermaidJS标记构建器

项目描述

Python MermaidJS标记构建器

MermaidJS标记构建器帮助编写MermaidJS标记。

MermaidJS是一个非常棒的产品,但其语法非常易于阅读和编写(与graphviz相比)。

例如,流程图上的节点或箭头形状在ASCII码中很容易看到,但不容易即兴编写。

此库应该有助于编写mermaidJS标记,然后可以在Markdown/github或playground中渲染。

注意:此为正在进行中的工作

待办事项列表中的下一个任务

  • 流程图的样式(添加类和样式)
  • "带有前缀的克隆"(创建节点或子图的克隆,但添加前缀到ID,以避免冲突)
  • 类图
  • 序列图的组
  • 打包用于分发

示例

流程图

未指定类型版本

chart = (Chart(title='test1')
    .add_node('user')
    .add_node('client')
    .add_node('server')
    .add_node('database')
    .add_link_between('user', 'client')
    .add_link_between('client', 'server')
    .add_link_between('server', 'database'))

OOP(更复杂的版本)

chart = Chart(title='Test', direction=ChartDir.TB)
node1 = Node(title="this is my node", id='my-node', shape=NodeShape.HEXAGON)
node2 = Node(title="this is my second node")
chart.add_node(node1).add_node(node2)
link = Link(src=node1.get_id(), dest=node2.get_id(), text='this is my link')
chart.add_link(link)
subgraph = Subgraph(title='subgraph', direction=ChartDir.LR)
subgraph.add_node(Node(title='i am a node inside subgraph'))

subgraph2 = Subgraph(title='subgraph2', direction=ChartDir.LR)
sn1 = Node(title='subnode 2')
sn2 = Node(title='subnode 3')
(subgraph2
    .add_node(sn1)
    .add_node(sn2)
    .add_link(Link(src=sn1, dest=sn2, text='link between subnodes')))
subgraph.add_subgraph(subgraph2)
chart.add_subgraph(subgraph)

序列图

diagram = SequenceDiagram()
client = Participant(id='C', label='Client')
server = Participant(id='S', label='Server')
database = Participant(id='D', label='Database')
(diagram
    .add_participant(client)
    .add_participant(server)
    .add_participant(database)
    .add_message(Message(src=client, dest=server, text='HTTP Request', activation_mode=ActivationMode.ACTIVATE))
    .add_message(Message(src=server, dest=database, text='SQL Query'))
    .add_message(Message(src=database, dest=server, text='Result', arrow=ArrowType.DOTTED_LINE_NO_ARROW))        
    .add_message(Message(src=server, dest=client, text='HTTP Response', activation_mode=ActivationMode.DEACTIVATE))
    .add_note(Note(participants=[client], text='This is a note', position=NotePosition.LEFT_OF)))

有关更多示例,请参阅flowchart_test.pysequence_diagram_test.py

开发

此库没有任何依赖。

python3 -m venv venv
source venv/bin/activate
pip3 install -e .

只需使用python3.5+,因为它使用typesUnion

运行测试

pytest

预览 - 将结果粘贴到https://www.devtoolsdaily.com/diagrams/mermaidjs/playground/

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

mermaid_builder-0.0.3.tar.gz (7.2 kB 查看哈希值)

上传时间 源代码

构建发行版

mermaid_builder-0.0.3-py3-none-any.whl (6.7 kB 查看哈希值)

上传时间 Python 3

由以下支持