文档网站生成器docsify概述
目录
docsify,A magical documentation site generator.
docsify,一个神奇的文档网站生成器。
优点不少,不足的地方就是docsify不适合于博客等一些需要seo的站点,适合临时小站、开发文档等
比如本站9ong,百度基本不会收录,docsify不是在部署前编译成html文件,而是在访问时将md解释成html
参考文档
https://docsify.js.org/#/zh-cn/
安装
这个安装,指的是自动配置文档网站的工具,其实是为了一开始方便创建docsify的相关文件及本地可以预览文档网站。
推荐安装 docsify-cli 工具,可以方便创建及本地预览文档网站。
npm i docsify-cli -g
如果没有安装npm,可以在9ong.com左上角搜索:npm
会看到一篇: windows10搭建nodejs+npm环境
初始化
如果想在项目的 ./docs 目录里写文档,直接通过 init 初始化项目。
docsify init ./docs
写文档
初始化成功后,可以看到 ./docs 目录下创建的几个文件
- index.html 入口文件
- README.md 会做为主页内容渲染
- .nojekyll 用于阻止 GitHub Pages 会忽略掉下划线开头的文件
直接编辑 docs/README.md 就能更新网站内容,当然也可以写多个页面
本地预览
运行一个本地服务器通过 docsify serve 可以方便的预览效果,而且提供 LiveReload 功能,可以让实时的预览。默认访问 http://localhost:3000 。
docsify serve docs
docsify-cli
https://github.com/docsifyjs/docsify-cli
配置
配置项,主要是index.html中的js参数配置,用于定制我们的文档网站,比如名称、logo、左侧边栏、导航栏、主题色等等
详见:官方文档
部署
本地预览ok后,就可以将网站部署到网上,提供提其他朋友访问。
以下常用的3中部署方式:
github page
好处:
- 可以自定义域名(无需备案)
- 只要代码push到github仓库,即可自动编译更新
- 免流量消耗、资源cdn更好
不好:
- 不会被百度收录
- 国内网速偶尔短路,比如刚才刚部署完云主机,github.io就短路了3分钟
gitlab
如果团队内部有在使用自有的gitlab,放内部使用的一些文档是个不错的选择
参考官方文档部署
VPS
这个只要有nginx就可以了,不论是本地、虚拟机、内网电脑、云主机、VPS都可以,
和部署所有静态网站一样,只需将服务器的访问根目录设定为 index.html 文件。
nginx配置
官方推荐配置:
server {
listen 80;
server_name your.domain.com;
location / {
alias /path/to/dir/of/docs;
index index.html;
}
}
如果以上方案报403错误,可以尝试以下方案,与nginx版本有关:
server {
listen 80;
index index.html;
server_name www.9ong.com;
root /your/docsify/docs/;
location / {
}
}
git推送更新
搜索本站左上角关键字:GIT
参考本站[版本管理/服务端代码自动部署GIT方式]
更多部署方式参考官方文档
插件
https://docsify.js.org/#/zh-cn/awesome?id=plugins
https://docsify.js.org/#/zh-cn/language-highlight
评论
国内目前只有畅言云评论还存活的背靠大树的第三方评论平台
官网:http://changyan.kuaizhan.com/
由于畅言没有提供docsify的插件,直接复制自适应代码放到body里,会导致pc端的展示异常,所以需要通过plugins插件的方式主动将畅言评论div块放在文章块main底部。
由于9ong也使用到footer的插件,暂时屏蔽,直接手动在插件hook.doneEach中硬编码,也就是说docsify中的footer配置无效,有个好处就是少加载一个js文件。
docsify开发插件: https://docsify.js.org/#/zh-cn/write-a-plugin
plugins: [
function(hook) {
//插件开发:https://docsify.js.org/#/zh-cn/write-a-plugin
hook.doneEach(function () {
//1、畅言div
let div = document.createElement("div");
div.id = "SOHUCS";
var _main = document.getElementById("main");
_main.appendChild(div);
setTimeout(function(){
//畅言js 复制从畅言自适应安装代码
(function(){var appid="cyr2slRop";var conf="prod_691dcb1d65f31967a874d18383b9da75";var width=window.innerWidth||document.documentElement.clientWidth;if(width<960){var head=document.getElementsByTagName("head")[0]||document.head||document.documentElement;var script=document.createElement("script");script.type="text/javascript";script.charset="utf-8";script.id="changyan_mobile_js";script.src="https://cy-cdn.kuaizhan.com/upload/mobile/wap-js/changyan_mobile.js?client_id="+appid+"&conf="+conf;head.appendChild(script)}else{var loadJs=function(d,a){var c=document.getElementsByTagName("head")[0]||document.head||document.documentElement;var b=document.createElement("script");b.setAttribute("type","text/javascript");b.setAttribute("charset","UTF-8");b.setAttribute("src",d);if(typeof a==="function"){if(window.attachEvent){b.onreadystatechange=function(){var e=b.readyState;if(e==="loaded"||e==="complete"){b.onreadystatechange=null;a()}}}else{b.onload=a}}c.appendChild(b)};loadJs("https://cy-cdn.kuaizhan.com/upload/changyan.js",function(){window.changyan.api.config({appid:appid,conf:conf})})}})();
},1000);
//2、footer
let footer = document.createElement("footer");
footer.innerHTML = '<footer style="text-align: center;"><hr />© 2019 <a target="_blank" href="http://www.beian.miit.gov.cn/">xxxxx备案信息</a> | <a target="_blank" href="http://www.12377.cn/">网上有害信息举报区</a>. All Rights Reserved - 如有侵权请联系ts@js.com</footer>';
_main.appendChild(footer);
})
}
]
PWA离线模式
https://docsify.js.org/#/zh-cn/pwa
统计
除了官方指定ga外,还可以用百度统计
SSR
之前有个SSR的项目,https://github.com/docsifyjs/docsify-ssr-demo,但这个项目目前好像与最新的docsify不兼容,出现一些异常,并没有再维护。
当然为了SEO、博客及更友好的静态页面,作者在2020年3月已经开始计划5.0版本
5.0版本
5.0计划:https://github.com/docsifyjs/docsify/projects/2
主要有:
- 静态HTML生成器
- 扩展新的markdown帮助:https://github.com/docsifyjs/docsify/issues/413
- 优化markdown语法生成器:https://github.com/docsifyjs/docsify/issues/1166
- docsify主题化:https://jhildenbiddle.github.io/docsify-themeable/#/introduction
其他问题
- 图床
大部分使用docsify的用户,都或多或少使用第三方的图床或图片,部分图床和图片是限制外链访问的,很多人在页面header上加上了no-referer的meta标签,导致百度等统计组件失效。
如果为了统计正常及图片正常访问,我们可以将图片放到一些有免费空间和流量的云服务商,比如七牛、又拍云等
个人自己写了一键转换md文件所有图片的python脚本,有需要可以联系我,或者到github上,在page仓库script/python/qiniu-img-class.py
- cdn
默认采用unpkg.com
国内偶然速度慢
可以使用知乎的unpkg.zhimg.com
知乎没有公开,但少人用应该没有问题