AsciiDocでテーブルの中に画像やコードを表示したい!
AsciiDocが便利なので近頃ちょくちょく活用しています。もうWordやExcelには戻りたくないほど感動的な体験で,「今後作る設計書は全てAsciiDocで作ってやろう……!」と堅く心に誓ってしまうほどです。どの部分に惹かれるかは人それぞれですが,私にとっては以下の特徴が魅力的に感じました。
- 表紙や目次を持ったフォーマルな文書作成をサポートする機能が多い
- 下手にWordで頑張るより小奇麗なファイルが生成される
- ドキュメント作成時のデザイン崩壊事故が起きにくい
(デザイン定義が別ファイルになるので基本触らない) - ソースコードのSyntaxHighlightが効く
そんなわけで便利なAsciiDocなのですが,ちょっと困ったことがあったので今日はその紹介を……。
テーブルの中に画像を表示したい!
要するに↓みたいなことをやりたかったのです。
でも普通にAsciiDocを書くと
|=== |1-1|2-1 |image::sample.jpg[width="100", align="center"] |2-2 |1-3 |2-3 |===
こんな感じで残念な表示をされてしまいます。
対策は……?
意外と簡単に対策できました。
|=== |1-1|2-1 a|image::sample.jpg[width="100", align="center"] |2-2 |1-3 |2-3 |===
内部でAsciiDocの文法を解釈させたいセルの直前に「a」を追加します。
出た!
画像だけでなくSyntaxHighlightも効くので↓みたいなことも可能です。
別解
テーブルのヘッダ定義部分をイジっても同じことが出来ます。
[cols="1a,1"] |=== |1-1|2-1 |image::sample.jpg[width="100", align="center"] |2-2 |1-3 |2-3 |===
特定列だけ常にAsciiDocを解釈して欲しいなら,こちらの方がラクですね!