Hexo搭建备忘
原文链接 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
至此,所有的配置工作都已经完成,可以愉快的进行写作了。