npm i free-doc -g
free-doc serve
free-doc build
具体参考 example
module.exports = function () {
return {
setup: './setup.js', // 文档启动时会被引用
/**
* 文档配置
* 第一级会出现在 header,第二级开始为独立的文档页
*/
components: [
{
title: '组件',
path: '/components',
defaultPath: '/components/button',
children: [
{
title: 'Button 按钮',
path: '/button',
component: './src/button/button.md', // 指定需要解析的 md 文件
},
{
title: 'Progress 进度条',
path: '/progress',
component: '@/src/progress/progress.md', // @ 是当前执行目录的别名
},
]
},
{
title: '文档',
path: '/article',
defaultPath: '/article/article1',
children: [
{
title: '文档 1',
path: '/article1',
component: './article/article1.md',
},
{
title: '文档 2',
path: '/article2',
component: './article/article2.md',
},
]
}
],
/**
* 自定义 webpack 配置,返回新的 webpack 配置,可以实现高度个性化的需求
* free-doc 默认已经提供了一些关于文档组件的别名
* 可以通过自己定义 webpack entry 在自己的文件中引用相关文档组件,将文档集成到站点中来
* ~docs 文档整合页数组,components 字段第一级会被处理成独立的文档整合页
* ~doc-config 结构与 doc.config.js 一致,不过 components 每一项文档 component 字段都会被处理成文档页,可以自由实现菜单
*/
customWebpackConfig(config) {
// return new config
}
}
}
demo 引用
::: demo <demo 路径> [demo标题] [--dev 是否只在开发环境调试]
[demo 描述(可不填)]
:::
生成文档
为了方便开发维护,对于组件 props,直接采用注释生成文档的方式。参考 react-docgen
::: doc <组件 jsx 文件路径>
:::
example 提供了比较典型的使用示例,克隆本项目,进入 example 对应项目目录下,使用 free-doc 生成文档即可查看
cd example/test-components
free-doc serve
# visit http://127.0.0.1:18888