正如您在这个示例站点中看到的,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。