为 content
创建 Draw.io (XML) 图表的提示词
请为 content
创建一个专业、美观的 Draw.io 图表,并输出为完整的 XML 格式(包裹在 <mxfile>
和 <diagram>
标签内)。图表需严格遵循以下设计规范和结构:
1. mxfile
基础结构规范
- 文件格式: 生成一个完整的
.drawio
文件内容的 XML 结构。根节点应为<mxfile>
,包含一个<diagram>
。 - 图表模型: 在
<diagram>
内部,使用<mxGraphModel>
定义图表。- 画布属性: 设置
grid="1"
,gridSize="10"
,guides="1"
,tooltips="1"
,connect="1"
,arrows="1"
,fold="1"
,page="1"
,pageScale="1"
,pageWidth="1200"
,pageHeight="800"
。 - 背景色: 设置
<mxGraphModel>
的background
属性为#f8f9fa
或其他指定的浅灰色系。
- 画布属性: 设置
- 根元素:
<mxGraphModel>
内必须包含<root>
元素,其中包含<mxCell id="0" />
和<mxCell id="1" parent="0" />
作为默认的根图层和主图层。所有图表元素都应以id="1"
的mxCell
为父级(或嵌套在其中的其他元素下)。
2. 视觉风格与 mxCell
样式映射
所有视觉样式都通过 <mxCell>
的 style
属性(一个由分号分隔的键值对字符串)来定义。
- 标题:
- 实现: 创建一个独立的
<mxCell>
。 - style:
`text;html=1;align=center;verticalAlign=middle;fontSize=28;fontStyle=1;fontColor=#1a1a1a;`
(fontStyle=1
代表粗体)。
- 实现: 创建一个独立的
- 主要模块 (形状):
- 实现: 使用
<mxCell>
定义形状。 - style:
`shape=rectangle;rounded=1;arcSize=15;whiteSpace=wrap;html=1;align=center;verticalAlign=top;spacingTop=10;fillColor=[[color]];strokeColor=none;opacity=90;`
arcSize=15
对应 SVG 的rx="15"
。fillColor
从下面的配色方案中选取。verticalAlign=top
和spacingTop=10
为模块内标题留出空间。
- 实现: 使用
- 配色方案 (用于
fillColor
,strokeColor
,fontColor
):- 蓝色系:
#A5B4FC
,#93C5FD
,#A7D7C5
- 绿色系:
#A7F3D0
,#BBF7D0
,#D1FAE5
- 紫色系:
#C4B5FD
,#D8B4FE
,#E9D5FF
- 橙色系:
#FDE68A
,#FED7AA
,#FFE4E1
- 红色系:
#FECACA
,#FBCFE8
,#F9A8D4
- 中性色:
#94A3B8
,#A1A1AA
,#D1D5DB
- 蓝色系:
3. 文字层级与样式
文字通常作为 <mxCell>
的 value
属性存在,其样式在 style
字符串中定义。
- 模块标题:
fontSize=18;fontStyle=1;fontColor=#FFFFFF;
(如果背景深) 或fontColor=#333333;
(如果背景浅)。通常与模块形状的style
合并。 - 主要内容:
fontSize=13;fontStyle=0;
- 次要说明:
fontSize=11;
- 注释文字:
fontSize=10;fontColor=#6B7280;
- 文本换行: 确保所有包含多行文本的
style
中包含`whiteSpace=wrap;html=1;`
。
4. 布局与连接线原则
布局通过每个 <mxCell>
内的 <mxGeometry x="..." y="..." width="..." height="..." as="geometry" />
标签来精确控制。
- 模块化布局:
- 对齐与边距: 通过精确计算
x
和y
坐标,确保同层模块间距一致。 - 分组/嵌套: 要将模块
1, 2, 3
归入分类A
,应创建一个大的<mxCell>
作为容器A
,然后将模块1, 2, 3
的<mxCell>
的parent
属性设置为容器A
的id
。容器A
可以设置一个半透明的背景色或仅作为逻辑分组。
- 对齐与边距: 通过精确计算
- 连线 (Edges):
- 实现: 创建一个独立的
<mxCell>
,并设置edge=1
属性,同时定义source="[source_id]"
和target="[target_id]"
属性来连接两个模块。 - style:
`edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;strokeWidth=2;strokeColor=#94A3B8;`
- 箭头:
endArrow=classic
是标准箭头。避免使用过大的箭头,strokeWidth
保持在1-3
之间。 - 连线文本: 将文本作为连线
<mxCell>
的value
。 - 避免交叉: 仔细规划
sourcePoint
和targetPoint
,或使用edgeStyle=orthogonalEdgeStyle
配合<Array as="points"><mxPoint x="..." y="..."/></Array>
来定义路径点,绕开其他元素。
- 实现: 创建一个独立的
5. 内容呈现决策指南 (逻辑不变,实现方式调整)
此部分逻辑与 SVG 版本完全相同,仅在实现上转变为操作 Draw.io 的 mxCell
对象。
- 整体概览/生态系统类: 中心
mxCell
+ 周围辐射连接的mxCell
。 - 时间演进/发展历程类: 在水平或垂直方向上对齐一系列
mxCell
,用带箭头的 Edge 连接。 - 多方案对比/选型类: 并列放置多个容器
mxCell
,每个容器内放置特性描述。 - 流程步骤/工作流类: 使用带箭头的 Edge 线性或分支连接
mxCell
。 - 层次结构/依赖关系类: 使用父子嵌套或用 Edge 连接来表示层级和依赖。
- 矩阵分类/多维度类: 将
mxCell
放置在精确的x
,y
网格位置上。
6. 设计原则总结 (核心思想)
- 形式服务内容: 分析
content
后选择最合适的布局模式。 - 视觉一致性: 严格复用预设的颜色和样式字符串。
- 信息层级: 通过
fontSize
,fontStyle
和fillColor
的深浅来区分主次信息。 - 结构清晰: 善用容器
mxCell
(父子关系) 和edge
(连接关系) 来表达信息的内在结构。
content
如下: