更改Hexo的NexT主题的关于页面在新的页面打开

问题

在对NexT主题进行定制时,用impress.js做了一个炫酷的 ‘关于’ 页面,集成到侧边栏之后发现只能替换原来的界面打开,这时有两个方法可以解决

  • 在关于界面放一个Return按钮
  • 在主页打开关于页面时弹出新的窗口

方法1:要决定什么时候,在什么地方放按钮,如果在最后一页放按钮,用户可能会浏览到最后一页就返回了,看不到最后的overview的画面,这是不理想的。

所以采用第二种方法。这里要做的其实就是在<a>标签里加上 target=”_blank” 属性。关键在于找到Hexo在生成index页面时的模板代码。

解决

一开始我搜索了Hexo的目录的含义,知道了所有的模板都在layout目录下,进入layout目录下首先注意到的是_macro目录下的sidebar.swig,很明显就是侧边栏的布局啊,这里我花费了好多时间,去找生成about那行代码的语句,然而并没有找到。

后来竟然在_partials目录下的header.swig文件下找到。只需要在195行附近,给下面这条语句加个判断,更改:

1
<a href="{{ url_for(path) }}" rel="section">

1
2
3
4
5
{% if (itemName == "about") %}
<a target="_blank" href="{{ url_for(path) }}" rel="section">
{% else %}
<a href="{{ url_for(path) }}" rel="section">
{% endif %}

这里需要注意的是swig的语法,一开始这里的条件语句我想当然的写成了 java 的语法,导致 hexo g 生成错误,具体语法可以参开这里

写得好!朕重重有赏!