0x00 背景
一直想搭建一个自己的博客,之前在Aliyun虚拟主机上搭了一个WordPress MySQL的个人博客。后来维护成本太大,主机和域名都没有续费被回收了。最近再看别人在写,自己也想搞一个试试水。研究了几天,发现Hexo还真不错,所以就选了这个。
目前,博客搭建在coding.net上,使用万网的域名。
Hexo介绍
Hexo是一款基于Node.js的博客框架,可以将Markdown格式的文本渲染为HTML代码。所以,博客基本就是纯静态,维护相对方便。但是缺点也很明显——经常换编写环境使用不便,因为它的所有渲染代码都是在本地存储的。
0x01 选择域名和代码托管服务提供商
域名提供商是负责域名注册的服务机构,简称注册商,主要负责域名向域名管理局申请批准、域名维护更新、域名续费、域名解析等服务支持,选购域名需要找信誉比较好的服务商如卓汇互联,查询域名可以直接进入卓汇互联域名注册页面进行操作,域名种类较多,域名名称可选空间也较大。
主要的域名提供商,国外有Godaddy、NameCheap等;国内的主要就是万网(Aliyun),百度等。选择国外的域名提供商的好处在不用进行国内备案相关的手续,但是就是贵。Godaddy注册的域名首年优惠力度很大,但是续费的时候基本没有什么优惠了,基本100多一年。国内的万网基本首年几块到几十块的都有,续费基本在40以下;但是国内的政策还不明朗,有可能需要繁琐的备案手续。
代码托管服务提供上国外基本就是大家熟知的Github,国内就是coding.net(原Gitcafe)。选择国内的coding.net很简单,就是快。由于Github在国内没有服务器,所以同步代码和访问速度感人。
0x02 下载Hexo
Hexo是基于Node.js编写的,所以首先需要下载Node.js。使用命令
sudo apt-get install nodejs |
---|
Node.js默认使用的是国外的源,速度非常感人,所以需要我们切换到国内的源,这里我使用taobao的源。
npm config set registry http://registry.npm.taobao.org/ |
---|
使用npm来下载Hexo
sudo npm install -g hexo-cli |
---|
输入hexo,如果出现下列提示,则说明安装成功了。
Usage: hexo <command>Commands: clean Removed generated files and cache. config Get or set configurations. deploy Deploy your website. generate Generate static files. help Get help on a command. init Create a new Hexo folder. list List the information of the site migrate Migrate your site from other system to Hexo. new Create a new post. publish Moves a draft post from _drafts to _posts folder. render Render files with renderer plugins. server Start the server. version Display version information.Global Options: --config Specify config file instead of using _config.yml --cwd Specify the CWD --debug Display all verbose messages in the terminal --draft Display draft posts --safe Disable all plugins and scripts --silent Hide output on consoleFor more help, you can use 'hexo help [command]' for the detailed informationor you can check the docs: http://hexo.io/docs/ |
---|
如果显示缺少模块
0x03 创建Blog
使用命令创建一个博客环境
hexo init "名字" |
---|
cd进入这个目录,可以看到相关文件
~ ls_config.yml db.json node_modules package.json scaffolds source themes |
---|
博客的配置文件为_config.yml,配置文件的相关说明https://hexo.io/zh-cn/docs/configuration.html。
运行测试环境
hexo server |
---|
默认端口是4000,访问4000端口可以看博客的效果
虽然Hexo的默认主题也算好看,但是功能等其他方面可能不尽如人意。好在Hexo提供的很多第三方主题https://hexo.io/themes/。关于主题的安装方法按照作者提供的方法就好了。
0x04 部署到代码托管平台
在代码托管平台注册就不再详细阐述,主要说明如何创建一个项目。
1.Github上创建项目
首先选择New repository,然后在Repositiry Name中填写YourID.github.io,例如我的id是weaponx,则需要在Respository Name中填写weaponx.github.io。
2.Coding.net上创建项目
项目名称可以任意填写,一定选择公开不要选成私有了。
3.配置Hexo
修改Hexo的配置文件
deploy: type: git repo: coding: https://git.coding.net/YOURID/YOURRESPOSIROTY.git,master github: https://github.com/YOURID/YOURRESPOSITORY.github.io.git,master |
---|
然后使用命令同步上去即可
hexo deploy -g |
---|
0x05 将域名解析到代码托管平台
DNS服务提供商这里选择DNSPod。因为域名是在万网注册的,默认使用万网的DNS,所以需要切换到DNSPod。
在修改为非万网DNS中填写DNSPod提供的dns服务器。然后进入DNSPod管理页面添加网址,并添加CNAME解析。
1.解析到Github
在Github上添加域名解析,首先要在项目中创建一个文件CNAME,文件的内容为域名,以我的域名为例文件内容为
weaponx.site |
---|
然后在DNSPod中创建解析,记录类型选择CNAME,记录值选择YOURID.github.io,主机记录输入@。再添加一样的条目,主机记录输入*。 在这里解释一下@记录,意思就是空。用我的域名为例,@记录指的是weaponx.site。*记录是任意,可以把xxx.weaponx.site解析到我的Github Pages上。
到这,域名就可以正确的解析到Github pages上了。
2.解析到Coding.net
解析到Coding.net上就比较简单,只需要做一个简单的设置即可。
0x06 使用评论插件
因为我们的Hexo博客是纯静态的,所以评论需要依赖与评论服务提供商。主流的服务提供商有Disqus(国外),duoshuo(多说,国内)。因为一些大家知道的原因,Disqus已经访问不了了。其实这也是一种优势,可以过滤掉一些垃圾评论内容(广告),提高评论质量。
多说由于是国内的厂商,速度很快。但是经常大姨妈,而且没有有效的反垃圾措施。所以我暂时使用Disqus作为我的评论插件。
过程中踩过的坑
- 文章的摘要,在文章摘要上加一行代码
<!-- more --> |
---|
- 多个Tag需要这样表示
tags:- tag1- tag2- tag3 |
---|
而不是
tags: tag1, tag2, tag3 |
---|
- 代码高亮:通常在Markdown语法中代码高亮是使用Tab或者四个空格来表示,但是经过测试Hexo无法识别这种高亮方式,只能使用
```pythonimport osdef run(): print "Code Highlight test"if __name__ == "__main__": run()``` |
---|
- 每次提交会删除CNAME文件,在source文件夹下创建一个CNAME文件就好,404.html同理。