本文介绍了在ASIS;R Markdown块中初始化JS渲染器的推荐方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
"ASIS"块对于输出Markdown文档中的对象列表非常有用,请参阅以下示例:Highcharter、DT、Leaflet、.
但是,在上面的示例中,如果呈现器在前面的块中没有被调用过一次,那么对象列表将不会打印,因此它会被初始化:这是一个棘手的解决办法,我更多地是通过尝试/错误找到解决方案,而不是在文档中找到它。
这是一个可重现的问题,也发布在https://github.com/rstudio/rmarkdown/issues/1877:
---
title: "Test"
output:
html_document
---
```{r,echo=F}
library(DT)
library(rmarkdown)
library(purrr)
library(knitr)
df_list <- list("cars" = mtcars, "flowers" = iris)
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)
```
```{r}
# If this first initialization isn't run, tabs won't print
DT::datatable(data.frame())
```
# Test tabs {.tabset}
```{r, results='asis' }
imap(df_list, ~{
cat('## Subtab ',.y,'
')
cat('
')
DT::datatable(.x) %>%
htmltools::tagList() %>% as.character() %>% cat() })
```
推荐答案
我的问题已经由@cderv:
给出了答案https://github.com/rstudio/rmarkdown/issues/1877#issuecomment-679864674
由于该答案@艺惠点赞,提示使用htmlwidget
上的cat + asis
风险自负。
但是,我将亲自继续使用问题中提到的变通方法,因为只要它起作用,我发现它非常实用。
感谢@atusi&;@cderv提供的宝贵意见。
这篇关于在ASIS;R Markdown块中初始化JS渲染器的推荐方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!