web-dev-qa-db-ja.com

ブックダウンでのコードの折りたたみ

RMarkdown for htmlドキュメントのコード折りたたみオプションは素晴らしいです。このオプションにより、聴衆に何マイルものコードをスクロールさせることなく、興味のある人にとってプログラム的な方法論が透過的になります。散文とインタラクティブなグラフィック出力を備えたコードのタイトな配置により、プロジェクト全体がより幅広い聴衆にアクセスしやすくなり、さらに追加のドキュメントの必要性が減少します。

大規模なプロジェクトでは、ブックダウンを使用しています。唯一の問題は、コード折りたたみオプションがないことです。現在、コードダウンはブックダウンでは有効になっていません。 ( ブックダウンでコードの折りたたみを有効にする を参照)

私はそれを実現するためのオプションが必要ないことを知っています。適切なコードを適切な場所に貼り付けるだけです。しかし、どのコードとどこですか?

実行可能な代替策は、コードチャンクをページのチャンクの出力の下に配置することです。または、最後に、それらを付録として追加します。私はhtmlでそれを行うことができましたが、rbookdownのように再現できません。

44
Alex P

私はパンドック用のフィルターを書きました:

  • すべてのコードブロックをHTML5 <details>タグでラップします
  • コードを折りたたむ/展開するためのローカルボタンを追加します
  • ボタンのテキストはonclick javascriptイベントを介して「コードの表示」と「コードの非表示」を切り替えます(自由にカスタマイズしてください)。

フィルターを見つけることができます ここpython を実行するには panflute がインストールされたディストリビューションが必要です。

pandoc_args: ["-F", "path/to/collapse_code.py"]経由でブックダウンに追加

2
BenPortner

Rパッケージrtempsを作成しました。これには、すぐに使用できるブックダウンテンプレートとコード折りたたみボタンが含まれています。その他(主にセバスチャン・ロシェの回答/投稿に基づく)。確認してください ここ

0
John