r-markdown - 使用 Rmd 块代码样式编织 Markdown 代码块
问题描述
我有很多降价文件,每个都有很多代码块,请参见下面的示例。(它们通过 pandoc 从其他文件类型转换为这种格式)
我想把这些编成 Rmd 文件。现在,代码块没有装饰器。当我编织下面的文件时,没有代码语法样式/着色。我不想评估代码,我只想将它们打印出来,因此:knitr::opts_chunk$set(warning=FALSE, message=FALSE, cache=FALSE)
.
假设所有代码都是 MATLAB 代码,有没有我可以添加之类的东西:knitr::opts_chunk$set(code=MATLAB)
,以便它们都能获得 MATLAB 代码样式/着色?
我的代码块实际上都是 MATLAB 代码,因此 MATLAB stlying/coloring 会更有帮助,但任何代码样式都会很好地使输出的 HTML/PDF 等中的代码块更易于阅读。
---
title: matlab code in blocks
output: html_document
---
# RMD file with Markdown Code Blocks
```{r global_options, include = FALSE}
knitr::opts_chunk$set(warning=FALSE, message=FALSE, cache=FALSE)
```
## Example 1
Here is a code block A
fl_fig_wdt = 3;
fl_fig_hgt = 2.65;
figure('PaperPosition', [0 0 fl_fig_wdt fl_fig_hgt], 'Renderer', 'Painters');
x = rand([10,1]);
y = rand([10,1]);
scatter(x, y, 'filled');
grid on;
grid minor;
## Section 2
Here is a code block B
fl_fig_wdt = 5;
fl_fig_hgt = 5.65;
figure('PaperPosition', [0 0 fl_fig_wdt fl_fig_hgt], 'Renderer', 'Painters');
x = rand([20,1]);
y = rand([20,1]);
scatter(x, y, 'filled');
grid on;
grid minor;
End of file.
解决方案
如果您需要通用解决方案,则需要使用 Pandoc Lua 过滤器(我无法为您编写一个;请参阅您交叉发布的 Github 问题)。如果您只需要 HTML 输出,您可以使用 JavaScript 将类名添加到代码块中,例如,将此js
代码块添加到文档的末尾:
```{js, echo=FALSE}
document.querySelectorAll('pre').forEach(function(el) {
// the class name is the language name
// (I'm using R here, although it's not the right name)
if (!el.className) el.className = 'r';
});
```
输出如下所示:
推荐阅读
- javascript - 用于检查所有方法的 Sinon 测试在 lambda 中调用
- java - 编组大量对象给出 OutOfMemoryError
- elasticsearch - 在eclipse中编译elasticsearch源代码时如何排除x-pack编译
- python - 将 numpy 数组的切片视图传递给 cython - 复制发生在哪里?
- visual-studio - 适用于 Visual Studio 2019 的 SSDT?
- css - Vue路由器链接中的中心项目
- wcf - 将 ssl 应用于网站时 WCF 不起作用
- bash - 如何从bash中的扩展工具调用方法
- logstash - Logstash + Syslog 输入插件 VS Logstash + 文件输入插件 + Syslog 服务器
- reactjs - 有人可以帮我将代码笔转换为反应沙盒小提琴吗?