niszetの日記

細かい情報を載せていくブログ

QuartoのListingをページ内で複数扱う場合、ひとつのページ内で完結させること

はじめに

Quarto、ユーザーが沢山増えてきましたね。先日のJapan.RでもQuartoを使っている人、スライドをQuartoで作っている人が多い印象でした。

さて、Quartoは機能が沢山ある一方でドキュメントでのサポートもかなりあるのでなかなかまとまった記事を書くのに躊躇していたのですが、バージョンアップに伴いサイト内の検索性が下がってきました。

そこで、久々にQuartoについて色々書いていこうというものです。

includeを使う場合に注意。

ということで、今日はListingの話です。基本的な使い方はここに書かれているとおりで、普通に使う分にはあまり問題にならないんですが、

quarto.org

Multiple Listingの章にあるように、複数のリストを1ページ内に入れるコトが出来ます。

quarto.org

これも、基本的な使い方はこのマニュアルの通りなので割愛します。

さて、これに、includesを組み合わせた場合に問題が起こります。

quarto.org

Quartoでは、他の文書を {{< include _content.qmd >}} のような形で取り込むことが出来ます。とても便利。取り込むものを個別にレンダリングしないように、qmdファイルの先頭には _(アンダースコア)をつけておきましょう。

ここで、元の文書と、includeする文書それぞれにlistingの定義があった場合、元の文書のものが残り、includeする対象のファイルのリストは生成されません。

ちょっと詳細は追えてませんが、それぞれでlist用のjsonかxmlを作っていて、それが上書きされる(か、それぞれのファイルに紐付いて無視されるか)ような挙動のはず…です。listingを使う場合、それが複数のファイルに散らばらないようにしましょう。全て元のファイルにあるか、全て _contents.qmd 側に入れていても動作します。まとまっていれば、OK。

ということで、久々の記事なので勝手がわかりませんが、メモとして。

Enjoy!