r-Blogdown:使用Clarity主题实现代码折叠



正如您在这个示例站点中看到的,hugo clearance主题具有本地代码折叠、代码复制和行号。但它不适用于rmarkdown代码块。

该示例站点中的代码块被封装为:

``html
##代码位于此处##
<html>```

而rmarkdown代码块被封装为:

<pre class=";r〃>lt;代码>
##代码位于此处##
<代码>

我的猜测是,我应该更改code.js中的某些内容(请参阅此处(,以便使其与rmarkdown代码块一起工作,但我不知道是什么。

想法?

我认为这将解决问题,尽管编辑主题文件不是解决问题的方法,但编辑第63行中的函数是选择代码块的函数,这些代码块具有类,但没有noClass类,编辑过滤器以接受那些具有父节点的具有类,然后将className添加到子节点和data-lang属性:

function codeBlocks() {
const markedCodeBlocks = elems('code');
const blocks = Array.from(markedCodeBlocks).filter(function(block){
return (hasClasses(block) && !Array.from(block.classList).includes('noClass')) || hasClasses(block. parentNode);
}).map(function(block){
if(!hasClasses(block)){
block.className = block.parent.ClassName;
block.dataset.lang = block.className;
}
return block
});
return blocks;
}

编辑:更好的解决方案是使用hugodown,将.Rmd转换为.md,将生成html的责任留给hugo。

最新更新