为什么我需要一个博客
很早之前ACM训练时在CSDN上开过一个博客,经常将自己的题解贴到上面去,可惜这个习惯并没有坚持太久(是懒病犯了……)。
现在毕业差不多半年了,感觉需要将最近看到的东西以及以后看到的东西总结总结,写写读书笔记,最近看C++
感觉记忆力不够用了。
想去买个VPS,接触过Node.js
之后,又想过自己试着写一个,虽然自我感觉很不错(年轻人经常自大……),但由于本人是写C++
的,
虽然学会了TypeScript
但从来没怎么用过,随着时间(当然是逐渐忘了……)流逝,各种框架一个版本一个版本地更新,真没时间去练习……
但后来,我觉得不能这么悠闲得生活下去,得提高自己的知识水平才行,说不定出现什么不幸的事件,那只得靠自己了。
今天刷知乎时,看到
教你免费搭建个人博客,Hexo&Github —— 崔斯特的博客
,感觉可行啊,那就自己搭一个~~
搭建Github.io博客的原理
简单了解了一下,Github的域名分为两个: github.com
和 github.io
,
不同的域名可以采用不同安全策略,保证托管在Github上的代码不会因为Cookie被利用而遭到破坏;
数据做了划分处理,可以放到不同的服务器上进行保存,比较容易进行分流等等。
github.io
可以将代码仓库中的静态网页渲染到浏览器上,因此,
创建一个xxx.github.io
仓库然后在里面存贮博客的静态网页,
如此我们就可以使用 https://yourname.github.io/ 就可以访问自己的博客,浏览文章内容了。
搭建Gihub.io博客的工具
这世界上有很多生成静态网页的程序可以用来搭建博客,我用的是 Hexo , 官方网站在这里。
这是一个使用Node.js
写出来的工具,有这么几个优点:
- 超快速度:Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
- 支持 Markdown:Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
- 一键部署:只需一条指令即可部署到 GitHub Pages, Heroku 或其他网站。
- 丰富的插件:Hexo 拥有强大的插件系统,安装插件可以让 Hexo 支持 Jade, CoffeeScript。(我相信也一定支持TypeScript)
这之后,为了让自己的博客变得更好看一些,我使用了主题 NexT , 官方网站在这里。
这个主题应该是使用人数最多的主题,在github上的star数超乎想象,而且还有完善的中文文档可供阅读。
写博文完善自己的博客
Hexo 支持 Markdown,但Markdown至今也没有几个称得上完美的编辑器,我使用的是微软家的 VSCode ,
VSCode 支持基础的 Markdown 语法,但如果希望支持更多的语法,你需要安装 VSCode 的插件,或者自己造一个。
正宗完善的 Markdown 可以支持很多东西,比如流程图,各种各样的表格,LaTeX等,如果用不到或者不想费劲学习,
则使用图片就可以了。
我推荐的 Markdown 语法查询目录,是 SegmentFault 的 Markdown语法编辑器指南。
这份指南足以满足大部分博客写作的要求了。
我碰到的问题
- 1,Hexo 部署失败,导致部署失败的原因有这几个:
- 网络环境差,导致无法push到github的博客仓库里,多执行几次
"hexo deploy"
命令可能就成功了; - 解析出现错误,这种问题经常是配置文件写错了字母,或者在md文档中用错了Hexo的标签,查看终端输出的信息很容易发现问题的所在;
- git工具未找到,这种问题一种是安装了git,但环境变量没有配置成功,另外一种就是没有安装,这个时候应该回到Hexo的使用文档中查看自己漏掉了哪些步骤。
- 网络环境差,导致无法push到github的博客仓库里,多执行几次
- 2,Hexo 解析的网页不显示图片,或者在主页中显示而在单独一篇文章中未显示:
- 这个是由于 Markdown 解析路径的问题,Hexo 的作者们好像并没有到Markdown解析中解决这个问题,虽然他们提出使用 相对路径引用的标签插件 , 但我并没有使用成功,我的解决方法是安装了
Node.js
的hexo-asset-image
模块,可以通过npm install hexo-asset-image --save
来进行安装和使用。
- 这个是由于 Markdown 解析路径的问题,Hexo 的作者们好像并没有到Markdown解析中解决这个问题,虽然他们提出使用 相对路径引用的标签插件 , 但我并没有使用成功,我的解决方法是安装了
- 3,我试图向
xxx.github.io
存放文件,却发现经常被 Hexo 删掉,这个需要注意一下。本打算将 Hexo 程序和博客原文一同放到xxx.github.io
中,看来是不行了,只好新建了一个库。 - 4,每次更新之后,最好是用
hexo clean
清理一下,防止发生一些错误。我的一些想法
应该利用空余时间研究下怎么样完善自己博客的功能,比如增加相册(图片应该找个图片云存放)等,写个主题什么的。