如何在R书本中折叠逐字记录文本(非代码)?

时间:2018-06-28 10:12:22

标签: r-markdown folding bookdown verbatim

在我的文档中,我想使用```块显示一些信息,例如:

```
bruin@c7 ~ $ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
bruin@c7 ~ $
```

对于较大的输出块,我想将它们折叠。怎么做?在网上搜索似乎所有相关主题都是关于 code 折叠的,但是我要折叠的不是任何类型的代码,只是简单的文本...

谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个很容易实现自己的方法:

enter image description here

您可以在以下可复制的RMD文档中找到所需的所有代码:

---
title: "Hide Verbatim Blocks"
author: "Martin Schmelzer"
date: "June 22, 2018"
output: html_document
---

<style>
.fold-btn { float: right; }
</style>

<script type="text/javascript">
$(document).ready(function() {
  $(".fold").prepend("<button class=\"fold-btn\">Unfold</button>");
  $(".fold").children("code").toggle();
  $(".fold-btn").on("click", function() {
    if($(this).text() === "Fold") {
      $(this).text("Unfold");
    } else {
      $(this).text("Fold");
    }
    $(this).next("code").toggle("linear");
  })
});
</script>

# Rmd file

```{fold}
bruin@c7 ~ $ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
bruin@c7 ~ $
```

在JS部分中,我们仅向每个标记有类fold的块添加一个按钮。之后,我们将onClick事件添加到所有这些按钮。单击按钮后,其文本应在 Fold Unfold 之间切换。并且相应的代码容器也应切换其可见性状态。打开文档时,每个标记有fold的块都将折叠。 如何使用CSS设置按钮样式由您决定。