前言
这次改动的主要目的是提供一个 oopre 的题面查看和数据下载的方式。正好借此机会进一步的了解 hexo 博客的构建机制,为未来的改动打下基础。
想要做的事儿
想法是开一个子页面 oopre,然后 index 就是一个介绍,给出每次作业的链接。然后其下的页面就是每次作业,再在每次作业最后加上一个下载数据链接即可。
关于 Hexo
这下我基本上是理解了 hexo 的构建思路。首先就是所有的东西都储存在 source 这个目录下(当然可以在 hexo 的 config 里面更改),然后渲染后的成品放在 public 目录下,最后 push 到 github 时,把 public 目录下的东西覆盖 .deploy_git 然后发布即可。所以实际上 github 仓库内容是和 .deploy_git 目录同步的,.deploy_git又是来自 public 的,public 则是由 source 渲染得到的。
下面重点说一下渲染过程。首先检查 hexo 的 config 下的 skip_render
变量,这个数组里面的内容是绝对不用渲染,会直接复制进 public 目录。(小贴士:** 表示递归遍历文件夹下所有文件和文件夹)然后其他在 source 目录下的文件均会被渲染。渲染方式是首先看 md 文件头部有没有 layout
变量,有 layout
的,在主题目录里的 layout
目录下找到对应的 layout 文件渲染,否则一律按照 posts 渲染。至于 source 目录里两个下划线开头的目录,显然有特殊用处的嘛……
理解这些简单 Hexo 渲染流程之后,魔改就比较简单了,虽然我还不是很会写网页……
关于这次的改动
这次的改动的话主要是新增了 oopre 相关的几个 ejs 文件。
- 用于 index 的
oopre.ejs
,这个主要功能是网页重定向,重定向至介绍 oopre 的那篇博客。 - 用于展示题面的
oopre_hw.ejs
,主要由post.ejs
复制而来,主要改动就是去除了一些不需要的判断语句,另外把内容页换成了oopre-detail-toc.ejs
。 _partial/oopre-detail-toc.ejs
,从_partial/post-detail-toc.ejs
复制而来。主要改动就是把_partial/post-detail.ejs
换成了_partial/oopre-detail.ejs
。_partial/oopre-detail.ejs
,改动主要是 tag 和 category 恒定为oopre
,然后超链接恒为/oopre
。