目录结构
项目
本仓库由数个相对独立的项目构成,项目指的是仓库根目录下的文件夹。在文章页面,左侧边栏会显示当前项目的目录结构。
每个项目内都应该包含一个 index.md
作为项目首页,承接来自仓库首页或导航栏的跳转。这个首页会显示在左侧边栏的顶部,名称为「简介:(项目名称)
」
项目内的目录结构相对自由。但目录嵌套不得超过 2 层,否则侧边栏不渲染。
项目内的文件夹若有 index.md
文件,则侧边栏上该文件夹将变得可以点击,点击后跳转到该 index.md
渲染的页面。
目录名与文件名
一般地,项目与文件的命名可使用中文。目录和文件名应尽可能保持简短,并遵守:
- 避免使用空格(
空格会在 URL 中转义为) : %20
,且不像汉字那样可以直接在超链接中使用。 - 避免使用下划线(
_
在 URL 中出现下划线不利于搜索引擎优化,且下划线 Markdown 中是修饰字符。) : - 如需使用空格,请使用连字符(
-
)代替。在侧边栏和面包屑渲染时,-
会自动替换为空格。 - 无需在全角与半角字符之间添加空格。在侧边栏和面包屑渲染时会自动添加。
- 禁止使用
#
、?
等在 URL 中具有特殊含义的字符,这会导致页面无法打开。
侧边栏配置文件
如需控制侧边栏中内容的在侧边栏中的展现方式,可在目录中建立 .sidebar.json5
文件。
内容类型定义
ts
interface DirConfig {
pinned?: string[];
bottomed?: string[];
ignore?: string[];
rewrites?: { [key: string]: string };
collapseAllByDefault?: boolean;
}
pinned
:该目录下需要置顶的文件或目录bottomed
:该目录下需要置底的文件或目录ignore
:该目录下需要忽略的文件或目录。忽略的内容不会显示在侧边栏中,但依然会存在于网站上,可使用搜索框搜索到rewrites
:重写文件或目录的名称collapseAllByDefault
是否默认折叠所有目录
匹配模式
对于 pinned
、bottomed
、ignore
属性,如果字符串开头和结尾均为斜杠 /
,则将内容识别为正则表达式。如果正则表达式有误则会在构建阶段报错。如果不是,则为完全匹配,即文件或目录名需要与字符串完全一致才会执行。注意:文件名包含扩展名 .md
。
对于 rewrites
,也按上述方法识别是否为正则。如果 key
是正则表达式,则使用 value
替换该正则。否则使用 value
作为显示名称。需要注意,rewrites
不更改排序,排序时依然按文件或目录名排序。
此外需要注意,配置文件仅在当前目录级别下生效,不会影响二级目录。
侧边栏排序规则
侧边栏链接排序规则(自上而下应用
- 项目简介页面置顶
- 根据
.sidebar.json5
中的配置排序 - 项目根目录下,目录在前,零散文件在后。二级目录不受此影响
- 同目录下的文件和文件夹,若匹配到
/^\d+-/
或/^\d+\.\d+-/
(例如 「2-基本扩展
或1.1-映射与函数
会优先根据前面的数字进行排序) , - 按拼音顺序排序
其他
插入图片时,应在 Markdown 文件所在目录下新建 images
文件夹,将图片放置在其中,并使用相对路径引用。
侧边栏渲染会忽略 index.md
和 images
目录。