使用Docsify零成本快速搭建个人博客

Posted by KANG's BLOG on Thursday, May 20, 2021

什么是Docsify

除了自己手写一个博客网站,通常快速搭建个人博客有三种方式:

  1. wordpress - 动态建站型 wordpress是PHP语言写的项目,需要LAMP(Linux + Apache + MySQL/MariaDB + PHP)的运行环境,其生态庞大,含有非常多的主题和插件来丰富你网站的内容,大部分云服务如阿里云ECS对wordpress有非常好的支持,有独立的后台管理控制台,支持非常多的网站设置、文章发布功能。而这一切都不需要你具备太多的编程知识。缺点就是非常依赖原生配置能力,有一定的学习门槛,且组件修改方式不够灵活。最要命的是,对markdown支持一般,原生富文本编辑器或者新的古腾堡编辑器都太不程序员了。
  2. Hexo、Hugo等 - 静态编译型 这类博客搭建相比wordpress则轻量很多,一般是通过后台程序(比如nodejs或者go)直接将markdown文件编译成静态网站,再将其发布到你的个人云服务器上。社区生态火热,同样具有非常多的主题,且风格相比wordpress更加的小清新。
  3. docsify - 在线渲染型 docsify是GitHub上开源的快速搭建博客网站的项目,有别于Hexo、Hugo等,docsify的特点是不需要将md文件转化成html,而是在运行时解析markdown文件渲染成html网页,通过引用插件还能提供全局搜索、评论等功能。缺点是SEO较差。

从以上三者的使用经验来看,docsify最大的优点就是简单:无需编译、没有环境依赖。你的markdown笔记内容不做任何处理,直接被加载到客户端后由docsify渲染成网页。

最关键的是: Docsify非常适合与GitHub Pages集成!

通过GitHub Pages,无需云服务器和个人域名,在30分钟内就能搭建一个公网上的博客。国内用户可以使用Gitee Pages,二者操作类似。

这是我通过docsify + Gitee Pages搭建的个人博客:https://kangzhixing.gitee.io/k-blog

如何搭建Docsify

1. 安装docsify

npm i docsify-cli -g

注意:你需要先安装node

2. 初始化项目

docsify init ./docs

初始化完成后,目录下会出现docs文件夹,里面包含几个文件:

  • index.html 项目入口
  • README.md 会渲染成项目首页
  • .nojekyll docsify的文件多为下划线开头,这个文件可以使GitHub Pages 忽略掉这些下划线开头的文件

当然,你也可以创建一个index.html文件,其中引用相关js文件并进行window.$docsify的配置即可

3. 本地运行

docsify serve ./docs

运行成功后,可以通过浏览器访问 http://localhost:3000

Docsify功能介绍

1. 封面

通过设置index.html中window.$docsify的 coverpage 参数,可以为你的网站增加封面

<script>
    window.$docsify = {
      coverpage: true
    }
</script>

然后在根目录下创建_coverpage.md文件,具体使用可参考官方文档

2. 多页面侧边栏

通过设置index.html中的window.$docsify可以开启多页面侧边栏

<script>
  window.$docsify = {
    loadSidebar: true
  }
</script>

docsify会寻找_sidebar.md文件,来渲染多个页面侧边栏,文件具体使用可参考官方文档

另:

这里有一个小工具可以通过文件夹目录结构帮你快速生成_sidebar.md文件

将docsify-sidebar-generator.jar放到你的docsify根目录下

然后输入以下命令:

java -jar .\docsify-sidebar.jar

3. 主题

官方提供了五种主题,切换index.html中的css文件即可改变网站的主题风格

<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/buble.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/dark.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/pure.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/dolphin.css">

4. 全文搜索

index.html中引用全文搜索的js文件,并配置window.$docsify

<script>
  window.$docsify = {
    search: 'auto'
  }
</script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>

配置完成后,网站左上角会出现一个搜索框,docsify会帮你在localstorage中建立索引

集成GitHub Pages

  1. 将你的项目推送到GitHub仓库中

  2. 在仓库setting中找到GitHub Pages的设置,提供两个选项:

    • 选择master分支,可以直接读取你的仓库根目录

    • 选择docs,可以读取你仓库里的docs文件夹

  3. 设置完成后,页面会显示,这个网址就是你的博客地址

    Your site is published at https://xxx.github.io/xxx
    

后记

现在,你就有了个人的在线博客了。

你只需专注于文档书写,然后推送到远程仓储上即可。

也可以使用类似下面的脚本合并目录更新、同步远程这些繁琐的步骤。

git pull
java -jar .\docsify-sidebar.jar
git add *
git commit -m 'sync'
git push

学习的收获80%以上来自于总结,非常推荐每个人都维护自己的博客,不仅仅是研发人员。即使是简单的笔记向,它也能督促你不断学习,不断思考。