跳到正文

配置参考

所有选项都可以在顶层设置,并按 locale 覆盖。

站点选项

选项类型默认值说明
hostnamestringnull站点域名。启用 SEO、sitemap 与 RSS
logostringnull导航栏 logo
logoDarkstringnull深色模式下的 logo
repostringnull仓库地址,用于仓库按钮与编辑链接
docsDirstringdocs仓库内文档所在目录
docsBranchstringmain文档所在分支
localesobject{}按 locale 的覆盖
themePluginsobject{}开关或配置内置插件

布局选项

选项类型默认值说明
navbararray[]导航链接,支持一层 children
sidebararray | objectfalse侧边栏数组,或以路径前缀为键的映射
sidebarExtraarray[]追加在解析结果之后的侧边栏项
sidebarDepthnumber2页内目录深度(2–6)
notFoundstring[]内置404 页面显示的文字
backToTopbooleantrue显示返回顶部按钮
toggleColorModebooleantrue显示配色切换按钮
progressBarbooleantrue顶部阅读进度条
numberedbooleantrue页内目录给嵌套标题编号
codeBlockLanguagebooleantrue代码块语言标签与复制按钮
drawerTrapFocusbooleantrue移动端抽屉锁定焦点
footerobjectnull站点页脚:{ message, copyright }
authorobjectnull作者信息,见下方「作者选项」
searchboolean | objecttrue本地搜索,见搜索
blogobject | false见博客博客选项,false 关闭
numberedbooleantrue是否给页内目录的嵌套标题编号

文案选项

完整清单见多语言,这里只列常用的:

选项类型默认值说明
selectLanguageTextstringLanguages语言下拉的文案
tocTitlestringOn this page页内目录上方的标题
paginationLabelstringPagination翻页区域的 landmark 名称
breadcrumbLabelstringBreadcrumb博客面包屑的名称
codeBlockLabelstringCopy code代码复制按钮的文案
codeBlockCopiedstringCopied复制成功后的按钮文案
noDatedPostsstringNo dated posts yet.归档中没有带日期文章时的提示
archiveMonthsstring[]英文 12 个月归档视图的月份名
skipToContentstringSkip to contentskip link 文案
toggleSidebarstringToggle sidebar导航开关与移动端抽屉的文案
sidebarLabelstring站点标题 + navigation侧边栏 landmark 的可访问名称
backToTopstringBack to top返回顶部按钮文案
siteNavLabelstringSite navigation导航栏 landmark 的可访问名称
pageNavLabelstringPage navigation上一页/下一页 landmark 的可访问名称
openRepoLabelstringOpen {host} repository仓库链接的可访问名称
authorLabelstringAuthor页脚里作者名称前面的标签
blog.*object见博客博客各处的标题与文案
blog.wordsstring:words words阅读时间旁的字数文案;不设则不显示

作者选项

author 声明一次,全站页脚与首页即可复用;页脚永远用它生成作者区块,不需要逐页写组件。

字段类型默认值说明
namestring—作者名称,必填
avatarstring''头像 URL,缺省时退化为名称首字
descriptionstring''一句话简介
linksarray[]联系方式,元素为 { name, link, icon? }

links[].link 是绝对 URL 时渲染成外链;其它值只作为文本展示,所以 QQ 群号这类 不是网址的条目不会变成死链。links[].icon 是可选的短标签。

theme: githubTheme({
  authorLabel: '作者',
  author: {
    name: '科技酱',
    avatar: 'https://avatars.githubusercontent.com/u/306192419?v=4',
    description: 'vuepress-theme-GitHub 的作者。',
    links: [
      { name: '作者网站', link: 'https://docs.asoe.cn' },
      { name: 'GitHub', link: 'https://github.com/techjiang/' },
      { name: '哔哩哔哩', link: 'https://space.bilibili.com/1768832152' },
      { name: 'QQ 群', link: '291974598' },
    ],
  },
})

单个页面想要独立排版时,直接用 WAuthor 组件。

页脚选项

选项类型默认值说明
editLinkbooleantrue显示编辑链接
editLinkTextstringEdit this page编辑链接文案
editLinkPatternstringnull自定义 href 模板
lastUpdatedbooleantrue显示更新时间
contributorsbooleantrue显示贡献者头像

页内目录

