在R书本中折叠常规文本

时间:2018-12-17 07:00:04

标签: r r-markdown bookdown

在R中使用书本时,我想折叠普通文本

有很多折叠代码的方法。

这里为folding verbatim text提供了一些建议,这并不是完全一样,但也许是一个很好的起点。

但是,尽管遵循(据我所知)针对该问题给出的建议,我什至无法使这种逐字记录折叠生效。

在我的Mac上,逐字文本折叠有效...但是发出此警告:

onClick

每当我添加此块时。按照建议:

Warning messages:
1: In get_engine(options$engine) :
  Unknown language engine 'fold' (must be registered via knit_engines$set()).

在Windows上,该代码根本不会产生任何折叠。出现该文本,但不折叠该文本。

在任何情况下,文本都显示为 verbatim (不足为奇,考虑到相关说明),但是理想情况下,我希望能够折叠普通文本。

任何人都可以提供建议吗?即: R书中的普通文本如何折叠

作为背景:我不熟悉Bookdown,我很了解R,但是我不知道与javascript相关的任何内容。

知情人士也许可以to amend the original code given折叠逐字记录文本。由于似乎可以折叠代码和逐字文本,因此我希望普通文本的折叠相对容易...

谢谢。

P。

1 个答案:

答案 0 :(得分:2)

这个想法与其他答案相同。您只需要通过将div元素环绕在段落周围就可以使段落可识别。请执行以下MRE:

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

<style>
.fold-btn { 
  float: right; 
  margin: 5px 5px 0 0;
}
.fold { 
  border: 1px solid black;
  min-height: 40px;
}
</style>

<script type="text/javascript">
$(document).ready(function() {
  $folds = $(".fold");
  $folds.wrapInner("<div class=\"fold-blck\">"); // wrap a div container around content
  $folds.prepend("<button class=\"fold-btn\">Unfold</button>");  // add a button
  $(".fold-blck").toggle();  // fold all blocks
  $(".fold-btn").on("click", function() {  // add onClick event
    $(this).text($(this).text() === "Fold" ? "Unfold" : "Fold");  // if the text equals "Fold", change it to "Unfold"or else to "Fold" 
    $(this).next(".fold-blck").toggle("linear");  // "swing" is the default easing function. This can be further customized in its speed or the overall animation itself.
  })
});
</script>

# Rmd file


<div class="fold">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.   

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.   

Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.   

Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.   

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.   

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
</div>

如您所见,我们在文本周围包装了一个div.fold的容器。 JS片段旁边的注释应阐明那里发生的情况。 要进行进一步的样式设置,您可以根据需要添加和更改CSS。

enter image description here