自建博客平台

自建博客平台,实际上是非常有技术含量的一件事。它不仅需要开发者对Web、开发语言、网络有足够的了解,同时还需要对平台搜索、维护等具有一定的经验。因此如果你是一个爱折腾的开发者,那么自建博客平台一定是你最好的选择。

目前市面上使用最广的自建博客平台,基本上分为WordPress阵营和脚本语言阵营。

WordPress

WordPress,是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设博客平台。WordPress是目前市面上使用最广的自建博客平台之一,拥有非常多的模板、插件和教程,用户可以利用WordPress在很短的时间内搭建属于自己的博客平台。

自建博客平台 - 图1 图1.40 WordPress

Jekyll、Octopress与Ghost

Jekyll和Octopress同样出自于Ruby,它们共同的特点是可以通过命令行快速生成静态网页,再利用Github Pages这个纯天然的托管平台,几乎几分钟就可以搭建好属于自己的博客平台。而且整个写作都支持Markdown格式,通过命令行就可以快速把Markdown文档发布到博客上。这样的工具简直就是天生为程序员打造的,不仅不用担心托管空间,而且还可以利用Markdown专心写作,同时整个操作全部基于命令行,使用起来非常Geek。

不论是Jekyll(图1.41)还是Octopress(图1.42),它们的官网上都有非常详细的使用文档,通过阅读官方的构建文档,再加上网上丰富的模板、插件,几乎可以零成本快速建站,它们的官网为http://jekyll.bootcss.com/和http://octopress.org/。

自建博客平台 - 图2 图1.41 Jekyll

自建博客平台 - 图3 图1.42 Octopress

前面讲的两种博客系统都是基于Ruby的,下面这个是基于Node.js的一个博客系统——Ghost(图1.43)。它与前面介绍的博客系统不同,Jekyll和Octopress只是将Markdown文档转换为Html文件,作为静态网页,利用Github Pages进行发布。而Ghost本身就具有发布文章的功能,类似于轻量级的WordPress(其实它的创始人就是WordPress的高级工程师)。其官网为https://ghost.org/,中文官网为http://www.ghostchina.com/。

通过Ghost的后台发布系统,用户可以很方便地发布文档。Ghost的后台编辑器同样适用于Markdown等格式。这样一个简化的一体化平台,相对于只使用命令行进行部署和发布的Jekyll和Octopress,Ghost让非技术员工也能方便地使用。

自建博客平台 - 图4 图1.43 Ghost

Hexo

然而好戏总在后面。对于Jekyll和Octopress来说,由于其使用的是Ruby,所以性能比较js来说会略慢。而Ghost虽然使用是的Node.js(Javascript的一个框架),但由于是刚刚创立不久,其文档、模板、插件等资源还不是太成熟,所以对于开发者来说,笔者最为推荐的博客平台,还应该是——Hexo(如图1.44所示)。利用原作者的一句话——A fast,simple&powerful blog framework,powered by Node.js。

自建博客平台 - 图5 图1.44 Hexo

Hexo同样是基于Node.js的博客平台。与Jekyll和Octopress类似,Hexo也是生成静态的Html文件,部署到各个托管平台完成发布。但Hexo的效率,相对于Jekyll和Octopress有着更加显著的提高。在短短几年的时间里,Hexo就已经俘获了千千万万开发者的心。其官网地址为https://hexo.io/zh-cn/。

虽然官网上已经有非常详细的安装、使用说明,但笔者还是带大家简要看一下如何利用Hexo搭建自己的博客系统。

环境准备

1.安装Git,在前文中已经说明如何安装,这里不再赘述。

2.安装Node.js,通过Homebrew或者从官网上下载安装包的方式都可以进行安装。

安装完毕之后,打开终端,检验是否安装正确。

  1. ~ node -v
  2. v4.2.1
  3. ~ npm -v
  4. 2.14.7
  5. ~ git --version
  6. git version 2.6.2

检测版本号正确之后,即表示环境配置成功。

安装Hexo

创建一个目录,进入到该目录中,执行以下指令。

  1. npm install -g hexo-cli

由于国内网络问题,可能该过程会比较慢,所以需要耐心等待,或者也可以更换国内的镜像源下载。

