Skip to content

目录结构

项目

本仓库由数个相对独立的项目构成,项目指的是仓库根目录下的文件夹。在文章页面,左侧边栏会显示当前项目的目录结构。

每个项目内都应该包含一个 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 是否默认折叠所有目录

匹配模式

对于 pinnedbottomedignore 属性,如果字符串开头和结尾均为斜杠 /,则将内容识别为正则表达式。如果正则表达式有误则会在构建阶段报错。如果不是,则为完全匹配,即文件或目录名需要与字符串完全一致才会执行。注意:文件名包含扩展名 .md

对于 rewrites,也按上述方法识别是否为正则。如果 key 是正则表达式,则使用 value 替换该正则。否则使用 value 作为显示名称。需要注意,rewrites 不更改排序,排序时依然按文件或目录名排序。

此外需要注意,配置文件仅在当前目录级别下生效,不会影响二级目录。

侧边栏排序规则

侧边栏链接排序规则(自上而下应用

  1. 项目简介页面置顶
  2. 根据 .sidebar.json5 中的配置排序
  3. 项目根目录下,目录在前,零散文件在后。二级目录不受此影响
  4. 同目录下的文件和文件夹,若匹配到 /^\d+-//^\d+\.\d+-/(例如 「2-基本扩展1.1-映射与函数会优先根据前面的数字进行排序
  5. 按拼音顺序排序

其他

插入图片时,应在 Markdown 文件所在目录下新建 images 文件夹,将图片放置在其中,并使用相对路径引用。

侧边栏渲染会忽略 index.mdimages 目录。