这是我参加第五届青训营伴学笔记创作活动的第10天。
VitePress构建完成之后,需要对文档进行配置,比如配置侧边栏、引入组件库等,让它变得完整一些。
之前完成了使用VitePress对组件库文档进行了构建,但是还没有具体配置过config和theme文件。
配置sidebar和nav
sidebar
sidebar的配置可以写成类似下列的格式:
export const sidebar = {
'/': [
{
text: 'Basic 通用组件',
items: [
{ text: 'Button 按钮', link: '/components/button/' },
{ text: 'Layout 布局', link: '/components/layout/' },
{ text: 'Icon 图标', link: '/components/icon/' },
{ text: 'Container 布局容器', link: '/components/container/' }
]
},
],
...
}
sidebar是一个对象的形式,key是你的文档的路径,value是一个数组,表示这个路径里的页面。
上述代码中,这个数组里是一堆对象,每个对象都有对应的text和items,text对应这个板块的标题,会以黑色加粗在文档中显示,items是类似子菜单的链接,里面也有一个text,表示链接的文字内容,link是这个链接该导航到的位置。这个链接的导航会根据你的docs下的目录去寻找对应的文件来展示到浏览器的页面当中。
nav
比起sidebar,nav的配置就比较简单。nav是一个数组,里面存的都是顶部每一项链接,以对象形式存储。每一个对象都像sidebar里的items一样,有一个text,一个link,意义与sidebar相同。
配置theme
在theme/index.ts里,你可以引入自己的组件库,或者引入一些组件等,就像常规项目的mainh.ts一样。
添加查看代码的demo
当我们写好了一个组件的文档,但是想展示代码给用户看,该怎么办?
VitePress支持在markdown里写vue的语法,你可以写一个vue组件,然后读取引入的文档组件的代码内容......
但是这样做太麻烦了,编写起来也有一点难度。
好在有现成的插件可以使用。推荐使用vitepress-demo-preview这个插件。在掘金大多数关于VitePress的文章,介绍的几乎就3个插件:vitepress-theme-demoblock、vitepress-demo-preview、vitepress-demoblock,但使用体验最好的我觉得是vitepress-demo-preview。
要使用这个插件,首先需要安装@vitepress-demo-preview/component、@vitepress-demo-preview/plugin这两个包,并且使用-D保存到开发环境。
安装好之后,在theme里引入
import {
AntDesignContainer,
ElementPlusContainer
} from '@vitepress-demo-preview/component'
import '@vitepress-demo-preview/component/dist/style.css'
export default {
...DefaultTheme,
enhanceApp: async ({ app, router, siteData }) => {
app.component('demo-preview', ElementPlusContainer)
}
}
引入的代码如上所示,你也可以导入DefaultTheme,这个是VitePress的默认主题。
vitepress-demo-preview里有Ant Design和Element Plus两种展示方式的代码预览组件,可以自己选一个使用。
回到config.ts,在默认暴露的对象里,添加一个markdown成员,引入vitepress-demo-preview的markdown插件。
import {
componentPreview,
containerPreview
} from '@vitepress-demo-preview/plugin'
import { nav } from './config/nav'
import { sidebar } from './config/sidebar'
markdown: {
config(md) {
// md.use(demoBlockPlugin)
md.use(containerPreview)
md.use(componentPreview)
}
}
这样,可预览代码的插件就配置好了。
在markdown里使用预览代码
因为刚才在theme里已经全局注册了这个组件,所以可以不用再次引入
在markdown中写入如下代码:
<preview path="./demo.vue" title="Avatar" description="description"></preview>
path是你的展示组件的一个demo路径,title和description是类似在Ant Design文档中的标题和描述,这两个属性在插件里的Element预览组件不显示,但是需要填写内容,否则会报错。
这样,一个组件库文档已经完全建立好了,接下来可以发布了。
发布
这里以发布到Github Pages为例。
将你的文档使用docs:build打包,打包的产物在docs/.vitepress/dist目录中。进入dist目录,将所有文件提交到仓库中,然后在仓库的设置中,点击Page,设置你文档所在的分支。
注意,如果需要部署到Github Pages,你需要配置config的base,配置如下:
base: '/<RepoName>/',
RepoName是你的仓库的名字,这是因为部署之后,你的路径会变成xxx.io/RepoName/的形式。
总结
组件库文档的构建、配置、发布就此告一段落,讲解的只是冰山一角,更多详细的配置可以查看VitePress的官方文档。