【问题标题】:How to fold verbatim text (not code) in R bookdown?如何在 R bookdown 中折叠逐字文本(不是代码)?
【发布时间】:2018-12-07 09:06:00
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

标签: r-markdown folding bookdown verbatim


【解决方案1】:

这是一个非常简单的方法来自己实现以下内容:

您可以在以下可重现的 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 事件添加到所有这些按钮。单击按钮时,其文本应在 FoldUnfold 之间切换。并且相应的代码容器也应该切换其可见性状态。当文档打开时,每个标有fold 的块都会被折叠。 如何使用 CSS 设置按钮样式取决于您。

【讨论】:

  • 谢谢,马丁。我在现有项目中进行了快速测试,它不起作用,不知道为什么......让我创建一个最小项目并再试一次。再次感谢。
  • 更新所有包。发布您的 YAML 选项或具有相同特征的最小可复制文档。
  • 现在可以使用了。我正在使用“bookdown::gitbook”输出,在我更改为“bookdown::html_document2”后,它按预期工作。谢谢!
  • 实际上它也适用于 gitbook,经过几次测试。我将您的脚本放入“fold.js”文件中,对于 gitbook 输出,添加“includes: in_header: fold.js”;还将“.fold-btn {float:right;}”放入我现有的css文件中。它就像我想要的那样工作。非常感谢!
  • @bruin 你知道默认情况下是否可以折叠所有块?谢谢!
猜你喜欢
  • 2019-05-17
  • 1970-01-01
  • 2012-12-18
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多