はじめに
香織先輩 & ドラえもんさん、お誕生日おめでとうございます! nikkieです。
気になっていたSphinx拡張を試しました。
目次
sphinx-copybutton
ドキュメンテーションツールSphinxで、ビルドしたHTML中のコードブロックをボタン一発でコピー可能にする拡張です。
画像右上にご注目

使い方は、インストールして有効にするだけ。
$ pip install sphinx-copybutton
# conf.py extensions = [ "sphinx_copybutton", ]
How easy!!🍰
設定例
自分のドキュメント1に設定した例です。
上記の画像もこちらからです。
ボタンワンクリックでコードをコピー、とっても便利に思います
実は出会っていたsphinx-copybutton
過去に自作Sphinx拡張のissue対応の中で存在を知りました。
sphinx-new-tab-linkのIssue対応をする中で存在を知った、便利そうなSphinx拡張たち - nikkie-ftnextの日記
直近読んだPython Monthly Topicsで再び出会いました。
Python製静的サイトジェネレーターSphinxでWebサイトを構築して公開 | gihyo.jp
今回試してみた次第です。
実装を少しだけ
「Pythonでどうやってるんだろう」と興味を持ち、実装を見てみました🔍
結論としては、コピーボタンの実装はJavaScriptで実現していました
https://github.com/executablebooks/sphinx-copybutton/blob/v0.5.2/sphinx_copybutton/__init__.py
ビルドプロセスの中で_staticディレクトリにあるファイルがコピーされ、同時にHTMLにも書かれるので、コピーボタンが動作するという理解です
<!-- ビルドされたHTMLには追加されていました(一部だけ抜粋) --> <script src="_static/copybutton.js?v=f281be69"></script>
終わりに
SphinxでビルドしたHTMLの中のコードブロックにコピーボタンを設けるsphinx-copybuttonを試しました。
簡単に設定できる点が素晴らしいと思います!
JavaScriptを書いてもSphinx拡張を実現できるという気づきもありました。