7.5 全コードブロックを折りたたみ, かついくつかは表示する

出力文書に書かれたコードブロックが読者に嫌がられるおそれがあるなら, はじめは折りたたんでおくという選択がいいでしょう. 読者はボタンを押して表示を選ぶことができます.

output:
  html_document:
    code_folding: hide

全てのコードブロックを最初から展開しておくこともできます (よって読者は折りたたみもできます).

output:
  html_document:
    code_folding: show

最初から全てのコードブロックを折りたたむなら, 特定のブロックだけチャンクオプション class.source = "fold-show" を使い最初から展開させておくこともできます. このように.

---
title: Hide all code blocks and show some initially
output:
  html_document:
    code_folding: hide
---

```{r}
1  # code is hidden initially
```

```{r class.source = 'fold-show'}
2  # code is shown initially
```

```{r}
3  # also hidden
```

反対のこともできます. つまり, 最初から全てのコードブロックを表示するものの, 一部を非表示にします. 例えばこのように.

---
output:
  html_document:
    code_folding: show
---

```{r}
1  # code is shown initially
```

```{r class.source = 'fold-hide'}
2  # code is hidden initially
```

code_folding は Rと他の一部の言語 (デフォルトでは r, python, bash, sql, cpp, stan, and julia) コードチャンクの表示・非表示の挙動を制御します. これがあなたにとって制約になるなら, それ以外の言語のチャンクオプションの class.sourcefoldable クラスを追加するか, または いずれかのチャンクで knitr::opts_chunk$set(class.source = "foldable") を使ってグローバルに折りたたみの適用範囲を広げることができます.

---
title: CSS コードチャンクを隠す
output: 
  html_document:
    code_folding: hide
---

これは `css` エンジンを使用した CSS コードチャンクです. これは `code_folding = 'hide'` を指定しても隠すことができません.

```{css}
pre {
  background-color: lightblue;
}
```

しかし `foldable` クラスをチャンクのソースコードに追加すれば可能になります.

```{css, class.source = 'foldable'}
pre.foldable {
  background-color: lightgreen;
}
```