はじめに
七尾百合子さん、お誕生日 165日目 おめでとうございます! nikkieです。
MyST-Parser の linkify 拡張に気づけたことが私には嬉しすぎるので、もう一本書きます。
目次
reST を Notion ページに、sphinx-notion
https://pypi.org/project/sphinx-notion/
attakeiさんの sphinx-revealjs を使って、reStructuredText (reST) で発表スライドを作っています。
スライドは HTML なので GitHub Pages で公開している1のですが、Notion ページとしても公開できるのではと思いつきました。
実現したのが sphinx-notion です。
気に入っている点は、reST の原稿から Reveal.js によるスライドHTML・Notion ページ(を表すJSON)の双方にビルドできるところです2。
もちろん Sphinx に備わっている通常のHTMLやPDFにもビルドできます。
reST の記法がビルダーによって異なる変換をされるというのが好きですね。
Markdown と sphinx-notion
sphinx-revealjs は MyST-Parser を入れて、Markdown からスライド HTML も作れます3。
これも sphinx-notion でサポートしたいと考えました。
sphinx-notion 爆誕時に確認したところ、Markdown 中に(<>
で囲まずに)直書きした URL が Notion におけるリンクに変換されませんでした。
これが1年半程度ひっかかっていたのですが、解決できることに偶然気づきました。
それが MyST-Parser の linkify 拡張
linkify 拡張のおかげで、直書き URL が Notion ページではリンクに変換されます!
Markdown
https://github.com/ftnext/sphinx-notion/blob/1e37f12f38164d0708f18a1bfcc56bfe7fcc827d/example/source/example.md
### Content 1 * https://ftnext.github.io/sphinx-new-tab-link/guide.html
uvx --from sphinx \ --with sphinx-notion \ --with 'myst-parser[linkify]' \ sphinx-build -M notion source build
自作ライブラリが"飛び立つ"感覚
以前別の Sphinx 拡張を開発する中で「思ってもみなかった視界の開け方」を経験しました。
今回の sphinx-notion + Markdown (MyST-Parser with linkify) という気づきは、私の中ではそれに匹敵します。
reST だけでなく Markdown からも(私が実装している範囲では)同じ Notion ページが作れるんです!🦋
終わりに
MyST-Parser の linkify 拡張のおかげで、sphinx-notion は reST だけでなく Markdown からも Notion ページを作れます!!
できることがかなり広がったんじゃないでしょうか🦋
奇跡的相性(マリアーーーージュ)!
- ↩
- 私が実装した範囲でという制限はあります。要望がありましたら issue や pull request を送ってください!↩
- 私ではないですが、利用例 https://github.com/takanory/slides/blob/db921460010e037376c912d192ef6b095bc4a432/slides/conf.py#L31↩