静态博客搭建有简单有复杂,纠结了很久。最开始是想直接用hexo部署在GitHub Page上,但是说中国访问速度不佳,最后放弃了。搜索再三,选择了netlify,听说中国地区是从日本服务器访问,速度不错。然后考虑怎么中英双语发布,想了很久,于是决定用最简单的方法,搭建两个站点,用不同的域名,默认是英语。最后的采用了下面这张解决方案,用hexo作为生成引擎,用GitHub作为存储,用netlify作部署和发布。
- Hexo:一个快速、简洁且高效的博客框架,使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
- Github: 通过Git进行版本控制的软件源代码托管服务
- Netlify: 一家位于旧金山的云计算公司,为静态网站提供托管和无服务器的后端服务。
Hexo
首先安装Node.js和Git
完成之后呢,就可以使用 npm 安装 Hexo1
npm install -g hexo-cli
然后就是在想要的目录下初始化Hexo的目录结构,会创建一个新目录1
2
3hexo init blog
cd blog
npm install
然后输入hexo server就可以打开浏览器http://localhost:4000/访问网页了
然后就是对网站进行一下个性化,主要在_config.yml的文件里,有标题,副标题,作者,语言(zh-CN)等信息。
接着是下载主题,git clone https://github.com/theme-next/hexo-theme-next themes/next然后把项目配置文件的主题选项改为next。
由于默认的生成模板没有分类,所以要添加上。打开scaffolds/post.md,加上categories: 但是呢,这个时候url里面就会出现中文,我们要把其映射到英文。打开项目的_config.yml文件,对应添加就好。冒号前面是分类名称,后面是路径。1
2
3
4
5
6
7# Category & Tag
default_category: uncategorized
category_map:
编程: programming
生活: life
其他: other
tag_map:
至于写日志也很简单hexo new “日志名”,就可以在source/_posts下找到,打开编辑就行
分类只能写一个,但是标签可以写多个,格式是tages: [标签1,标签2,…标签n]
Github
首先创建两个仓库,blog和blog_en,分别用于存放中文博客和英文博客。
由于Hexo会自动创建.gitignore,所以也不用操心会上传不需要的文件。1
2
3
4git add .
git commit -m "Hello Netlify"
git remote add origin <your repo url>
git push origin master
也可以用GitHub Desktop来操作
Netlify
首先是授权允许读取GitHub的仓库,选择对应的仓库。
然后Netlify会自动检测到是用hexo发布的,会自动填上发布参数。如果没有填上,Build command填hexo generate,Publish directory 填入 public/
点部署后,它就会开始部署,稍等一下可以看到它的log日志,没什么问题的话,会显示成功部署。然后就可以通过它提供的二级域名进行访问xxxx.netlify.com
我由于有自己的域名,因此就绑定了自己的域名。修好好dns的cname纪录后,过一会就能由Let’s Encrypt提供https加密。
参考:Hexo博客利用Netlify升级为HTTPS