以编程方式在rmardown中为各种语言创建代码段

以编程方式在rmardown中为各种语言创建代码段,r,r-markdown,R,R Markdown,我试图通过提供的参数以编程方式创建代码段,但要保持目标编程语言的动态性 我尝试的是: 下列的 根据Martin的评论,我知道我可以使用opts: --- title: "xx" output: html_document params: code: list(language = "SQL", code_string = "SELECT * FROM tbl LIMIT 15") --- ```{r setup, incl

我试图通过提供的参数以编程方式创建代码段,但要保持目标编程语言的动态性

我尝试的是: 下列的
根据Martin的评论,我知道我可以使用opts:

---
title: "xx"
output: html_document
params:
  code: list(language = "SQL", code_string = "SELECT * FROM tbl LIMIT 15")
---
   

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


```{r, results = 'asis', echo = F}
chunks <- eval(parse(text = params$code))
hook <- knitr::hooks_html()$source
opts <- knitr::opts_chunk$get()

opts$highlight <- FALSE
code_string <- chunks$code_string
cat(hook(code_string, options = opts))

```

首先,代码中有一些错误。首先解析输出参数,就像我在另一个问题上回答的那样:chunks您是对的,谢谢。我添加了一个自我回答,以防有人需要它。或者当然会投票接受你的答案。
---
title: "xx"
output: html_document
params:
  code: list(language = "SQL", code_string = "SELECT * FROM tbl LIMIT 15")
---
   

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


```{r, results = 'asis', echo = F}
chunks <- eval(parse(text = params$code))
hook <- knitr::hooks_html()$source
opts <- knitr::opts_chunk$get()

opts$highlight <- FALSE
code_string <- chunks$code_string
cat(hook(code_string, options = opts))

```