初始化站点

创建一个目录hexo(你也可以改为喜欢的名字),然后执行以下指令。

  1. MD hexo init hexo
  2. INFO Copying data to ~/Documents/MD/hexo INFO You are almost done! Don't forget to run 'npm install' before you start blogging with Hexo!

此时,系统会提示执行npm install以完成所有的配置。进入该目录后,执行npm install等待安装完成即可。

本地部署测试

在整个配置完成之后,打开终端,输入以下指令即可运行本地测试服务。

  1. hexo hexo server INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop.

服务运行起来之后,打开浏览器,输入http://localhost:4000/即可打开Hexo的默认页面,如图1.45所示。

自建博客平台 - 图6 图1.45 Hexo示例

如果看见了这个页面,就说明你的Hexo已经基本搭建完成了。再打开hexo文件夹,其基本目录结构如下。

  1. hexo tree -L 2
  2. .
  3. ├── _config.yml
  4. ├── db.json
  5. ├── node_modules
  6. ├── hexo
  7. ├── hexo-generator-archive
  8. ├── hexo-generator-category
  9. ├── hexo-generator-index
  10. ├── hexo-generator-tag
  11. ├── hexo-renderer-ejs
  12. ├── hexo-renderer-marked
  13. ├── hexo-renderer-stylus
  14. └── hexo-server
  15. ├── package.json
  16. ├── public
  17. ├── 2015
  18. ├── archives
  19. ├── css
  20. ├── fancybox
  21. ├── index.html
  22. └── js
  23. ├── scaffolds
  24. ├── draft.md
  25. ├── page.md
  26. └── post.md
  27. ├── source
  28. └── _posts
  29. └── themes
  30. └── landscape
  31.  
  32.  
  33. 21 directories, 7 files

其中,source是博客资源文件夹,source/_drafts是草稿文件夹,source/_posts是文章文件夹,themes是存放主题的文件夹,themes/landscape是默认的主题,_config.yml是全局配置文件。

部署到Github Pages

前面是运行在本地服务器上进行的测试,下面笔者将把这个博客发布到Github Pages上,供外网访问。当然你也可以部署到其他的服务器上,看个人的需要,对于一般的开发者来说,Github Pages就已经足够了。Github Pages服务的使用步骤如下。

1.开通Github账号,这个相信开发者都有,例如笔者的Github账号用户名为xuyisheng,这个后面会用到。

2.创建一个repository,名称必须是——用户名.github.io,例如笔者创建的这个repository,如图1.46所示。

自建博客平台 - 图7 图1.46 github.io地址

3.修改配置文件——_config.yml。这个配置文件在前面创建的hexo目录的根目录下面,这里配置了整个站点的信息,打开_config.yml文件,如图1.47所示。

自建博客平台 - 图8 图1.47 Hexo配置文件

