# 使用Git写博客
到现在,随着静态博客的越来越流行,用Git写博客已经越来越常见了。
最典型的应用应该就是Github Pages,通过上传MarkDown与一些简单的Jekyll模板就能生成观感不错的博客。
我的这版博客也是通过Git管理的,这里就简单的说一些应用。
## Visual Studio Code
首先,要说的就是VS Code。作为一款编辑器,其轻量、高度自定义的特性是我最喜欢的,当然接近Visual Studio的用法也是非常适合我这种重度.NET使用者。
暂不说插件,其自带对MarkDown的实时预览编辑就非常使用,虽然有时会崩一下,但总体问题不大。
然后,VS Code也是内置了对Git的支持,对常用功能都是做到了界面操作,轻度使用的话,基本可以脱离Git命令行。
## GitBook
[GitBook](https://www.gitbook.com/)作为一个用于写文档的工具,其对我来说最大的特点就是和Github集成,通过对应账号绑定之后,可以实现类似于Github Pages自动生成页面的效果。而且,GitBook还有一个基于Node.js的服务端,可以方便的在本地查看最终的效果,解决我之前需要不断提交来尝试Github Pages效果的苦恼。(其实只是不想装Ruby环境)
其实之前也用过一些类似于Hexo的静态博客工具,但是总是感觉默认的效果不喜,可又懒得自己写(主要还是审美不行)。此外,像Hexo之类的,最后上传的是生成后的静态页面,而不是原始的MarkDown文件,就个人而言,我觉得上传MarkDown文件更便于分享,以及更加的干净。
同时,GitBook还支持插件,可以根据自己的喜好,来对应选择所需的效果。像我使用的插件就如下:
```json
{
"plugins": [
"anchors", // 实现类似Github的锚链接
"edit-link", // 在左上角显示编辑此页,以方便跳转到对应的Github文件
"navigator", // 在右上角显示导航,在右下角显示回到页首
"-highlight", // 更换代码高亮插件
"prism"
]
}
```
其中,highlight是默认的代码高亮插件,但它高亮的颜色太暗淡了,所以就直接换成了prism。
**但是**,说了这么多好处,GitBook还有一个致命的问题,它的服务器在海外,访问延迟还是小事,而且有可能被墙(不是特别确定是不是被墙了,有时能访问,有时只能走代理)。当然,对应我们开发人员来说,准备梯子已经是常识了,但当分享给他人的时候,别人发现打不开还是很尬的。
## 看云
对于上面提出的问题,我最早的解决方案是直接给他们对于的Github文件的链接,虽说Github上的MarkDown观感很好,但总有些疙瘩。最后我在国内找到了一家提供类似于Gitbook服务的网站,[看云](https://www.kancloud.cn/)。同样是可以基于Git来写文档,但它只支持从Github导入,而不会自动同步Github上的commit。换言之,就是写完后需要push两遍了,这对我来说显然是不能接受的。(强迫症。。)
可惜还没研究懂如何设置Github WebHook,目前暂且通过设置多个上传流的方式来实现只写一次命令行完成两次push。
命令如下:
```shell
git remote set-url --add origin repo-url
```
## 域名绑定
其实这一步可有可无,因为无论是GitBook还是看云,它们所生成的Url规则还是比较清晰的。
当然,要添加也还是挺简单,通过CNAME将自有域名解析到对应的域名上,然后就可以直接在后台设置自定义域名。