如何使用datacamp的教程包在xaringan slides中插入R练习?

How to use datacamp's tutorial package to insert R exercises in xaringan slides?

我最近发现 DataCamp's tutorial package 通过在 DataCamp 的学习界面中打开代码块,使 R Markdown 文档中的代码块具有交互性。我使用 tutorial::build_example() 生成了一个示例文件并对其进行编译以查看呈现的 html 文件的外观。它按预期工作。因为我想在 xaringan 幻灯片中使用此功能,所以我将 output: html_document 更改为 output: xaringan::moon_reader,现在我看到了:

我想知道为什么这在 xaringan 幻灯片中失败了,我该如何解决?

tutorial 适用于 rmarkdown 的 html_document 格式,其行为不同于 xaringan。我认为绕道而行并尝试通过 tutorial 包让它工作是不值得的。

最终,您只需要编写一些 HTML 并嵌入 datacamp-light.js:

设置一个包含 JS

的 HTML 文件

dc.html

<script async='async' src='https://cdn.datacamp.com/dcl-react.js.gz'></script>

并将其包含在您的 xaringan 项目的 YAML header 中:

.Rmd

output:
  xaringan::moon_reader:
    css: ["customtheme.css"]
    includes:
      in_header: "dc.html"

然后您可以使用相同的 SCT 等编写交互式练习,但使用 HTML 个块:

---
## DC

<div data-datacamp-exercise data-lang='r' data-height = 320>
<code data-type="sample-code">
 set.seed(123)
 # draw the winning numbers for this week
</code>
<code data-type="solution">
 set.seed(123)
 # draw the winning numbers for this week
 sample(1:49, size = 6)
</code>
<code data-type="sct">
 test_function("sample", args = c("x","size"))
</code>
</div>

请注意,键入代码会干扰 xaringan 键盘快捷键,因此您想禁用它们。