アブストラクト

Jekyllではkramdownの機能によってセクションヘッダのidアトリビュートに表題と同じ文字列が付与され、URLのフラグメント部(#で始まる部分)で参照できることがわかりました。

イントロダクション

長い友人と会って、

印刷が普及したことで、人類は既存の印刷物への参照を示しながら自分の思考を記録することができるようになった

と知ることができました。

写本の時代には、それぞれの写本で内容の配置されているページが異なるため、参照先をページ数で示すことができなかった

のだそうです。なるほどなあ!現代の印刷物であるウェブページももっと参照可能にする必要がある。

現状

例えばこの記事のHTMLコードを確認すると、上記の章の冒頭部分は、下記のようになっています。

<h2 id="イントロダクション">イントロダクション</h2>
<p>長い友人と会って、</p>

この部分への同じページからのリンクは、下記のように記述できます。

[イントロダクションの章](#イントロダクション)へのリンク

この記述は、下記のようなHTMLに変換され、

<a href="#イントロダクション">イントロダクションの章</a>へのリンク

イントロダクションの章へのリンク」のように表示されます。パーセントエンコーディングは施されないようです。

kramdownによるIDアトリビュート

この個人サイトは、kramdownをレンダラーとしたJekyllによってHTMLを生成しています。kramdownはデフォルトではセクションヘッダの文字列をそのままaタグのidアトリビュートに設定するようです。1

絶対パスによる参照

このようにaタグのidアトリビュートが設定されているので、ページのURLに#と章や節の表題を追加すれば、この個人サイトの特定の章や節を参照できそうです。パーセントエンコーディングしたくなった場合には、URLお掃除くんなども利用できそうです。

まとめ

この個人サイトの章や節への参照を利用できるようにしたいと思ったら、kramdownの標準的な機能で既に利用可能でした。フラグメントとして表題と同じ文字列を指定します。