如何使用htmltools :: tagList使标题显示在RMarkdown目录中

时间:2017-03-30 17:17:56

标签: r knitr r-markdown htmlwidgets

我需要在RMarkdown文档的循环中生成多个htmlwidgets。这是使用htmltools::tagList完成的。以下代码段将生成HTML输出,其中包含2个2级标题和每个部分中的数据表。唯一的问题是我指定了toc: true但是虽然tags$h2(headers[i])将在页面上呈现2级标题,但这些标题不会被目录选中。有没有办法在TOC中获得这些标题?

---
output: 
  html_document:
    toc: true
---

## level 2 heading 0 - this one in TOC

```{r}
library(DT)
library(htmltools)

headers <- c("level 2 heading 1", "level 2 heading 2")
html_tags <- vector(mode = "list", length = 2*length(headers))
for (i in 1:length(headers)) {
  html_tags[[(2*i)-1]] <- tags$h2(headers[i])
  html_tags[[(2*i)]] <- list(list(datatable(iris)))
}

tagList(html_tags)
```

请注意,在下面的结果中,使用“##”生成的标题显示在内容列表中,但tagList调用的标题虽然在文档中正确呈现,但现在位于表中内容。

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个:

headers <- c("level 2 heading 1", "level 2 heading 2")

结果是:
enter image description here

也许这就是你真正想要的。

请记住:你应该避免{{1}} 如果您需要数百或数千个标题,这不是有效的,必须浪费太多时间。