#r #r-markdown #hugo #blogdown
#r #r-markdown #хьюго #blogdown
Вопрос:
Как вы можете видеть на этом примере сайта, тема hugo clarity имеет сворачивание собственного кода, копирование кода и номер строки. Но это не будет работать с блоками кода rmarkdown.
Блоки кода в этом примере сайта заключены следующим образом:
«html
## код идет сюда ##
</html> «
в то время как блоки кода rmarkdown заключены в:
<pre class=»r»><code>
## код идет сюда ##
</code>
Я предполагаю, что я должен что-то изменить в code.js
(см. Здесь ), чтобы заставить его работать с блоками кода rmarkdown, но я не знаю, что.
Идеи?
Комментарии:
1. разве rmarkdown не выводит данные в markdown в blogdown?
2. @AbdessabourMtk .html
3.Я просмотрел в
code.js
файле, что эта строка используется для полученияcode
тегов подсветки синтаксиса, тот факт, что rmarkdown выводит толькоpre
то, что его содержимое должно быть заключено вcode
тег, т.е. дляhtml
<code class="language-html" data-lang="html" data-height="157px" style="max-height: initial;">
4. Я предполагаю, что язык может быть выведен из класса pres
Ответ №1:
Я думаю, что это позволит обойти проблему, хотя редактирование файлов темы — это не выход, редактирование функции в строке 63 — это та, которая выбирает блоки кода, которые имеют классы и не имеют noClass
класса, редактирует фильтр, чтобы принимать те, у которых родительские узлы имеют класс, затемдобавление имени класса к дочернему элементу и data-lang
атрибуту:
function codeBlocks() {
const markedCodeBlocks = elems('code');
const blocks = Array.from(markedCodeBlocks).filter(function(block){
return (hasClasses(block) amp;amp; !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
which превращается .Rmd
в .md
передачу ответственности за генерацию html
хьюго.
Комментарии:
1. Вам удалось воспроизвести это? Здесь не сработало. Я также просматриваю этот файл css . Может быть, можно добавить r, python, любые классы там?
2. @AlbersonMiranda Я бы предложил использовать hugodown другой пакет, который в основном превращает rmarkdown в простой markdown это лучшее решение, чем изменение файлов или изменение расширения на
.Rmarkdown