Closed TTsdzb closed 1 year ago
请您执行 hexo clean
。
hexo 不会监听 script 中的变化,而新版折叠的 DOM 修改被放入了 script 中。
请您执行
hexo clean
。hexo 不会监听 script 中的变化,而新版折叠的 DOM 修改被放入了 script 中。
这个试过了,没有影响。
我推测应该跟那个报错有关,script 在尝试修改 DOM 时遇到错误终止了,这也能解释为什么菜单之类的也用不了。
所以是 hexo g
的时候就报错了?
所以是
hexo g
的时候就报错了?
不是,是访问的时候报错,在 DevTools 控制台。
hexo serve
然后随便访问一个有代码块的文章就报这个错。
貌似部署了也会报。
我分析一下,后端没问题, 但是前端寄了, 这说明后端根本没 work 阿西,不懂
我刚看了一下报错是 getElement
找不到 .code-copy
元素
(虽然但是还是不知道为什么会没有这个元素 o_o ....
前端报的错误根本没用,问题出在后端没有 work
您可以试试在 themes\arknights\scripts\filters\codes.js 的第 24 行下添加点东西:
function doAsCode(item) {
console.log("!")
// ......
}
执行 hexo cl && hexo g
看是否有输出
是有输出的
您可以试试在 themes\arknights\scripts\filters\codes.js 的第 24 行下添加点东西:
function doAsCode(item) { console.log("!") // ...... }
执行
hexo cl && hexo g
看是否有输出
这个函数本身应该没问题,我试了在生成的页面里手动替换是有折叠的
hexo.extend.filter.register('after_post_render', data => {
const mermaid = hexo.theme.config.mermaid.enable
let codeBlocks = data.content.match(
mermaid?
/<figure[\S\s]*?highlight[\S\s]*?\/figure>/g:
/<figure[\S\s]*?highlight(?! mermaid)[\S\s]*?\/figure>/g);
if (codeBlocks !== null) {
let processed = Array.from(codeBlocks, item => {
if (item.match('.mermaid') !== null) {
return doAsMermaid(item);
} else {
return doAsCode(item);
}
})
for (let i in processed) {
data.content = data.content.replace(codeBlocks[i], processed[i])
}
console.log(data.content); // 此处可以看出替换成功了
}
});
可能是这里的问题,替换了以后替换完的 data 没返回上层
我去查了 hexo 文档,
草真的要返回
鉴定为 JS 特性 我这边不返回没事…… /kk
我照着文档加了返回,但是还是不行……
hexo.extend.filter.register('after_post_render', data => {
const mermaid = hexo.theme.config.mermaid.enable
let codeBlocks = data.content.match(
mermaid?
/<figure[\S\s]*?highlight[\S\s]*?\/figure>/g:
/<figure[\S\s]*?highlight(?! mermaid)[\S\s]*?\/figure>/g);
if (codeBlocks !== null) {
let processed = Array.from(codeBlocks, item => {
if (item.match('.mermaid') !== null) {
return doAsMermaid(item);
} else {
return doAsCode(item);
}
})
for (let i in processed) {
data.content = data.content.replace(codeBlocks[i], processed[i])
}
+ return data;
}
});
可能别的哪里还有问题……
调好了…优先级要设为 9
否则就不生效
如题,虽然是最新版本,但是现在代码块还是这样的:
另外浏览器控制台会报两个错误:
![控制台报错](https://user-images.githubusercontent.com/62687036/178508328-213a6879-fe6b-4e3b-bbf0-d0bf39666bc5.png)
一旦报这个错,跟着鼠标走的圈圈和左侧栏折叠之类的靠 js 的功能也就一起失效了。我看了一下好像你那里(https://ark.theme.yueplus.ink/)也会报这个错。只有有代码块的文章会报错。
package.json
_config.yml
_config.arknights.yml