はじめに
センチュリーマリーナ、すっげ〜〜!! nikkieです
SphinxでビルドしたHTMLにある外部リンクをブラウザの新しいタブで開くようにする拡張 sphinx-new-tab-link を自作しています。
直近の機能追加について取り上げます
目次
sphinx-new-tab-link v0.6.0
8月のPyCon mini 静岡の発表準備をしていて、機能追加のアイデアが浮かびました。
以下のスライドにあるアイコン付きのリンクです(赤く囲った🎥emojiのとこ)。
https://ftnext.github.io/2024-slides/pyconshizu/logging-with-nullhandler.html#/6/2

v0.5の開発で、別のタブで開く外部リンクをアイコン付きで表示する設定値を追加しました1。
デフォルトは無効で、望むユーザだけが有効にする設定値です。
v0.5の時点では、すべてのリンクをアイコンなしか、すべてのリンクをアイコンありの0か100かです。
この開発があったので、「特定のリンクだけをアイコン付きで表示することができるのでは?」と閃いたんですね。
アイコンありのリンクを0か100かの両極端でなく、その間の状態で使うことができると気づきました。
そこでv0.6.0では独自のロールを追加しました。
上記スライドで🎥emojiのリンクは以下のように書いています2。
:icon-link:`🎥 <https://youtu.be/ahaslerbm_g?si=uymzSa4NdoeyqRcU>`
このemojiの場合はテキスト部分が短く、リンクかどうか分かりづらいと感じました。
アイコン付きで出すことでリンクであることが少しは分かるかなと狙っています。
sphinx-new-tab-link v0.6.1
なにか新しくできるようになったわけではありません。
Python 3.8のサポートを切りました。
拡張開発の中でMetadataExtensionを使った型ヒントができることを知りました。
しかしこの型が追加されたバージョンは、Python 3.8ではインストールできません。
Python 3.8は2024年10月でEoLを迎える3ので、sphinx-new-tab-linkでもサポートを切ることにしました。
結果、MetadataExtensionで型ヒントが書けています!
セマンティックバージョニングに沿いたいのですが、Pythonのドロップで上げるべきはマイナーバージョンなのか、バグフィックスなのか自信はありません。
LangChainやuvが機能追加のバグフィックスアップデートをしているのですが、私はこれを反面教師にマイナーバージョンを上げるようにしています。
特定のPythonバージョンのサポート追加は機能追加ではなくて、バグフィックスの方なのかな?(確信を得たい)
終わりに
v0.6.0の sphinx-new-tab-link の機能追加についてでした。
v0.1.0を作ったときにはロールを作るなんて少しも考えていなかったのですが、少しずつ開発してきた結果、ロールを追加して自分のユースケースを満たすことができました!
「SphinxでビルドしたHTMLの中の外部リンクをブラウザの新しいタブで開きたい」方はよろしければお試しください(pip install sphinx-new-tab-link)。
触ってみた感想(よかったも伸びしろも)や、「こういうユースケースで使いたいんだけどサポートしてくれないか」といった要望、そしてリポジトリへのスターも、お待ちしています!