Closed stephen0316 closed 10 months ago
插件和swup不兼容
在script标签加个data-swup-reload-script
应该就行了
书单用的是某个 Hexo 插件插入的吗?能发一下链接吗?估计可以用 Filter 解决。
对,插件链接如下:https://github.com/mythsman/hexo-douban
---- 回复的原邮件 ---- | 发件人 | @.> | | 发送日期 | 2024年01月3日 15:16 | | 收件人 | @.> | | 抄送人 | stephen @.> , @.> | | 主题 | Re: [EvanNotFound/hexo-theme-redefine] [BUG] 豆瓣书单显示异常 (Issue #325) |
书单用的是某个 Hexo 插件插入的吗?能发一下链接吗?估计可以用 Filter 解决。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
是分页脚本没有加载导致的。我写了个脚本可以修复这个问题。
_config.yml
里把 douban
的 builtin
设为 true
,让修复脚本可以在豆瓣插件生成页面之后修改它们;npm install cheerio
安装 cheerio;scripts
目录(没有就新建)下新建 filter-douban-fix.js
(别的名称也可以);filter-douban-fix.js
里写如下代码,保存,重新生成站点。const cheerio = require('cheerio');
const config = hexo.config;
let doubanPagePaths = [];
const doubanBookConfig = config.douban.book;
const doubanMovieConfig = config.douban.movie;
const doubanGameConfig = config.douban.game;
const doubanSongConfig = config.douban.song;
if (doubanBookConfig && doubanBookConfig.path)
doubanPagePaths.push(doubanBookConfig.path);
if (doubanMovieConfig && doubanMovieConfig.path)
doubanPagePaths.push(doubanMovieConfig.path);
if (doubanGameConfig && doubanGameConfig.path)
doubanPagePaths.push(doubanGameConfig.path);
if (doubanSongConfig && doubanSongConfig.path)
doubanPagePaths.push(doubanSongConfig.path);
hexo.extend.filter.register('after_render:html', (htmlSrc, local) => {
if (doubanPagePaths.includes(local.page.path)) {
let $ = cheerio.load(htmlSrc);
$('.hexo-douban-pagination+script').attr('data-swup-reload-script', '');
return $.html();
}
return htmlSrc;
}, 20);
cheerio 是用来选择 HTML 文件里分页脚本的 script 标签的,如果自己匹配、替换的话,就不用安装,运行应该也会快一点点。
或者在 Redefine 配置里直接关闭单页模式 single_page
也可以,就不用再写脚本修了。
解决了哥们儿,我直呼泪目,谢谢!
解决了哥们儿,我直呼泪目,谢谢!
那可以关掉 issue 了。
提交 Issue 前检查清单
hexo clean
,问题仍然存在Bug 描述
首次进入书单/影单 页面无数据显示,每次需要手动刷新后才能正常显示
复现方法
点击“书单”进入页面,发现无数据展示
预期结果
进入页面就能正常加载显示
截图
电脑操作系统
macos
浏览器
Chrome
版本
120.0.6099.109
移动端设备
No response
移动端操作系统
No response
浏览器
No response
版本
No response
其他
No response