この記事は拙著『プログラマのための超手抜きKindle本作法』の補足情報です。
本書で推進するKDP向け超手抜きHTML原稿の、脚注のマークアップについて、気がついた問題点と、その後の環境変化について読者の皆さんにお知らせします。
『プログラマのための超手抜きKindle本作法』で紹介したPandocによるHTML出力では、脚注(p要素)の内容の末尾に参照元へ戻るリンク(a要素)が配置されます。
<p>脚注の内容テキスト<a href="参照元へのリンク">↩</a></p>
これに対して『Amazon Kindle パブリッシング・ガイドライン』の脚注サンプルコードでは次のようにa要素がp要素の内容の先頭に配置されています。
<p><a href="参照元へのリンク">↩</a>脚注の内容テキスト</p>
PandocのHTML出力そのままでも、Kindleアプリで閲覧するぶんには問題ありません。
ところが、Kindle端末において脚注のポップアップを正常に機能させるためには、Amazonのサンプルコード通りに記述されていなくてはならないらしいのです(a要素の位置がポイント)。
a要素がテキストの後ろにあると、ポップアップで、該当項目の他に余分な脚注も表示されてしまいます。
コンバーターではエラーも警告も出ないし、そういうもの(仕様)なのだろうと思い込んでしまいました。執筆時に参照した『Amazon Kindle パブリッシング・ガイドライン バージョン 2017.3』の、脚注のガイドラインには「双方向ハイパーリンクを設定する必要があります」としか書かれていなかったので、そんな罠があるとは思いもよらず。
さらに執筆時点とは、Pandocデフォルト設定でのマークアップ形式が変わっています。
本書出版時点の検証では、脚注のHTML出力は、
<div class="footnotes"> 〜
だったのですが、現在は、
<section class="footnotes"> 〜
となっています。このままだと本書の解説にある脚注部分のCSSが反映されません。
pandocコマンドの呼び出しにオプション -t html4 を付けることで本書出版時点と同様の出力が得られます(CSS側のセレクタを書き換えて対応する手もあります)。
また、『プログラマのための超手抜きKindle本作法』の原稿を書き上げた後、『Amazon Kindle パブリッシング・ガイドライン』の改定で、「HTML5 aside 要素と epub:type 属性を使ってマークアップすることを強く推奨」となっています。