Hexo搭建备忘

2016-10-24 Meng Lei 更多博文 » 博客 » GitHub »

备忘

原文链接 http://menglei.tk/2016/10/24/hexo/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


关于Hexo

Hexo是一款轻量级的HTML静态博客生成器,由Node.js编写,支持Markdown撰写,运行速度快,可以一键部署到Github Pages等托管网站,同时支持插件,可以通过编写插件支持更加丰富的功能。

安装Hexo

Hexo基于Node.js编写,安装Hexo之前,需要首先确保正确安装了Node.js、npm和Git(参见Node.js官网Git官网),只要运行以下命令即可将Hexo安装到电脑中:

npm install hexo-cli -g

初始化

安装Hexo成功后,即可创建Hexo工程目录,执行以下命令:

hexo init demo
cd demo
npm install

创建成功后,所包含的目录结构以及功能说明如下:

  • _config.yml:网站配置信息。
  • packages.json:node_modules模块配置信息。
  • scaffolds:模板配置文件夹。
  • sources:用户资源,markdown和html会被render并保存至public文件夹供访问,其余文件被直接copy。其中_post文件夹中保存已发布的文章,_draft文件夹中保存草稿。
  • themes:主题文件夹。

配置

网站的所有配置信息保存在_config.yml文件中,可以视情况进行修改。

具体的配置说明可参见:https://hexo.io/zh-cn/docs/configuration.html。

申请Github Pages空间

在github上面创建一个和repository,名称为 .github.io,进入settings,选择options,下面有Github Pages的设置区域,可以选择默认的分支,并且能够自定义域名,这里我们将默认分支设置为master,同时添加自定义域名 menglei.tk ,添加自定义域名之后,下方 enforce https选项变得不可选,因为github无法对自定义域名提供https证书,此处我们可以通过其他方式来对https进行支持。这里填写完自定义域名之后,需要到域名的控制台,为其添加A记录,分别对应IP地址为 192.30.252.153 和 192.30.252.154 。

这样,所有访问自定义域名都会直接请求到该repo的master分支内根目录下的index.html文件。

部署

Hexo可以支持git、heroku、Rsync、OpenShift、FTPSync等多种部署方式,如果这里没有提供您所需要的部署方式,可以直接将生成的public文件夹中所有的文件复制到所需要的server root文件夹。

我们这里采用的是git部署方式,首先需要添加 hexo-deployer-git ,执行以下命令:

npm install hexo-deployer-git --save

然后在根目录下的_config.yml文件后面,增加以下配置信息:

deploy:
- type: git
  repo: <repo url>   //远程repo地址
  branch: <branch name>  //通过git提交到远程repo的分支
  message: <push message>  //提交信息
- type: git
  repo: <repo url2>  // 可以支持同时部署到多个远程repo

这里可以同时支持将其部署到多个repo中,也可以同时支持多种不同的repo类型。

Sitemap:

为了让搜索引擎更好的抓取网站内容,我们这里可以生成sitemap,首先需要执行:

npm install hexo-generator-baidu-sitemap --save   //生成百度sitemap
npm install hexo-generator-sitemap --save    //生成google sitemap

然后在根目录_config.yml文件末尾,添加以下配置信息:

sitemap:
  path: sitemap.xml
baidusitemap:
  path: baidusitemap.xml

这样,就可以通过 http://url/sitemap.xml 和 http://url/baidusitemap.xml 访问到网站的sitemap了,只要将以上地址提交到google和百度,即可加速搜索引擎抓取,优化网站的收录。

Feed

为了给用户提供订阅,可以生成Feed文件,首先要执行:

npm install hexo-generator-feed --save

然后在根目录_config.yml文件中,添加以下配置信息:

feed:
  type: atom
  path: atom.xml
  limit: 50
  hub: 

这样,就可以通过 http://url/atom.xml 访问到网站的订阅Feed了。

HTTPS配置

如果申请了Github Pages空间只好没有设置自定义域名,那么可以直接使用.github.io访问网站,并且可以启用enforce https选项强制所有用户使用https访问。但是设置自定义域名之后,必须采用一些其他方式,这里我们采用的是cloudflare免费CDN功能。

CloudFlare提供用户免费的CDN加速功能,并且支持HTTPS加速,所以,我们先申请一个cloudflare的账号,添加域名,然后到原域名供应商处将其dns服务器设置为cloudflare的dns服务器:kai.ns.cloudflare.com 和 naomi.ns.cloudflare.com 。然后将原来的dns record全都转移过来,同时,对于指向github pages的域名对应的两条A记录,启用CDN功能,这样,所有访问您github pages网站的请求,都会被cloudflare中转加速,免费的账户支持添加三条page rules,我们添加一条即可,配置域名,选择always use https,同时启用该条规则,这样,所有访问http的请求,都会被强制转向https,此处的https证书是cloudflare免费提供的,用户不必担心使用有效期,也不必承担费用。

同时,cloudflare还有很多高级功能可以免费使用,比如访问统计,防火墙,数据分析等,大家可以慢慢摸索。

Ending

至此,所有的配置工作都已经完成,可以愉快的进行写作了。