| name | md-flowchart-optimize |
| description | 优化Markdown文件中的ASCII流程图,使其更适合手机显示。将宽大的ASCII边框图转换为紧凑的树形结构。当用户要求修复流程图在手机上的显示问题时调用。 |
MD 流程图优化器
将 Markdown 文件中不适合手机显示的宽大 ASCII 流程图转换为紧凑的树形结构。
使用场景
在以下情况调用此 skill:
- 用户报告流程图在手机上显示不正常
- 流程图使用了宽边框字符(
┌─┐、└─┘、│、▼)导致需要横向滚动
- 用户要求"让流程图更紧凑"或"修复手机显示问题"
- 用户提到流程图"太宽"或"在手机上显示不正常"
问题示例
宽边框流程图在手机上显示不佳:
┌─────────────────────────────────────────────────────────────────┐
│ Title │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ Some condition │
└───────────────────────────────┘
解决方案
转换为紧凑的树形结构:
Title
│
├─ Some condition? ──Yes──→ Action A
│ └─No──→ Action B
│
└─ Another condition ──→ Action C
转换规则
1. 移除边框
转换前:
┌─────────────────┐
│ Title │
└─────────────────┘
转换后:
Title
2. 将横向线条转换为树状分支
转换前:
│
▼
转换后:
│
▼
3. 将条件框转换为行内条件
转换前:
┌───────────────────────────────┐
│ singleUrl 模式? │
└───────────────────────────────┘
│ │
是 否
转换后:
├─ singleUrl?──是──→ WebView.reload()
│ └─否──→ ...
4. 使用 ├ 和 └ 分支
- 使用
├─ 表示分支(后面还有分支时)
- 使用
└─ 表示最后分支(后面没有分支时)
- 使用
│ 表示延续线
5. 保持可读性
- 条件文字简洁
- 使用
--是--→ 和 --否--→ 表示判断分支
- 使用
--→ 表示简单流向
转换示例
转换前:
┌─────────────────────────────────────────────────────────────────┐
│ ReadRssActivity.refresh() │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ singleUrl 模式? │
└───────────────────────────────┘
│ │
是 否
│ │
▼ ▼
currentWebView ┌───────────────────┐
.reload() │ viewModel.refresh │
│ └───────────────────┘
转换后:
refresh()
│
├─ singleUrl?──是──→ WebView.reload()
│
└─否──→ viewModel.refresh()
实现步骤
- 识别流程图:查找包含边框字符(
┌─┐│└┘▼├┤)的 ASCII 图形
- 评估宽度:如果行超过 60-80 字符,需要优化
- 转换结构:
- 提取主标题/目的
- 将每个框转换为行内条件
- 使用树状分支符号(
├─、└─、│)
- 保留逻辑流程
- 验证:确保新图表可读且保留了所有判断点
最佳实践
- 节点标签使用标题式大小写
- 判断节点使用问句格式(如 "condition exists?")
- 操作节点使用动词格式(如 "load content")
- 保持缩进层级清晰
- 每行控制在 60 字符以内以适配手机