结构化目录
目录结构
在运行或构建 Teek 时,Teek 会按照目录结构自动生成一个结构化的 侧边栏、目录树、面包屑、文章列表、文章分析等数据。
侧边栏和目录树的标题获取有如下特性:
- 针对文件夹,先分别扫描该文件夹下的
index.md
、index.MD
、[文件夹名].md
文件,并尝试获取里面的一级标题,如果获取到一级标题,则使用,否则使用文件夹名 - 针对 Markdown 文档,其获取顺序:
formatter.title
>Markdown 文件一级标题 >Markdown 文件名
面包屑的标题默认按照 Markdown 文件所在的目录层级名进行获取。
Teek 建议给每个 Markdown 文件设置 formatter.title
,且文件的命名与 formatter.title
保持一致。
提示
侧边栏数据会在文章页左侧生成菜单,目录树数据会在目录页生成目录,面包屑数据会在文章页生成面包屑。
特殊目录
Teek 的自动生成侧边栏,自动生成 frontmatter
、自动生成 h1
标题、站点分析功能在 VitePress 启动后,从根目录扫描 Markdown 文件,但是有部分目录会忽略扫描:
@pages
:该目录初衷是存放归档页、分类页、标签页等非文章的 Markdown 文件,它完全不会被 Teek 扫描,它是非常纯净的目录.scripts
:该目录初衷是存放一些脚本、工具文件,它完全不会被 Teek 扫描,它是非常纯净的目录@fragment
:该目录下的 Markdown 文件不会自动生成侧边栏,因此一些 碎片化文章建议放在该目录下/目录页/
:该命名的目录(正则表达式,如01.目录页
也符合)初衷是提供一个专门存放目录页的 Markdown 文件,因此统计站点文章数、文章总数等功能不会扫描该目录,文章列表和归档页也不会扫描该目录
碎片化文章说明
特点
- 简短且独立:每个碎片化文章通常只涵盖一个具体的知识点或主题,篇幅较短
- 灵活性高:可以随时添加、修改或删除,不受整体结构的严格限制
- 易于管理:由于其独立性,管理和查找特定知识点更加方便
- 补充性质:通常作为主干内容的补充,提供额外的信息或细节
示例场景
- 技术笔记:例如某个命令的用法、某个库的简单示例等
- 个人心得:如读书笔记、会议纪要等
- 临时记录:开发过程中遇到的问题及解决方案
命名约定
和 vdoing 一样,Teek 也建议使用以下命名约定:
- 无论是文件还是文件夹,请为其名称添加上正确的正整数序号和
.
,从00
或01
开始累计,如01.文件夹
、02.文件.md
,我们将会按照序号的顺序来决定其在侧边栏当中的顺序 - 同一级别目录别内即使只有一个文件或文件夹也要为其加上序号
序号只是用于决定先后顺序,并不一定需要连着,如 01、02、03...
,实际可能会在两个文章中间插入一篇新的文章,因此为了方便可以采用间隔序号 10、20、30...
,后面如果需要在 10
和 20
中间插入一篇新文章,可以给定序号 15
。
当然可以使用非序号的命名,这并不影响使用,添加序号只是为了排序,且更具有结构化,如果同一个目录下同时存在带序号和不带序号的文件,在生成侧边栏时,Teek 会分为两个区:带序号区和不带序号区,两个区内部按照各自的逻辑排序,在最终生成侧边栏的时候,不带序号区始终放在带序号区的后面。
目录层级
Teek 生成侧边栏或目录树的数据时,虽然支持无限层嵌套,但是建议不要超过 5 层。
目录结构例子
sh
.│(不参与数据生成)├─.vitepress├─.scripts├─@pages├─@fragment├─index.md├─package.json││(以下部分参与数据生成)├─01.指南││index.md│├─01.指南-使用││├──04.使用-登录认证.md││├──07.使用-权限认证.md││├──10.使用-登出下线.md││├──13.使用-注解鉴权.md││├──16.使用-路由拦截鉴权.md││├──19.使用-Session会话.md││├──22.使用-框架配置.md││├──25.使用-自定义Token.md││├──28.使用-临时Token认证.md││├──31.使用-记住我模式.md││├──34.使用-二级认证.md││├──37.使用-身份切换.md││├──40.使用-账号封禁.md││├──43.使用-会话查询.md││├──46.使用-HttpBasic认证.md││├──49.使用-全局侦听器.md││├──52.使用-全局过滤器.md││├──55.使用-多账号认证.md││├──58.使用-自定义注解.md││└─99.三级目录测试│││├──01.测试1.md│││├──03.测试2.md│││├──index.md││││└─99.四级目录测试││││├──01.测试1.md││││├──03.测试2.md││││├──index.md│├─05.指南-环境集成││├──04.环境集成-SpringBoot.md││├──07.环境集成-SpringWebFlux.md││├──99.环境集成-上下文组件开发指南.md│└─10.指南-插件││├──04.插件-持久层集成Redis.md││├──07.插件-持久层拓展.md││├──10.插件-AOP注解鉴权.md││├──13.插件-Token集成JWT.md││├──99.插件-插件开发指南.md├─05.设计││00.目录.md│├─01.设计-思路│││01.设计-思路设计.md│││04.设计-模块设计.md│││07.设计-术语说明.md│││10.设计-全局配置.md│││13.设计-策略模式.md│││16.设计-异常模型.md│││18.设计-管理者模型.md│├─03.设计-Helpers││├──01.设计-Helpers说明.md││├──07.设计-账号登录.md││├──10.设计-账号登出.md││├──13.设计-账号封禁.md││├──16.设计-二级认证.md││├──19.设计-身份切换.md││├──22.设计-账号认证.md││├──25.设计-临时Token.md││├──28.设计-同源Token.md││├──31.设计-HttpBasic认证.md