深入了解Hexo搭建博客的底层原理
前言
在趟过无数个坑,解决了无数个报错后,终于把这个博客整出来了。
现在回过头来,开始对hexo原理好奇起来。
优缺点
优点很明显啊,主题多,文件多(利于解决各种各样天花乱坠的报错),通过修改yaml配置文件来修改样式比较简单。
但是缺点一样很明显,bug是真的多(一步错步步错),每次发布文章都需要重新部署,没有一个后台管理系统(加上GitHub的海外服务器,简直让人欲仙欲死)。
基本原理
博客hexo生成的是静态页面,而Github pages 又支持静态页面的解析。因此二者一拍即合能够用来生成 html 拼合成博客。
Hexo
1.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
2.文件
├── node_modules: #依赖包-安装插件及所需nodejs模块。
├── public #最终网页信息。即存放被解析markdown、html文件。
├── scaffolds #模板文件夹。即当您新建文章时,根据 scaffold生成文件。
├── source #资源文件夹。即存放用户资源。
└── _posts #博客文章目录。
└── themes #存放主题。Hexo根据主题生成静态页面。
├── _config.yml #网站的配置信息。标题、网站名称等。
├── db.json: #source解析所得到的缓存文件。
├── package.json # 应用程序信息。即配置Hexo运行需要js包。
3.source就是数据库,以.md(markdown)格式存储文章,theme文件夹是主题文件(决定页面模板)。
4.部署流程:
hexo g:生成静态文件。将我们的数据和界面模板相结合生成静态文件的过程。Hexo(node.js程序)遍历主题文件中你的source目录(js、css、img等静态资源),建立索引,再根据索引生成由html、js、css、img建立的纯静态文件并放在public文件夹里。public就是你的博客了,而这些恰好能被gitpages识别。
hexo d:部署文件。主要是根据在_config.yml中配置的git仓库或者coding的地址,将public文件通过git方式push到上传到github或coding的指定分支,然后在根据pages服务呈现出页面。