Open3

DITAの@chunkについてのメモ

hidarumahidaruma

DITAでは、HTML系の出力では、基本的には元のトピックごとにページを生成しようとする。そのため、非常に短い文のみで構成される.htmlファイルの箇所ができたりする。こういった出力について調整するための機構はDITAマップにある。それは@chunkである。

@chunkは、DITA 2.0で単純化される。新規に入門する場合、この後のメモで覚えておくべきは、combine(2.0)と大体同じものであるto-content(1.2,1.3)くらいだろう。split(2.0)の方は、私がよくわかっていない[1]

関連資料

脚注
  1. 出力を分けるのはいいとして、どこで分けるのか ↩︎

hidarumahidaruma

例示

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- 合体結果単位