本文介绍了在ASIS;R Markdown块中初始化JS渲染器的推荐方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

"ASIS"块对于输出Markdown文档中的对象列表非常有用,请参阅以下示例:HighcharterDTLeaflet、.

但是,在上面的示例中,如果呈现器在前面的块中没有被调用过一次,那么对象列表将不会打印,因此它会被初始化:这是一个棘手的解决办法,我更多地是通过尝试/错误找到解决方案,而不是在文档中找到它。

这是一个可重现的问题,也发布在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渲染器的推荐方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-24 13:00