【docsify】简单文档生成利器

1,182 阅读1分钟

最近碰到一个需求,需要把一些markdown渲染到页面上,做成一个类似vue文档的页面。

如果没用修改markdown这个需求的话,我其实会选择vue-press。一想到要自己修改markdown,那么就会想到如下问题:

  • 多人同时修改怎么办
  • 修改记录的保存,回退
  • 权限

每一个都很头疼啊,所以想到了git,git能够完美解决以上问题,所以我只需要把markdown放到一个git仓库里就好了,正好公司搬家后也有了gitlab,于是乎,说干就干。

打开docsify官网,docsify.js.org/#/zh-cn/ 大概看了下,我觉得docsify有如下优点:

  • 轻量
  • 文件少:一般的库都是一个markdown生成一个html,而docsify只需要一个html
  • 没有命令,无需脚手架,最多需要一个live-server
  • 很方便的部署在GitHub pages

第一步:建立一个html文件

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta charset="UTF-8">
  <link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
</head>
<body>
  <div id="app"></div>
  <script>
    window.$docsify = {
      //...
    }
  </script>
  <script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
</body>
</html>

其中的script地址你可以换成本地文件或者其他cdn。

第二步

调整docsify配置

    window.$docsify = {
      name: '',
      repo: 'git repo',
      basePath:'',
      mergeNavbar: true,
      loadSidebar: true,
      autoHeader: true,
      subMaxLevel: 3,
      alias: { //当你多个文件共用一个sidebar时
        '/.*/_sidebar.md': '/_sidebar.md'
      },
      search: {
        maxAge: 86400000, // 过期时间,单位毫秒,默认一天
        paths: 'auto', // or 'auto'
        placeholder:'搜索',
        // 支持本地化
        noData: '找不到结果',
        // 搜索标题的最大程级, 1 - 6
        depth: 3
      }
    }
    console.log('TCL: $docsify', $docsify)
  

其中_sidebar.md就类似这样的结构,底下每个readme都是存放的具体文档。

* 网站相关文档
  * [静态网站](website/README.md)
  * [web应用](webApp/README.md)
  * [管理后台](websys/README.md)
  * [后台接口](api/README.md)

最后结果如图