自建博客平台
自建博客平台,实际上是非常有技术含量的一件事。它不仅需要开发者对Web、开发语言、网络有足够的了解,同时还需要对平台搜索、维护等具有一定的经验。因此如果你是一个爱折腾的开发者,那么自建博客平台一定是你最好的选择。
目前市面上使用最广的自建博客平台,基本上分为WordPress阵营和脚本语言阵营。
WordPress
WordPress,是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设博客平台。WordPress是目前市面上使用最广的自建博客平台之一,拥有非常多的模板、插件和教程,用户可以利用WordPress在很短的时间内搭建属于自己的博客平台。
图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/。
图1.41 Jekyll
图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让非技术员工也能方便地使用。
图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。
图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或者从官网上下载安装包的方式都可以进行安装。
安装完毕之后,打开终端,检验是否安装正确。
- ➜ ~ node -v
- v4.2.1
- ➜ ~ npm -v
- 2.14.7
- ➜ ~ git --version
- git version 2.6.2
检测版本号正确之后,即表示环境配置成功。
安装Hexo
创建一个目录,进入到该目录中,执行以下指令。
- npm install -g hexo-cli
由于国内网络问题,可能该过程会比较慢,所以需要耐心等待,或者也可以更换国内的镜像源下载。
初始化站点
创建一个目录hexo(你也可以改为喜欢的名字),然后执行以下指令。
- ➜ MD hexo init hexo
- 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等待安装完成即可。
本地部署测试
在整个配置完成之后,打开终端,输入以下指令即可运行本地测试服务。
- ➜ 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所示。
图1.45 Hexo示例
如果看见了这个页面,就说明你的Hexo已经基本搭建完成了。再打开hexo文件夹,其基本目录结构如下。
- ➜ hexo tree -L 2
- .
- ├── _config.yml
- ├── db.json
- ├── node_modules
- │ ├── hexo
- │ ├── hexo-generator-archive
- │ ├── hexo-generator-category
- │ ├── hexo-generator-index
- │ ├── hexo-generator-tag
- │ ├── hexo-renderer-ejs
- │ ├── hexo-renderer-marked
- │ ├── hexo-renderer-stylus
- │ └── hexo-server
- ├── package.json
- ├── public
- │ ├── 2015
- │ ├── archives
- │ ├── css
- │ ├── fancybox
- │ ├── index.html
- │ └── js
- ├── scaffolds
- │ ├── draft.md
- │ ├── page.md
- │ └── post.md
- ├── source
- │ └── _posts
- └── themes
- └── landscape
- 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所示。
图1.46 github.io地址
3.修改配置文件——_config.yml。这个配置文件在前面创建的hexo目录的根目录下面,这里配置了整个站点的信息,打开_config.yml文件,如图1.47所示。
图1.47 Hexo配置文件
整个配置文件的配置方法都很简单,命名一目了然,即使遇到你不了解的配置,你也可以在官网上找到详细的解释(https://hexo.io/zh-cn/docs/configuration.html),如图1.48所示。
图1.48 Hexo文档
唯一需要注意的一点是最后Deployment的配置,这里是配置如何部署到服务器上。如果你使用的是Github,那么可以参考笔者的配置,如下所示。
- # Deployment
- ## Docs: http://hexo.io/docs/deployment.html
- deploy:
- type: git
- repository: git@github.com:xuyisheng/xuyisheng.github.io.git
- branch: master
只需要将对应的用户名修改为你自己的用户名即可。
在配置文件中,可以设置Hexo站点所使用的主题,默认的主题是作者使用的landscape主题,如下所示。
- # Extensions
- ## Plugins: http://hexo.io/plugins/
- ## Themes: http://hexo.io/themes/
- theme: landscape
如果要修改主题,只需要将主题文件clone到themes目录下,并修改_config.yml配置文件即可。例如进入到hexo的themes目录下,再执行如下所示的指令。
- git clone git@github.com:wuchong/jacman.git
然后修改配置文件的theme参数为jacman。在官网上,作者列出了很多Hexo的主题,地址为https://github.com/hexojs/hexo/wiki/Themes。
大家可以在这里找到自己喜欢的主题,与上面的使用方法相同,只需要将主题clone到本地,再修改配置文件即可。
新建博客
站点全部准备完毕,最后也是最重要的一步,就是完善博客的内容。发布博客有两种方式,一种是通过命令行直接生成一个博客的模板,另一种是直接把Markdown文档拿来使用。
- 命令行生成
直接输入如下指令,即可生成一篇新的文章。
- ➜ hexo hexo new testMyBlog
- INFO Created: ~/Documents/MD/hexo/source/_posts/testMyBlog.md
新生成的文章都会保存到/source/_posts目录下。打开自动生成的文档模板,内容如下所示。
- title: testMyBlog
- date: 2015-11-29 16:05:51
- tags:
- ---
这是生成文档的默认格式,这些元素都对应着页面上的显示信息。在分割线下面,就可以按照正常的Markdown格式进行写作了。
- 文档拷贝
除了用自动生成的方式创建文档以外,也可以通过将现有Markdown文档拷贝过来的方式生成新的博客,因为Hexo使用的就是标准的Markdown解析。唯一需要注意的一点是,拷贝过来的文档最好加上前面Hexo自动生成的头,不然在页面显示上可能有问题。
生成博客
在新增或修改了博客文章之后,我们需要对原有的静态Html文件进行重新生成,才能发布到服务器上。输入如下所示的指令进行生成操作。
- ➜ hexo hexo generate
新的静态Html文件将生成到/public文件夹下。生成完毕之后,你就可以通过hexo server指令进行本地预览,或者直接通过hexo deploy指令进行发布,当使用hexo deploy指令之后,Hexo就会把所有的静态Html文件发布到Github Pages服务器中。这样当你输入最开始创建的那个repository的名字时,你就可以访问Hexo博客了。例如输入网址来访问笔者的Hexo博客——http://xuyisheng.github.io/,如图1.49所示。
图1.49 Hexo博客示例
快捷命令
Hexo常用的指令,如下所示。
- hexo new "postName" // 新建文章
- hexo new page "pageName" // 新建页面
- hexo generate // 生成静态页面至public 目录
- hexo server // 开启预览访问端口(默认端口 4000,'ctrl + c'关闭server)
- hexo deploy // 将.deploy 目录部署到服务器
其实这些命令都有对应的快捷命令,如下所示。
- hexo n == hexo new
- hexo g == hexo generate
- hexo s == hexo server
- hexo d == hexo deploy
基本上使用命令的首字母即可。
通过上面的配置,Hexo就基本配置完毕了。在这个基础之上,你可以根据官方文档上的介绍通过配置站点导航、访问计数、安装插件等方式来进一步完善你的博客。当然,写作不忘初心,博客只是一种形式,内容才是最重要的,万万不能因为追求博客界面效果的华丽,而忽视博客内容。
写到这里,笔者不得不多说一句,不管使用哪种方式进行写作,都不能陷入一个工具怪圈,工具是用来帮助开发者提高效率的,不能因为选择工具而忽视了内容本身。笔者见过很多独立的博客,从一个平台切换到另一个平台,工具换了很多,但却没有多少实际的文章,这就本末倒置了。
Gitbook
除了博客这种平台以外,开发者还可以通过Gitbook创建自己的文集。文集可以是平时开发时的经验积累,也可以是开发、生活中的所感所想,只要勤于积累,这将是一笔不小的财富。
Gitbook正是这样一个非常好的本地、在线文库制作工具,通过Gitbook开发者可以非常方便地记录一切,它的网址为https://www.gitbook.com/。
Gitbook的安装、使用非常简单,在官网上下载相应的Gitbook editor或者使用在线版本即可,工具界面如图1.50所示。
图1.50 Gibook工具界面
笔者平时就使用Gitbook积累开发经验,并完成一些调研任务的记录,通过Gitbook可以让文章更加系统、有条理,在便于管理的同时慢慢积累素材。
