OI-wiki / gatsby-oi-wiki

🚧 基于 Gatsby 的 OI Wiki 渲染框架。🚧
https://next.oi-wiki.org/
Apache License 2.0
66 stars 37 forks source link

[RFC] 拆分目录格式 #1002

Open diauweb opened 2 years ago

diauweb commented 2 years ago

目前目录是由一个 src/ 下写死的文件 sidebar.yaml 统一维护的。为便于维护,试提出一种新的目录格式。

  1. 目录保存在 docs 目录下,与文档文件同级
  2. 目录按层级拆分为不同文件
  3. 一般使用名称 index.yml

index.yml 应提供一个数组,其中包含当前项其下的子目录和页面。 单项只提供一个字符串时,表示文档的文件名,标题由文档元数据提供;提供一个 只有一项的 K-V Pair 时,K 表示标题,V 表示文件名。 对于子目录,必须提供一个标题。只有子目录文件需要提供文件扩展名按文件搜索,其余的文档路径以Gatsby创建的页面路径为准。

在解析文件名时,以当前 index 文件所在目录为相对目录。文件名前有 / 的以文档目录顶部目录开始解析

例如:

# /index.yml
- 简介: intro/ # equivalent to intro/index.yml
- 语言基础: lang/
- 算法基础: basic/
# /intro/index.yml
- Getting Started: /
- resources
- common-mistakes
- ./common-tricks
- /intro/non-trad/
ouuan commented 2 years ago

hugo 是把 title 和 weight 放内容 md 的 frontmatter 里,用 weight 进行排序,供参考。

ouuan commented 2 years ago

hugo 是把 title 和 weight 放内容 md 的 frontmatter 里,用 weight 进行排序,供参考。

这个主要是需要排序的内容比较多的时候会麻烦

ouuan commented 2 years ago

才发现现在的 title 就是在文档 md 里的,为什么这个 RFC 要把 title 移出来..

diauweb commented 2 years ago

才发现现在的 title 就是在文档 md 里的,为什么这个 RFC 要把 title 移出来..

目前我们在使用frontmatter管理标题,目录里没必要再出现一个标题了

Enter-tainer commented 2 years ago

当时写目录这块的代码的时候,感觉“只有一项的kv对”有一点毒瘤,解析起来比较麻烦。这个rfc里面还是保持了之前的设计,是处于兼容性的考虑吗

diauweb commented 2 years ago

当时写目录这块的代码的时候,感觉“只有一项的kv对”有一点毒瘤,解析起来比较麻烦。这个rfc里面还是保持了之前的设计,是处于兼容性的考虑吗

只是为了易读性考虑的

ouuan commented 2 years ago

才发现现在的 title 就是在文档 md 里的,为什么这个 RFC 要把 title 移出来..

目前我们在使用frontmatter管理标题,目录里没必要再出现一个标题了

哦我没看清那个 K-V pair 是目录不是文件..