xaringan演示文稿无法显示HTML小部件,即使使用提供的模板进行编译

4

在我的 xaringan 幻灯片中,应该可以使用的 HTML 小部件没有显示/渲染在幻灯片上。即使我运行提供的模板,也是如此。作为一个可重现的例子,当我运行:

---
title: "Presentation Ninja"
subtitle: "⚔<br/>with xaringan"
author: "Yihui Xie"
institute: "RStudio, PBC"
date: "2016/12/12 (updated: `r Sys.Date()`)"
output:
  xaringan::moon_reader:
    lib_dir: libs
    nature:
      highlightStyle: github
      highlightLines: true
      countIncrementalSlides: false
---

options(htmltools.dir.version = FALSE)

DT::datatable(
  head(iris, 10),
  fillContainer = FALSE, options = list(pageLength = 8)
)

我的幻灯片第二页只显示了这个: 问题的截图 我想在我的演示文稿中包含DT::datatable() 表格。目前它们可以成功地呈现为其他 RMarkdown 文档,如 ioslides_presentation 和 html_document。下面是我的会话信息:
sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur 10.16

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] DT_0.17.1

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.6        rstudioapi_0.13   knitr_1.30.4      servr_0.21        magrittr_2.0.1   
 [6] R6_2.5.0          rlang_0.4.10      fansi_0.4.2       stringr_1.4.0     tools_4.0.3      
[11] xfun_0.20         xaringan_0.19.1   sessioninfo_1.1.1 cli_2.2.0         withr_2.4.0      
[16] htmltools_0.5.1   crosstalk_1.1.1   assertthat_0.2.1  yaml_2.2.1        digest_0.6.27    
[21] crayon_1.3.4      later_1.1.0.1     htmlwidgets_1.5.3 promises_1.1.1    rsconnect_0.8.16 
[26] glue_1.4.2        evaluate_0.14     mime_0.9          rmarkdown_2.6     stringi_1.5.3    
[31] compiler_4.0.3    jsonlite_1.7.2    httpuv_1.5.5  

我刚刚更新了RStudio: 版本号为1.4.1103 © 2009-2021 RStudio,PBC "Wax Begonia" (458706c3, 2021-01-06) 适用于macOS。

或许这也有用:

> rmarkdown::pandoc_version()
[1] ‘2.11.2’

任何建议都将不胜感激!


1
我能够在我的Windows电脑上重现同样的问题。当使用xaringan的默认模板时,leaflet和DT都不像@vcannataro所报告的那样显示。然而,当我在我的M1芯片的MacBook Air上做完全相同的事情时,leaflet和DT都正常显示。我在Windows上运行版本0.15,在Mac上运行版本0.18,但我不认为这是版本问题,因为您在更近期的版本上。我会在GitHub存储库中创建一个新问题,关于这个问题我也觉得很奇怪。 - Ricky
1
@MauritsEvers 是的,目前为止除了leaflet和DT之外,其他所有内容都已正确呈现。此外,如果我将开头从 output: xaringan::moon_reader 改为 output: html_document ,那么HTML小部件就可以在标准HTML文档输出中完美呈现。 - vcannataro
1
@Ricky 跟进一下,你说的版本问题是正确的。我刚尝试使用 xaringan 0.15 和 0.19 进行编译 - 无论哪种方式都存在同样的问题。 - vcannataro
1
@vcannataro 非常奇怪。 我在Windows 10和MacOS上都没有问题。版本相同,除了RStudio版本是1.3.1093。 我需要在浏览器中打开幻灯片(而不是使用内部的RStudio查看器),才能正确渲染幻灯片。 - Maurits Evers
2
感谢您的建议,@Ricky。我已经在这里发布了:https://github.com/yihui/xaringan/issues/293 - vcannataro
显示剩余4条评论
1个回答

11
最近rmarkdown的更新(在版本2.6中)改变了如何将HTML小部件包含在输出文件中,以使用pandoc的原始HTML块。不幸的是,这个功能与xaringan使用的JavaScript markdown库不兼容。您可以通过设置来禁用此功能并解决xaringan幻灯片中htmlwidgets的问题。
options(htmltools.preserve.raw = FALSE)

这里是 rmarkdown 2.6 的相关新闻条目:

指定 htmltools::htmlPreserve() 在 pandoc >= v2.0 时使用 pandoc 的原始属性而不是保留标记。请注意,此选项仅适用于 htmltools >= 0.5.0.9003 版本才能产生预期效果。


你的建议节省了我很多时间。谢谢! - morteza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接