将类添加到knitr生成的代码块

时间:2014-01-09 06:47:10

标签: css r knitr rstudio r-markdown

当我通过the RWordPress package将我的R降价文件编织为HTML时,<pre><code>标签的格式因其他样式/插件而中断(我认为{{3}是最大的罪魁祸首,但我不愿意放弃它)。一个简单的解决方案可能是为Knitr生成的每个<pre><code>标记添加一个类,以便可以使用一些CSS单独设置样式,但我无法确定一种简单的方法来执行此操作。任何Knitr专家都知道如何自动完成这项工作吗?如果它们同样简单,欢迎使用其他解决方案。

编辑:为了澄清,我认为我需要做的是覆盖render_html()生成的默认'source'钩子并添加一个新的标签,但是我通过阅读Crayon syntax highlighterthe documentation努力弄清楚如何解决问题。

1 个答案:

答案 0 :(得分:0)

您可以在Rmd文档中使用jQuery(将呈现为HTML),以便为每个源代码块添加一个类:

<script>
$(document).ready(function () {
    $('pre.r').addClass('yourClass');
});
</script>

此代码段将CSS类.yourClass添加到已加载类<pre>的每个.r元素。

如果要修改这些元素的<code>子元素,请使用

<script>
$(document).ready(function () {
    $('pre, .r').children('code').addClass('yourClass');
});
</script>

从这里开始,由您决定如何使用CSS设置yourClass代码块的样式。