DITAの@chunkについてのメモ
DITAでは、HTML系の出力では、基本的には元のトピックごとにページを生成しようとする。そのため、非常に短い文のみで構成される.htmlファイルの箇所ができたりする。こういった出力について調整するための機構はDITAマップにある。それは@chunk
である。
@chunk
は、DITA 2.0で単純化される。新規に入門する場合、この後のメモで覚えておくべきは、combine
(2.0)と大体同じものであるto-content
(1.2,1.3)くらいだろう。split
(2.0)の方は、私がよくわかっていない[1]。
関連資料
- https://dita-lang.org/dita/resources/oasis-cover DITA 2.0の更新に割と追従する簡易リファレンス
- https://idratherbewriting.com/combining_topics/ https://idratherbewriting.com/2014/05/02/dita-limitations-with-the-chunkto-content-attribute-in-relationship-tables/ I'd rather be writingのchunk周りの記事
-
出力を分けるのはいいとして、どこで分けるのか ↩︎
例示
OASISのspecificationにある例は、最初は「なるほどね」となるのに段々雲行きが怪しくなってくる。単純な例で留めたいが。
<topicref href="parent1.dita" chunk="to-content">
<topicref href="child1.dita"/>
<topicref href="child2.dita"/>
</topicref>
これは、HTML出力時に@chunk="to-content"
が指定されているparent1.dita(出力時parent1.htmlとする)に、child1.ditaとchild2.ditaの内容を表示する制御となる。
「ページをまとめたトピックだが目次(TOC)上は項目名を表示させたい」というときには子のtopicrefに@toc="yes"
を指定してやる。
また、上の例ではtopicrefによる階層があるため、「parent1がメイントピック、child1,2がサブトピックなのだろう」という感じで出力ファイル名の変更についてはあまりナイーブにならなくともよいのが大半だろう。ただ、@chunk
はmapに対しても使える。mapに対して用いるときはtopicref同様基本はmapのファイル名になるわけだが、これが望ましくないケースはそこそこあるかもしれない。
(結局topicrefでもmapでも使えるのだが、)@copy-to
に出力時のファイル名を設定できる。注意点として、ここでの拡張子は.ditaである。複数段階で進行するDITA処理の1工程での出力名なのだ。
DITA 1.3での@chunk
の値は次の3つのパーツで構成される。
- select- 合体対象スコープ
- by- 合体単位
- to- 合体結果単位
え、copy-toがなくてkeysがあるとkeys使うのか……