Born to be proud
11/26
2016

Blog重建手记

也记不清SAE从何时开始不送云豆,自己所剩的1万云豆就逐渐的消耗,中间还有一次被莫名攻击,一天掉了几千豆。加上自己也不知道该写点什么来发布,博客一直处于停摆状态。
9月底保研结束,时间也较为充裕,又萌生了持续更新博文的想法。在博客重新搭建的过程中也思考了如下问题:

CMS的选择

  • Wordpress 是目前最为流行的 PHP 开发的博客平台,优点是配套的资源(主题、插件等)众多、功能丰富、安装方式简单易用。但对于仅仅发些文章的人来说,Wordpress 显得有些臃肿。
  • Typecho 也是基于 PHP 的开源博客平台,轻量高效,简洁友好。正如 Typecho 的初衷和正在做的一样,做得不多,但足够好。Typecho 默认编辑器采用 MarkDown 排版语法。对比 Wordpress 来说,在主题以及插件数量上有着明显的不足。

  • Jekyll 是一个基于 Ruby 简单的免费的Blog生成工具,但是和前两种有很大的不同,原因是 Jekyll 只是一个生成静态网页的工具,不需要数据库支持,Jekyll 可以免费部署在 Github 上。用户将写好的 Markdown 文件直接 Push 到自己的 repository, GitHub Pages 便会自动将 Markdown 文件解析为对应的 静态 Html 文件,供访问浏览。Jekyll 部署调试相当复杂,官方文档不推荐本地 Windows 环境,对于分类、tag 等的操作也很复杂。

  • Hexo 是基于 Node.js 的静态博客框架,出自台湾大学生 SkyArrow 之手。Hexo 简化了操作流程,有四大特点:极速生成静态页面、支持Markdown、一键部署博客、丰富的主题插件支持。Hexo 与 Jekyll 最大的不同之处在于 hexo deploy 命令是将本地的public文件夹(生成的静态html)Push 到了repository,而 Jekyll 是将整个项目都托管到了 GitHub 上。

    在对比了多种 CMS 的优缺点后,根据自身需求选择了Hexo。首先是因为平时有用Markdown记录笔记的习惯
    ;再者采用 Hexo + GitHub 的组合实现了一劳永逸的解决办法,不用再为主机空间发愁;这样平时在有道云笔记中的笔记需要发布时加上头信息直接导出来就行了。

主题风格的设计

主题在设计前先明确了下自己的需求:

  • 设计风格简洁、干净、清晰化一
  • 响应式布局
  • 代码高亮
  • 支持Markdown

    在主题的制作过程中发现制作 Hexo 主题,除了需要了解 HTML / CSS / JavaScript 之外,还需要了解两个主要的技术,首先一个是模板引擎,Hexo支持主流的模板引擎,像 EJS / Jade / Swig 等,另外一个是 CSS 预处理,如 SASS / LESS / Stylus 。当然,对于我这种菜鸟来说,这两个我都不会,也懒得学,就直接采用了 HTML / CSS 在默认主题 landscape 上做修改 ,效率低了一点,不过最终还是完成了制作。

图片保存路径

对于 Markdown 来说,添加图片一直存在一些弊端,一种方法是建立图片文件夹保存在文档目录,采用相对路径进行引用,但这样无法满足发布博文的需求。另一种方法是将图片上传到网上,用url进行引用。在图床的选择上可以用微博相册/GitHub仓库等等,最终我选择了七牛云存储。七牛云为普通用户提供了免费的10GB空间,对于仅仅作为笔记插图的我来收也足够使用,七牛云也较为稳定。

域名绑定

GitHub Pages 不支持多域名绑定,且不支持泛解析。仅支持以下4种绑定方式:
image
若将域名泛解析到 GitHub Pages 上,可能导致其他人使用你的某个子域名作为其绑定域名。
repository 中的 CNAME 文件内容指定了绑定的域名。
尝试在 repository 中的 CNAME 文件中加入两个不同域名,结果只有第一行起作用,因此不支持多域名绑定。

域名 JackieLiu.win 是在万网买的,29块买了10年,真的好便宜。在万网解析不了,DS转到了DNSPod,做了两条 CNAME 分别将 @www 指向了 mjackie.github.io

总结

一个博客的好坏不是页面做的多好看,也不是用的技术多么的先进。博客的价值在于博客的内容。希望今后自己可以提高更博频率,一方面督促自己不断学习,另一方面可以提升自己的写作、总结能力。