渲染 JavaScript 代码块控制台输出

问题描述 投票:0回答:1

我想在 RMarkdown 中编写一些 JavaScript 并将结果打印到针织文档中。是否有一些简单的方法可以将内容呈现到文档中,例如与

console.log()
通话?我发现我可以创建新的
div
元素并将它们附加到文档的 DOM 中,但是,这需要大量样板作为通用解决方案。

例如假设我有以下代码块:

```{js}
function foo() {
   return "foo"
}

console.log(foo())
```

我想要一些像这样的输出块呈现在下面:

> foo

有什么想法吗?

javascript r r-markdown
1个回答
0
投票

听起来您正在请求在编织过程中评估 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();
```
© www.soinside.com 2019 - 2024. All rights reserved.