AI开发-自动生成mkdocs的nav配置
自动生成 MkDocs 的 Nav 树形结构¶
需求提示词:¶
用python封装一个mkdocs插件,要能正确用pip安装调用,有setup.py。在编译前修改mkdocs.yml文件,生成nav配置,具体需求如下:
1. **扫描文件夹和文件**:
- 忽略docs下的blog文件夹
- 递归扫描 `docs` 文件夹及其所有子文件夹。
- 只包含 `.md` 文件,忽略 `index.md` 文件。
- 如果一个文件夹中除了 `index.md` 没有其他 `.md` 文件,并且其所有子文件夹中也没有其他 `.md` 文件,则跳过该文件夹。
- 如果文件夹中有其他 `.md` 文件,或其子文件夹中有 `.md` 文件,则正常扫描并包含在树形结构中。
2. **生成树形结构**:
- 树形结构以文件夹和文件名作为键,相对路径作为值。
- 文件名不包含文件扩展名(`.md`)
- 如果 .md 文件中定义了 meta 数据,并且指定了 urlname,则在生成路径时,将文件名替换为 urlname.md,并去掉 .html 后缀。
- 相对路径以 `docs` 文件夹为基准,但路径中不显示 `docs/` 前缀。
- 路径风格统一为 Unix 风格(`/`),即使在 Windows 系统上也使用 `/`。
3. **更新 `mkdocs.yml` 文件**:
- 将生成的树形结构写入 `mkdocs.yml` 文件的 `nav` 部分,覆盖原有内容。
- 确保生成的 YAML 格式正确,路径和文件名正确无误。
4. **代码实现要求**:
- 使用 `pathlib` 模块进行路径操作。
- 使用 `yaml` 模块读取和写入 `mkdocs.yml` 文件。
- 使用正则表达式或解析工具读取 .md 文件的 meta 数据。
- 确保代码简洁、易读,支持多层级文件夹结构。
---
结果¶
上面提示词生成的结果,貌似每次都有点不太一样,我一点点问,然后慢慢修正它的,最后生成的脚本完全满足我自己的需求,当然不是问一次就能成功,只是觉得现在AI强的有点离谱,记录一下自己曾经用过的提示词。