AstroJS で生成される Footnote (脚注) をカスタマイズする
1. はじめに
AstroJS では、標準で remark-gfm が組み込まれています 1 。そのため、Markdown 内に Footnote を定義することが出来ます。しかし、標準設定だと h2
タグやFootnotes
テキストが出力されたりと、扱いにくい部分があります。そこで、本記事では AstroJS で生成される Footnote をカスタマイズする方法について記述します。また、本記事は Node.js と Yarn がインストール済みの前提で記述しています。
2. テンプレート
本記事では、検証用として AstroJS 公式が配布している blog template を使用します。yarn create astro
でインストールして、yarn run dev
で起動します。ローカルササーバーが起動したら、Footnote が定義されている http://localhost:4321/blog/markdown-style-guide/ に移動します。
http://localhost:4322/blog/markdown-style-guide/ の HTML を確認すると、以下のような Footnote が出力されていると思います。
3. カスタマイズ
Footnote は、astro.config.mjs
の markdown.remarkRehype 2 を編集することで、カスタマイズすることが出来ます。代表的な設定項目のデフォルト値を明記すると、以下のようなコードになります。
Footnotes
と sr-only
を削除し、h2
タグから hr
タグに変更するようなカスタマイズをすると、以下のようなコードになります。
Web ブラウザで確認すると、以下のように出力されると思います。
上記では、代表的な設定項目のみを明記しています。他の設定項目について詳しく知りたい場合は、remark-rehype の公式ドキュメント 3 を参照ください。
4. おわりに
ここまで、AstroJS で生成される Footnote をカスタマイズする方法について記述してきました。筆者が、unified (remark, rehype) について勉強不足だったので、思いの外、時間を費やしてしまいました。GatsbJS を採用していた頃に、キチンと勉強しておくべきだったと反省しています。
-
Astro Docs, Markdown & MDX, Configuring Markdown and MDX:https://docs.astro.build/en/guides/markdown-content/#configuring-markdown-and-mdx ↩
-
Astro Docs,Configuration Reference,markdown.remarkRehype:https://docs.astro.build/ja/reference/configuration-reference/#markdownremarkrehype ↩
-
Github, remarkjs/remark-rehype:https://github.com/remarkjs/remark-rehype ↩