整个配置文件的配置方法都很简单,命名一目了然,即使遇到你不了解的配置,你也可以在官网上找到详细的解释(https://hexo.io/zh-cn/docs/configuration.html),如图1.48所示。

自建博客平台 - 图9 图1.48 Hexo文档

唯一需要注意的一点是最后Deployment的配置,这里是配置如何部署到服务器上。如果你使用的是Github,那么可以参考笔者的配置,如下所示。

  1. # Deployment
  2. ## Docs: http://hexo.io/docs/deployment.html
  3. deploy:
  4. type: git
  5. repository: git@github.com:xuyisheng/xuyisheng.github.io.git
  6. branch: master

只需要将对应的用户名修改为你自己的用户名即可。

在配置文件中,可以设置Hexo站点所使用的主题,默认的主题是作者使用的landscape主题,如下所示。

  1. # Extensions
  2. ## Plugins: http://hexo.io/plugins/
  3. ## Themes: http://hexo.io/themes/
  4. theme: landscape

如果要修改主题,只需要将主题文件clone到themes目录下,并修改_config.yml配置文件即可。例如进入到hexo的themes目录下,再执行如下所示的指令。

  1. git clone git@github.com:wuchong/jacman.git

然后修改配置文件的theme参数为jacman。在官网上,作者列出了很多Hexo的主题,地址为https://github.com/hexojs/hexo/wiki/Themes。

大家可以在这里找到自己喜欢的主题,与上面的使用方法相同,只需要将主题clone到本地,再修改配置文件即可。

新建博客

站点全部准备完毕,最后也是最重要的一步,就是完善博客的内容。发布博客有两种方式,一种是通过命令行直接生成一个博客的模板,另一种是直接把Markdown文档拿来使用。

  • 命令行生成

直接输入如下指令,即可生成一篇新的文章。

  1. hexo hexo new testMyBlog
  2. INFO Created: ~/Documents/MD/hexo/source/_posts/testMyBlog.md

新生成的文章都会保存到/source/_posts目录下。打开自动生成的文档模板,内容如下所示。

  1. title: testMyBlog
  2. date: 2015-11-29 16:05:51
  3. tags:
  4. ---

这是生成文档的默认格式,这些元素都对应着页面上的显示信息。在分割线下面,就可以按照正常的Markdown格式进行写作了。

  • 文档拷贝

除了用自动生成的方式创建文档以外,也可以通过将现有Markdown文档拷贝过来的方式生成新的博客,因为Hexo使用的就是标准的Markdown解析。唯一需要注意的一点是,拷贝过来的文档最好加上前面Hexo自动生成的头,不然在页面显示上可能有问题。

生成博客

在新增或修改了博客文章之后,我们需要对原有的静态Html文件进行重新生成,才能发布到服务器上。输入如下所示的指令进行生成操作。

  1. hexo hexo generate

新的静态Html文件将生成到/public文件夹下。生成完毕之后,你就可以通过hexo server指令进行本地预览,或者直接通过hexo deploy指令进行发布,当使用hexo deploy指令之后,Hexo就会把所有的静态Html文件发布到Github Pages服务器中。这样当你输入最开始创建的那个repository的名字时,你就可以访问Hexo博客了。例如输入网址来访问笔者的Hexo博客——http://xuyisheng.github.io/,如图1.49所示。

自建博客平台 - 图10 图1.49 Hexo博客示例

快捷命令

Hexo常用的指令,如下所示。

  1. hexo new "postName" // 新建文章
  2. hexo new page "pageName" // 新建页面
  3. hexo generate // 生成静态页面至public 目录
  4. hexo server // 开启预览访问端口(默认端口 4000,'ctrl + c'关闭server)
  5. hexo deploy // 将.deploy 目录部署到服务器

其实这些命令都有对应的快捷命令,如下所示。

  1. hexo n == hexo new
  2. hexo g == hexo generate
  3. hexo s == hexo server
  4. hexo d == hexo deploy

基本上使用命令的首字母即可。

通过上面的配置,Hexo就基本配置完毕了。在这个基础之上,你可以根据官方文档上的介绍通过配置站点导航、访问计数、安装插件等方式来进一步完善你的博客。当然,写作不忘初心,博客只是一种形式,内容才是最重要的,万万不能因为追求博客界面效果的华丽,而忽视博客内容。

自建博客平台 - 图11写到这里,笔者不得不多说一句,不管使用哪种方式进行写作,都不能陷入一个工具怪圈,工具是用来帮助开发者提高效率的,不能因为选择工具而忽视了内容本身。笔者见过很多独立的博客,从一个平台切换到另一个平台,工具换了很多,但却没有多少实际的文章,这就本末倒置了。

Gitbook

除了博客这种平台以外,开发者还可以通过Gitbook创建自己的文集。文集可以是平时开发时的经验积累,也可以是开发、生活中的所感所想,只要勤于积累,这将是一笔不小的财富。

Gitbook正是这样一个非常好的本地、在线文库制作工具,通过Gitbook开发者可以非常方便地记录一切,它的网址为https://www.gitbook.com/。

Gitbook的安装、使用非常简单,在官网上下载相应的Gitbook editor或者使用在线版本即可,工具界面如图1.50所示。

自建博客平台 - 图12 图1.50 Gibook工具界面

笔者平时就使用Gitbook积累开发经验,并完成一些调研任务的记录,通过Gitbook可以让文章更加系统、有条理,在便于管理的同时慢慢积累素材。