整理思路,总结问题,剖析原理
Hexo + Git + Page = A Blog
搭建步骤
安装配置 Hexo 翻看 Hexo文档 按照文档要求,安装 Git Node.js 需要掌握 Git 文档 的一些基本命令和原理
准备GitHub/Gitee 仓库 将建好的 Hexo 工作目录 push 到仓库中 推荐使用一键部署
打开 GitHub/Gitee 的 Page 功能 这步需要注意:
建立库的时候最好使用默认用户名建立的方法
GitHub 默认 <UserName>.github.io
gitee 默认 UserName
这样的好处是在部署之后,得到的 URL 是默认在根目录下的,如果使用其他的仓库名字,会在根目录后面多一个分级,并且,GitHub 会在 deploy 之后创建一个新的分支,以上十分不方便管理和设置。官方其实是推荐将 Hexo 工作目录也 push 到 GitHub 上,然后 page 部署到另一个分支上。
如果你使用了其他的名字建立库,需要在 Hexo 的 config.xml 中配置 URL 的 root ,不然会导致页面的CSS 加载不出来,因为 CSS 文件的导入路径出错。
Gitee 的好处是,部署速度快,访问稳定,但是每次部署完之后,需要手动更新 page;GitHub 的好处是自动化部署,但是访问可能会被墙。
自定义主题,调试 Hexo 上述步骤完成就基本可以使用了,为了美化界面,推荐使用第三方主题 NeXT NeXT 快速上手 功能强大,我主要使用 Schemes 和 支持数学公式的 Mathjax NeXT 配置官方文档
浅谈几个原理
Hexo 是一种博客框架,通过 render 解析文章,快速的生成 html 文件,放到 Web 服务器上,便是一个静态网页。
Hexo 一键部署的原理:Hexo 将 public 文件下的内容 push 到 config 中指定的远程仓库,通过远程仓库的 page 服务来完成一个静态资源在 web 服务器上的部署。
For 使用 Git 管理站点目录的用户
由于 Hexo 的部署默认使用分支
master
,所以如果你同时正在使用 Git 管理你的站点目录,你应当注意你的部署分支应当不同于写作分支。 一个好的实践是将站点目录和 Pages 分别存放在两个不同的 Git 仓库中,可以有效避免相互覆盖。 Hexo 在部署你的站点生成的文件时并不会更新你的站点目录。因此你应该手动提交并推送你的写作分支。官方的好处是,你可以随时随地,从 GitHub master 分支上 pull 下你的 Hexo 工作目录,修改发布文章之后,在 push 回去,并且 deploy 到其他分支上,更新你的博客。这样你本地就根本不需要保存 Hexo 的工作目录。 在不使用一键部署的时候,通过 Travis CI 在 Hexo 工作目录 push 到 GitHub 的 master 分支的同时解析文章,将生成的 public 文件 push 到 GitHub 的另一个分支上。
总结经验
多看官方文档,官方文档上不是很清楚的地方,可以去按照自己的推测来尝试,整个过程遇到三次问题:
- 一开始我没有选择使用一键部署,尝试的是官方的 GitHub 配置部署,但是多次尝试都失败了,具体错误原因我并没有去仔细分析,因为我不是很了解前端知识,不理解 Travis CI 的具体作用。
- 第一次部署完毕之后的页面,没有 CSS 格式,原因是我建库的时候没有使用推荐的 UserName 导致需要重新配置 config 中的 URL 和 ROOT,如果配置不对,会导致 CSS 文件的路径错误,所以页面没有 CSS 样式。
- 在配置支持数学公式的 Mathjax 时,发现本地调试的数学公式可以显示,但是部署后的无法正确显示,发现是其对应的 js 文件没有导入,一开始排查了很久都没有结果,最后发现 Gitee 部署的页面没显示公式,GitHub 的显示公式,原因是 Gitee 的 page 需要手动更新。
对前端的 Node.js 不是很了解,给我的感觉是类似 Maven 可以管理各种前端的 js 包,还是需要继续学习一些前端的知识。