右侧的目录由页面实际渲染出来的标题生成,所以它不会列出不存在的章节。

  • sidebarDepth 决定深度(2–6)。它总是从 h2 开始,因为 h1 是页面标题。
  • 更深的标题会嵌套成树,折叠时仍保留在 DOM 中,所以每个条目都保留自己的锚点。
  • numbered: true(默认)会给嵌套标题加上大纲编号,GitHub 风格:1.1、1.2、2.1。 已经以数字开头的标题不动,页面第一个标题也不动 —— 与 GitHub 的行为一致。
  • 指针悬停或键盘聚焦在目录上时,高亮暂停跟随滚动 —— 否则点击深层条目时高亮会在脚下跳走。
  • 页面 frontmatter 里写 toc: false 可隐藏本页的目录。

阅读体验

进度条、代码块的语言标签与复制按钮、阅读时间与字数,都在 阅读体验 里。三个开关:

theme: githubTheme({
  progressBar: false,
  numbered: false,
  codeBlockLanguage: false,
})

无障碍

主题已经处理好的部分:

  • skip link 是 Tab 能到达的第一个元素,回车把焦点移到 <main>
  • 导航栏、侧边栏、页内目录、翻页区各有独立的 landmark 名称
  • 移动端抽屉是 role="dialog" + aria-modal:打开时焦点移入、Tab 循环在内部、 Escape 关闭并把焦点还给开关按钮,关闭后解除页面滚动锁
  • 配色切换按钮用 aria-pressed 暴露状态,图标与页面实际配色永远一致
  • 代码块复制按钮有可读名称,键盘 Tab 到即显示
  • 尊重 prefers-reduced-motion:所有动画与平滑滚动降级

自定义组件时请保持同样的习惯:读 window 的代码放进 onMounted,不要用 「先渲染 false、挂载后再改成 true」的 ref —— 那会造成 hydration 不一致。

导航栏

条目要么是链接,要么是分组。分组会展开成下拉。

navbar: [
  { text: '指南', link: '/guide/' },
  {
    text: '组件',
    children: [
      { text: '总览', link: '/components/' },
      { text: '容器', link: '/components/containers.md' },
    ],
  },
]

侧边栏

数组应用于所有页面。对象把路径前缀映射到各自的数组,最长匹配前缀生效。

sidebar: {
  '/guide/': [
    { text: '介绍', children: ['/guide/README.md', '/guide/getting-started.md'] },
    { text: '参考', children: ['/guide/configuration.md'] },
  ],
}

侧边栏条目可以是纯字符串,也可以是带 text、link、children 的对象。分组可折叠, 当前页所在的分组会自动展开。

Frontmatter

上面每个选项都可以按页面覆盖。

---
title: 自定义标题
sidebar: false
toc: false
pageNav: false
meta: false
editLink: false
lastUpdated: false
---
键默认值说明
homefalse渲染首页布局
blogViewpage博客视图:blog、tag、tags、archives 之一
sidebar主题配置本页的侧边栏配置,false 隐藏
toctrue显示页内目录
pageNavtrue显示上一页/下一页
metatrue显示页脚
title取自 markdown页面标题
descriptionnull标题下方的副标题

插件

themePlugins 用来开关内置行为插件,或透传选项。把某个键设为 false 即关闭。

键默认值插件
activeHeaderLinks启用@vuepress/plugin-active-header-links
autoFrontmatter启用@vuepress/plugin-auto-frontmatter
backToTop启用主题自带的返回顶部按钮(不再是插件,见下)
catalog启用@vuepress/plugin-catalog,已排除 posts 目录
copyCode启用@vuepress/plugin-copy-code
feed有 hostname 时@vuepress/plugin-feed
git启用@vuepress/plugin-git
linksCheck启用@vuepress/plugin-links-check
mediumZoom启用@vuepress/plugin-medium-zoom
nprogress启用@vuepress/plugin-nprogress
prismjs启用@vuepress/plugin-prismjs
seo有 hostname 时@vuepress/plugin-seo
shiki启用@vuepress/plugin-shiki
sitemap有 hostname 时@vuepress/plugin-sitemap
返回顶部按钮属于主题,不来自插件
主题自己渲染返回顶部按钮。早前它同时启用了 @vuepress/plugin-back-to-top, 于是每个页面出现两个叠在一起的返回顶部控件,而插件那个不由本主题设计样式。 插件已移除;themePlugins.backToTop: false 仍然有效,会关闭主题自己的按钮。
themePlugins: {
  shiki: { themes: { light: 'github-light', dark: 'github-dark' } },
  mediumZoom: false,
}

多语言

theme: githubTheme({
  navbar: [{ text: 'Guide', link: '/guide/' }],
  locales: {
    '/zh/': {
      navbar: [{ text: '指南', link: '/zh/guide/' }],
      sidebar: { '/zh/guide/': ['/zh/guide/README.md'] },
    },
  },
})

站点级 locales(title、description、lang)留在 VuePress 配置里;主题只读自己的 theme options。