5.4 KiB
5.4 KiB
文档分片任务
目的
- 根据二级章节将一个大文档分割成多个小文档
- 创建一个文件夹结构来组织分片后的文档
- 保持所有内容的完整性,包括代码块、图表和markdown格式
主要方法:使用markdown-tree自动进行
[[LLM: 首先,检查{root}/core-config.yaml中的markdownExploder是否设置为true。如果是,则尝试运行命令:md-tree explode {input file} {output path}。
如果命令成功,请通知用户文档已成功分片并停止 - 不要再继续。
如果命令失败(特别是出现命令未找到或不可用的错误),请通知用户:“markdownExploder设置已启用,但md-tree命令不可用。请:
- 使用以下命令全局安装@kayvan/markdown-tree-parser:
npm install -g @kayvan/markdown-tree-parser - 或者在{root}/core-config.yaml中将markdownExploder设置为false
重要提示:在此处停止 - 在采取上述操作之一之前,不要继续手动分片。”
如果markdownExploder设置为false,请通知用户:“markdownExploder设置当前为false。为了获得更好的性能和可靠性,您应该:
- 在{root}/core-config.yaml中将markdownExploder设置为true
- 使用以下命令全局安装@kayvan/markdown-tree-parser:
npm install -g @kayvan/markdown-tree-parser
我现在将继续手动分片过程。”
然后仅在markdownExploder为false时才继续下面的手动方法。]]
安装和使用
-
全局安装:
npm install -g @kayvan/markdown-tree-parser -
使用explode命令:
# 对于PRD md-tree explode docs/prd.md docs/prd # 对于架构 md-tree explode docs/architecture.md docs/architecture # 对于任何文档 md-tree explode [source-document] [destination-folder] -
它的作用:
- 按二级章节自动分割文档
- 创建正确命名的文件
- 适当地调整标题级别
- 处理所有带有代码块和特殊markdown的边缘情况
如果用户已安装@kayvan/markdown-tree-parser,请使用它并跳过下面的手动过程。
手动方法(如果@kayvan/markdown-tree-parser不可用或用户指示使用手动方法)
任务说明
-
识别文档和目标位置
- 确定要分片的文档(用户提供的路径)
- 在
docs/下创建一个与文档同名的新文件夹(不带扩展名) - 示例:
docs/prd.md→ 创建文件夹docs/prd/
-
解析和提取章节
关键的代理分片规则:
- 读取整个文档内容
- 识别所有二级章节(## 标题)
- 对于每个二级章节:
- 提取章节标题和直到下一个二级章节的所有内容
- 包括所有子章节、代码块、图表、列表、表格等。
- 要特别小心:
- 围栏代码块(```) - 确保捕获完整的块,包括闭合的反引号,并考虑到实际上是围栏部分示例一部分的潜在误导性二级标题
- Mermaid图表 - 保留完整的图表语法
- 嵌套的markdown元素
- 可能在代码块中包含##的多行内容
关键:使用能够理解markdown上下文的正确解析。代码块内的##不是章节标题。]]
3. 创建单个文件
对于每个提取的章节:
-
生成文件名:将章节标题转换为小写短横线格式
- 删除特殊字符
- 用短横线替换空格
- 示例:“## Tech Stack” →
tech-stack.md
-
调整标题级别:
- 在分片的新文档中,二级标题变为一级(# 而不是 ##)
- 所有子章节级别减1:
- ### → ## - #### → ### - ##### → #### - 等等。 -
写入内容:将调整后的内容保存到新文件中
4. 创建索引文件
在分片文件夹中创建一个index.md文件,该文件:
- 包含原始的一级标题和第一个二级章节之前的任何内容
- 列出所有带有链接的分片文件:
# 原始文档标题
[原始引言内容,如果有的话]
## 章节
- [章节名称 1](./section-name-1.md)
- [章节名称 2](./section-name-2.md)
- [章节名称 3](./section-name-3.md)
...
5. 保留特殊内容
-
代码块:必须捕获完整的块,包括:
内容 -
Mermaid图表:保留完整的语法:
graph TD ... -
表格:保持正确的markdown表格格式
-
列表:保留缩进和嵌套
-
内联代码:保留反引号
-
链接和引用:保持所有markdown链接的完整性
-
模板标记:如果文档包含{{占位符}},请完全保留
6. 验证
分片后:
- 验证所有章节都已提取
- 检查没有内容丢失
- 确保标题级别已正确调整
- 确认所有文件都已成功创建
7. 报告结果
提供摘要:
文档分片成功:
- 来源:[原始文档路径]
- 目的地:docs/[文件夹名称]/
- 创建的文件:[数量]
- 章节:
- section-name-1.md:“章节标题1”
- section-name-2.md:“章节标题2”
...
重要说明
- 切勿修改实际内容,只调整标题级别
- 保留所有格式,包括重要的空白
- 处理包含##符号的代码块等边缘情况
- 确保分片是可逆的(可以从分片中重建原始文件)