Knitr 上的自定义语言引擎

Custom language engine on Knitr

我已经根据文档在 Knitr 上添加了自定义语言引擎。

require(knitr)
knit_engines$set(upper = function(options) {
  code <- paste(options$code, collapse = "\n")
  if (options$eval) 
    toupper(code) else code
})

当我向 Rmd 文件添加以下命令时,我可以 运行 RStudio 中的当前块。

```{upper}
Hello, **knitr** engines!
```.

你好,KNITR 引擎!

但是如果我尝试将整个文件编成 html 页,我将看不到分块代码的结果。我将在 R Markdown 选项卡上收到以下警告消息。

Warning message:
In get_engine(options$engine) :
  Unknown language engine 'upper' (must be registered via knit_engines$set()).

那么我如何注册引擎以便程序稍后可以看到它?

---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

knitr::knit_engines$set(upper = function(options) {
  code <- paste(options$code, collapse = "\n")
  if (options$eval) 
    toupper(code) else code
})
```

```{upper}
Hello, **knitr** engines!
```