跳到主要内容
MkDocs Primer Theme
Chinese

配置

主题选项

选项 默认 描述
logo null 站点名称旁边显示的图像,相对于 docs_dir。
favicon img/favicon.svg 网站图标。
icon octicons 主题控件的图标集:octicons 或 lucide。
font.text null 界面和散文的 CSS 字体系列值。
font.code null 内联和块代码的 CSS font-family 值。
font.source null docs_dir 下的外部样式表 URL 或本地样式表。
direction ltr 文件方向:ltr 或 rtl。
include_sidebar true 渲染导航侧边栏。
show_footer true 渲染“改进此页面”页脚。
toc auto “本页内容”目录:auto、expanded、collapsed 或 hidden。
color_mode auto 初始颜色模式:auto、light 或 dark。
light_theme light 浅色模式下使用的底漆主题。
dark_theme dark_theme dark

color_mode 仅设置初始模式。访客可以通过标题更改它 切换,他们的选择存储在 localStorage 中。

toc 决定由当前页面标题生成的目录放在哪里。窗口宽到能容下第三栏时,auto 把它放进右侧栏,否则置于页面标题之下——那里它是读者自行展开的折叠块,而不是横在标题与首段之间的列表。expanded 让它始终留在正文流里、不进右侧栏,collapsed 把它变成读者自行展开的折叠块,hidden(或 false)则完全不渲染。

图标

标题导航、颜色模式控制和返回顶部按钮使用内联 SVG 来自一个图标集。默认为octicons;选择 Lucide 图标 与:

theme:
  name: primer
  icon: lucide

这两套都包含在主题中,因此这两个选项都不会添加 CDN 请求。图标 选择仅适用于主题的 HTML 控件。语言选择器始终使用 Octicon 地球仪。 Markdown 图标语法和任意第三方 故意不支持图标包。

字体

字体是可选的:默认情况下,主题不请求字体 CDN。设置文本和 独立的代码系列,然后将 source 指向外部样式表 或 docs_dir 中的 CSS 文件:

theme:
  name: primer
  font:
    text: 'Inter, sans-serif'
    code: '"JetBrains Mono", monospace'
    source: https://fonts.googleapis.com/css2?family=Inter:wght@400;600&family=JetBrains+Mono&display=swap

对于自托管站点,将字体文件和样式表放在 docs_dir 中,然后 使用相对源路径:

theme:
  name: primer
  font:
    text: 'Atkinson Hyperlegible, sans-serif'
    code: 'Atkinson Hyperlegible Mono, monospace'
    source: fonts/fonts.css
docs/fonts/fonts.css
@font-face {
  font-family: "Atkinson Hyperlegible";
  src: url("AtkinsonHyperlegible-Regular.woff2") format("woff2");
  font-display: swap;
}

浏览器通常会缓存这些文件。自托管避免第三方 请求并在其资源被缓存后保持站点可离线使用。

从右到左的布局

为从右到左的文档设置 direction: rtl。主题放dir="rtl" 在根 HTML 元素上并镜像其标题、侧边栏、移动导航, 具有逻辑 CSS 属性的分页、页脚、菜单和控件。代码和 图表有意保持从左到右。

theme:
  name: primer
  direction: rtl

方向是站点范围内的设置;主题不是从页面或 语言环境。

!!!警告“light_theme 和 dark_theme 目前仅接受 light 和 dark” Primer 发布了十四个主题(dark_dimmed、light_high_contrast、 dark_tritanopia 等),但此主题仅提供其中两个的颜色标记 它们——全套将增加超过一兆字节的 CSS。命名任何其他主题 呈现一个完全没有颜色的页面而不是错误。支持更多主题 被跟踪为未来的添加。

标题锚点

要在每个标题旁边获取 GitHub 的悬停锚点,请使用以下命令启用 toc 扩展 带有 Primer 的 anchor 类的主要永久链接:

markdown_extensions:
  - toc:
      permalink: ""
      permalink_class: anchor
      permalink_leading: true
      permalink_title: Permanent link

主题绘制八角形本身,因此 permalink 设置为空字符串而不是 比通常的true。这比外观更重要:MkDocs 的搜索插件不 去除永久链接字形,这样 就会出现在您的搜索结果中。

如果没有此配置,永久链接仍然有效,它只是呈现为普通字形而不是 比八角形。

语法高亮

代码颜色来自 Primer 的 prettylights 变量,因此它们遵循活动的颜色 自动色彩模式。无需选择 Pygments 样式:

markdown_extensions:
  - pymdownx.highlight
  - pymdownx.superfences

.highlight 和 .codehilite 包装器都有样式,因此 codehilite 也可以。

该主题向每个 Pygments .highlight 块添加了一个复制按钮。它复制了 可见源并宣布剪贴板操作是否成功。积木 由插件渲染的,例如 Mermaid 和 Vega-Lite,被有意排除。

导航控件

滚动400像素后,右下角会出现返回顶部按钮 页面的。它将访问者返回到文档的开头并移动 键盘焦点指向站点标题链接。当访客来访时,动作是即时的 已要求减少动作。

Markdown 扩展

这些都不是必需的,但主题所提供的样式只能带来一次回报 他们在:

markdown_extensions:
  - admonition   # !!! note blocks, colored with Primer's alert palette
  - def_list
  - footnotes
  - tables
  - pymdownx.highlight
  - pymdownx.superfences
  - pymdownx.tilde

admonition 是值得一提的:该扩展发出标记并且没有 CSS 它自己的,@primer/css 也没有规则,所以一个无样式的 警告是一种常见的惊喜。该主题填补了这一空白 - 请参阅 示例。

自定义 CSS 和 JavaScript

extra_css 在主题发布的每个样式表后加载,因此您的规则获胜 无需 !important:

extra_css:
  - css/overrides.css
extra_javascript:
  - js/site.js
  # MkDocs 1.5+ also takes the mapping form.
  - path: js/chart.js
    type: module

Styling 说明该在其中写什么:主题自己的布局变量,以及为什么在 :root 中覆盖 Primer 的颜色令牌会被丢弃,而同一条规则放在两个属性选择器下就会生效。

extra_javascript 在 <body> 的末尾发出,在主题自己的之后 脚本。

!!!注意“注入自己资产的插件” 一个将 <link> 标签写入页面 HTML 而不是添加到的插件 extra_css — mkdocs-glightbox 就是其中之一 — 在您的覆盖之后落地。风格 那些具有更具体的选择器而不是依赖顺序的选择器。

编辑链接

设置 repo_url 和 edit_uri 时,页脚链接回源文件:

repo_url: https://github.com/you/your-project
edit_uri: edit/main/docs/
目录