トップ «前の日記(2013年12月26日) 最新 次の日記(2013年12月28日)» 編集

KeN's GNU/Linux Diary
... 料理とDebianと雑多な記録


2013年12月27日

_ [ahf] コンテンツの管理

XHTMLで書けるからといってなんでもかんでも要素を追加するとスタイルが膨大になってしまうし、定型性を失いがちだ。「ここまでインデント」みたいな処理を都度手で入れるのはいつでもミスを起こし得るし、そもそもXHTMLはそこでモノを書いたり編集したりというのには向いているとは言い難い(細かな採番はできないし、意味ベースのブロック要素がHTML5でもさほど増えたわけじゃない)。

そこでいつものように、ReVIEW ( https://github.com/kmuto/review )の登場である(※ステマ)。コンテンツはReVIEWの簡易な各機能を使って、HTMLのタグを気にする必要なく自由に書き、これをXHTMLに変換してAHFに渡せばよい。

ただ、ReVIEWの標準のHTMLBuilderではAHFに通す上ではいくつかの改変が必要なため、HTMLBuilderを継承したAHHTMLBuilderを用意した。まだReVIEWのGit版のahbuilderブランチのほうにしかないので、適宜こちらをチェックアウトして利用いただくことになる。ターゲットビルダオプションは「review-compile --target=ahhtmlbuilder」になる。

  • 見出しに付けるIDのルールを変更。HTMLBuilderやePUBではファイル内でIDが一意であればよかったのだが、AHFで目次や索引を備えた何かを作ろうとすると、ファイルも1つにまとめたほうがよい。AHFはXMLフォーマッタなのでentity includeを使えるが、いずれにせよそれでも各IDは「全体で一意」でなければならない。だいぶヤッツケな感じはあるがひとまず簡単なハックで一意プリフィクスを付けることにした。場合によってはまだちょっと怪しい。
  • 脚注を埋め込み型に変更。HTMLBuilderやePUBには脚注をうまく表現する方法がないので、単純に参照と内容を分離して、リンクする程度になっている。AHFでは参照側のほうに直接<div class="footnote">〜</div>のように内容を埋め込んでおけば、採番は自動で脚注を紙面下部に置いてくれる。
  • 図・表・リストのキャプションの区切り文字後の折り返し。前回言及したhereindentを埋め込むようにした。
  • 表のthead、tbodyの指定。HTMLBuilderやePUBではほぼ効果のないこの区分だが、AHFではページをまたいだときにちゃんとtheadで指定したヘッダの再挿入をしてくれるので、これを入れるようにした。

まだいくつか調整すべき内容はあるので、こちらのブランチの開発も進めていきたい。