NexT问题改进

这里一定要注意,Next是不是更新到最新的版本。有可能下面的问题是版本老旧造成的。

新版本维护的地址是这个:https://github.com/theme-next/hexo-theme-next

主题分页的翻页箭头显示异常

捕获
修改代码的位置: themes\next\layout\_partials\pagination.swig
修改为:

1
2
3
4
5
6
7
8
9
10
11
{% if page.prev or page.next %}
<nav class="pagination">
{{
paginator({
prev_text: '<',
next_text: '>',
mid_size: 1
})
}}
</nav>
{% endif %}

中文目录不跳转

文章左侧的中文目录一直不能跳转也不能展开
浏览器按F12,点击目录链接会在控制台报错:Cannot read property 'top' of undefined
打开控制台,查看目录的的超链接标签,会看到 href 是一串乱码。
实际上直接点击这个超链接是可以跳转的,但是点目录却不行。这是因为标题 id 是中文,但是目录的连接是中文乱码,代码里头的 JQuery 选择器拿着乱码是没法找到对应 id 的标题的。
顺着控制台错误提示找到themes\next\source\js\src\post-details.js,找到第 75 行为目录绑定点击事件的方法,会看到:
捕获
targetSelector就是对应标题的 id,我们在他被塞到选择器之前重新编码一下:

1
2
// 对获取到的url进行重编码
targetSelector = decodeURI(this.getAttribute('href'))

然后

1
2
3
hexo clean 
hexo g
hexo s

重新跑一下,发现目录就正常了。