SuperAPI AI 工具集

nomnoml

编程与开发

查看项目

更新于 10-16 09:17

技能介绍

nomnoml 工具说明

nomnoml 可将纯文本描述转换为 nomnoml 标记,并(可选)通过 CLI 渲染。

主要参考地址:https://nomnoml.com

快速开始

最简图表

[User]->[AuthService] [AuthService]->[DB]

典型类框

[Order| +id: UUID; +total: Money; | +addItem(item); +checkout(); ]

语法要点

节点(框)

基本形式:[A]

带分隔区(标题 | 属性 | 方法):[A|x; y|do();]

换行可用实际换行(推荐)或必要时使用 \n。

关系(常用)

[A]->[B] # 关联 / 依赖 [A]-->[B] # 点线 [A]-:>[B] # 类组合(样式可能不同) [A]<-[B] # 反向箭头 [A]-[B] # 无箭头连线

若箭头语义不明确,优先使用清晰标签:

[API]->[DB] [API] "reads/writes" -> [DB]

基数 / 标签

[Customer] 1->* [Order] [Order] 1->* [OrderLine]

分组

[<frame> Payments| [API] [Worker] ]

[API]->[Worker]

常见容器:

<frame>:大框分组

<package>:类包分组

<actor>:角色火柴人

样式 / 指令

在顶部使用 # 添加指令:

#direction: right #spacing: 40 #ranker: tight-tree

[Client]->[API]

常见指令:

#direction: right|down

#spacing: <数字>

#padding: <数字>

#ranker: network-simplex|tight-tree|longest-path

工作流程:根据描述生成图表

识别图表类型:

类/数据模型 → 带分隔区的框 + 继承/关联

架构/服务 → frame/package + 箭头 + 带标签的边

流程/步骤 → 简单框 + 箭头,保持可读性

选择名称:

对节点使用稳定名词(AuthService、TokenStore、Frontend)。

保持节点名称简短;详情放在分隔区或标签中。

生成 nomnoml 代码:

架构图以 #direction: right 开头。

使用 frame/package 按限界上下文分组。

为非显而易见的内容添加标签。

迭代:

若图表过密,按子系统拆分为多个图表。

渲染(工具)

若需要渲染资源,使用 nomnoml 工具而非 CLI。

选项 A:快速预览

使用工具直接在聊天中渲染:

使用 nomnoml-display 内联源码进行快速预览。

选项 B:渲染为 SVG

使用工具渲染并可选写入文件:

使用 nomnoml-render 内联源码及可选 outputFile。

使用 nomnoml-render-file 输入 inputFile 及可选 outputFile。

若不需要渲染,仍生成 .nomnoml 源文件以便后续渲染。

模式

架构草图(推荐的默认模式)

#direction: right

[<actor> User]->[WebApp]

[<frame> Backend| [API] [Worker] ]

[WebApp]->[API] [Worker]->[DB] [API]->[DB]

[DB]

带继承的类图

[<abstract> Animal|+name: string|+speak()] [Dog|+breed: string|+speak()] [Cat|+color: string|+speak()]

[Animal]<:-[Dog] [Animal]<:-[Cat]

实体关系(简单)

#direction: down

[User|id; email] [Session|id; userId; expiresAt]

[User] 1->* [Session]

当要求“更新现有图表”时

除非有明确重命名,保留现有节点名称。

应用最小差异:

一次添加一个框/边

保持 direction/ranker 一致

若改变含义,更新边标签以保持明确。