rmarkdown html文档中折叠目录的次要级别

时间:2018-08-15 14:38:56

标签: r rstudio r-markdown

有人能在R markdown html文档的浮动目录中创建一个在目录中创建折叠第三或第二级结果标题的按钮的方法吗?我使用3级子标题进行图形描述,以便在目录中获得自动的“图形表”,但是有时候当有很多图形时,不想看到它们。

我想在toc_depth=3标头中使用yaml,并首先打开浮动TOC,并显示所有三个级别,但是可以选择单击某个位置,以便在TOC中仅显示2个级别。理想情况下,最好只显示一个级别,并有选择地扩展特定的顶级标题,使其包含第二级标题(然后是第三级,等等)。

1 个答案:

答案 0 :(得分:2)

好吧,我已经通过在RMarkdown文件底部添加一个小的javascript函数来使某事起作用。我不确定这是否适合用例!这是.Rmd文件的完整内容:

修改

仅在响应评论时,“附加”按钮添加到了折叠级别3标题中

---
output:
  html_document:
    toc: true
    toc_float:
      collapsed: true
---

# Chapter 1

## Section 1-1

### Figure 1-1-1

### Figure 1-1-2

# Chapter 2

## Section 2-1

### Figure 2-1-1

### Figure 2-1-2

---

Select the menu on the left to expand / collapse table of contents (TOC)
entries. Press button below to collapse all TOC except the top level headings.

<button id="btnCollapseHeading" onclick="collapseTOC()">Collapse sub-headings</button>

If you only want to collapse level 3 headings press this button.

<button id="btnCollapseLevel3" onclick="collapseLevel3()">Collapse Level 3 only</button>

<script>
function collapseTOC() {
  var x = document.getElementsByClassName("tocify-subheader");
  var i;
  for (i = 0; i < x.length; i++) {
      x[i].style.display = "none";
  }
}

function collapseLevel3() {
  var x = document.getElementsByClassName("tocify-subheader");
  var i;
  for (i = 0; i < x.length; i++) {
      if (x[i].getAttribute("data-tag") == "3") {
        x[i].style.display = "none";
      }
  }
}

</script>

我还添加了一个示例,可以在https://github.com/markdly/rmd-toc-button

进行尝试