我想在 RMarkdown 中编写一些 JavaScript 并将结果打印到针织文档中。是否有一些简单的方法可以将内容呈现到文档中,例如与
console.log()
通话?我发现我可以创建新的 div
元素并将它们附加到文档的 DOM 中,但是,这需要大量样板作为通用解决方案。
例如假设我有以下代码块:
```{js}
function foo() {
return "foo"
}
console.log(foo())
```
我想要一些像这样的输出块呈现在下面:
> foo
有什么想法吗?
听起来您正在请求在编织过程中评估 javascript,然后将结果传递给 pandoc 进行转换。
因此,您需要注册一个自定义编织引擎来评估代码并返回结果。这是使用
{chromote}
包的示例:
---
title: "Custom JS Knitr"
output: html_document
date: "2024-04-25"
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
knitr::knit_engines$set(my_js = function(options) {
code <- paste(options$code, collapse = "\n")
b <- chromote::ChromoteSession$new()
out <- b$Runtime$evaluate(code)$result$value
knitr::engine_output(options, options$code, out)
})
```
```{my_js}
function foo() {
return "foo"
};
foo();
```