在ASIS;R Markdown块中初始化JS渲染器的推荐方式 [英] Recommended way to initialize JS renderer in 'asis' R Markdown chunk
本文介绍了在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
https://bookdown.org/yihui/rmarkdown-cookbook/results-asis.html#results-asis中现在更详细地记录了结果=‘ASIS’。它的目的是从R块生成原始选取内容。任何操作都必须导致文本输出,这隐含地意味着那些块中的任何R对象都不会真正发生任何变化,因为在KINIT_PRINGING内容时,CONINR不会进行调整(因为它会突出文本)
我想我不会使用result=‘asis’来cat()一个像htmlwidget这样的复杂R对象。您找到了解决方法,但可能会遇到其他问题。
由于该答案@艺惠点赞,提示使用htmlwidget
上的cat + asis
风险自负。
但是,我将亲自继续使用问题中提到的变通方法,因为只要它起作用,我发现它非常实用。
感谢@atusi&;@cderv提供的宝贵意见。
这篇关于在ASIS;R Markdown块中初始化JS渲染器的推荐方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文