【问题标题】:Adding a class to code blocks generated by knitr向 knitr 生成的代码块添加类
【发布时间】:2014-01-27 14:23:45
【问题描述】:

当我通过 the RWordPress package 将我的 R markdown 文件编入 HTML 时,<pre><code> 标记的格式由于其他样式/插件而中断(我认为 Crayon syntax highlighter 是最大的罪魁祸首,但我'我不愿意放弃它)。一个简单的解决方案可能是为 Knitr 生成的每个 <pre><code> 标签添加一个类,以便它们可以使用一些 CSS 单独设置样式,但我无法确定一种简单的方法来做到这一点。有没有 Knitr 专家知道如何自动完成这项工作?如果其他解决方案同样简单,欢迎使用。

编辑:为了澄清,我认为我需要做的是覆盖render_html()生成的默认“源”钩子并以这种方式添加一个新标签,但我通过阅读the documentationthe examples 努力弄清楚如何做。

【问题讨论】:

  • 我想我得到了你的问题..但仍然不清楚。你不能提供一个示例代码或小提琴..?

标签: css r knitr rstudio r-markdown


【解决方案1】:

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

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

这个 sn-p 将 CSS 类 .yourClass 添加到每个已经带有类 .r&lt;pre&gt; 元素。

如果您想修改这些元素的 &lt;code&gt; 子元素,请使用

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

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

【讨论】:

  • 不是你想要的?
猜你喜欢
  • 1970-01-01
  • 2013-09-22
  • 2018-05-24
  • 2019-07-06
  • 2014-03-17
  • 2014-03-19
  • 2013-06-12
  • 1970-01-01
  • 2022-11-11
相关资源
最近更新 更多