UNPKG

@dopro/docsmaker

Version:
206 lines (180 loc) 4.71 kB
# docsMaker 无感知文档生成器 > document maker tool for vue and markdown. 所谓无感知,即在你不知不觉中已经把文档生成。 ## 支持的功能 * markdown解析 * demo预览自动生成 * vue组件代码自动生成 * 文档目录自动生成 ## 安装 * node > 8.0 * 安装模块 ``` sh # 安装到全局,可通过命令行执行 tnpm install @dopro/docsmaker -g # 安装到项目 tnpm install @dopro/docsmaker ``` ## 配置 docsmaker适用于js项目,配置信息写入`package.json`文件里面的`docs`字段,示例以及配置说明如下,所有配置均非必填: ``` js { ... "docs": { // 文档标题,默认为项目目录名 "title":"文档生成工具", // 文档名字,当该项目为子项目时会作为目录,默认为项目目录名 "name":"docsmaker", // 该项目下的文档所在目录,默认为['docs'] "docs":["docsmaker"], // 该项目的主页,默认为"readme.md" "home":"readme.md", // 该项目所需要自动生成文档的vue组件目录,默认为[] "components":[], // 子项目的pattern,默认为"" "subPatterns":"", // docsmaker使用vuepress构建文档,这里可以指定自定义的vuepress构建文件位置,默认为"" "config":"", // 使用build模式生成的文档位置,默认为"docsmaker" "dest":"docs", "translate":{ "components":"组件", "intro":"介绍", "example":"示例" } } } ``` ## 使用 命令行 ```sh # 调试模式 docsmaker # 构建模式 docsmaker build ``` 代码引用 ``` js const docsmaker = require("docsmaker"); // 调试模式 docsmaker.dev(); // 构建模式 docsmaker.build(); ``` * 调试模式下,docsmaker会自动启动文档web服务,可以在浏览器直接访问,修改`docs`、`home`和`components`配置项所指定的文件会自动构建。 * 构建模式下,会在`dest`配置项所指定目录下构建出文档静态文件,直接在该目录启动web服务即可访问静态的文档页面,可以用来部署到服务器。 ## markdown扩展功能 ### markdown中直接使用vue组件 支持`components`配置项所指定目录下的所有vue组件在markdown中直接使用,比如该项目下,`components/docsmaker-button.vue`组件代码为: ``` vue <template> <div class="ui-btn">{{text}}</div> </template> <script> export default { props:{ text:{ // ["按钮","确定"] type:String, default:'按钮' } } } </script> <style lang="scss" > .ui-btn{ width:60px; height:30px; line-height: 30px; font-size:14px; color:#000; text-align: center; border-radius: 6px; border:#bbb 1px solid; cursor: pointer; &:active{ opacity: .5; } } </style> ``` 在markdown中直接使用: ``` md <docsmaker-button/> ``` 效果如下: <docsmaker-button/> ### demo预览功能 可以通过简单的格式,快速写好demo和代码的预览,并可以再codepen中预览 下面是markdown的写法 ```md ::: demo html <p class="common-html"> this is <span style="color: red;">common</span> html </p> <style> .common-html { color: green; } </style> ::: ``` ::: demo html <p class="common-html"> this is <span style="color: red;">common</span> html </p> <style> .common-html { color: green; } </style> ::: 还支持vue写法 ```md ::: demo vue <template> <button @click="onClick">Click me!</button> </template> <script> export default { methods: { onClick: () => { window.alert(1) }, }, } </script> <style> button { color: blue; } </style> ::: ``` 效果如下 ::: demo vue <template> <button @click="onClick">Click me!</button> </template> <script> export default { methods: { onClick: () => { window.alert(1) }, }, } </script> <style> button { color: blue; } </style> ::: ### vue组件文档自动生成 使用[vuese](https://vuese.org/zh/parser/)自动生成`components`配置项指定的目录下vue组件的说明文档,并将demo呈现出来,带有`// ["status1","status2"]`注释的props会把改属性所有状态的组件显示出来,如前面提到的组件会生成这个文档:[components/docsmaker-button.vue](/components/docsmaker-button.html) ## 自动生成目录 文档目录下的一级目录会自动生成为顶部导航,二级以下目录会生成侧边导航,通过`translate`配置,可以将名字转换为中文,如本项目的文档目录为: ``` |- readme.md |- intro |- readme.md |- components |- docsmaker-button.md ```