SphinxドキュメントからGitHubへリンクする

Posted: , Modified:   Python Sphinx GihHub Qiita

本稿は Qiita 投稿記事 のバックアップです.

概要

Sphinx テンプレートの一つ sphinx_rtd_theme では, メタデータ :github_url: に URL を渡すことで,Edit on GitHub のリンクを生成してくれる.

ではそのメタデータはどこで定義するのか?という話.

メタデータの定義

Sphinx におけるメタデータは二種類ある.一つは今回必要なテンプレートの処理に使うメタデータであり, もう一つは HTML の meta タグを出力するためのものである.

前者は,.rst ファイルの先頭付近(A field list near the top of a file)に置く必要がある. 曖昧な表現だが,要するに他のマークアップより前に書いておけば良い.

:github_url: https://github.com/jkawamoto/roadie-gcp

.. ここから本文を始める

などとすれば良い.

ちなみに,後者の方は .. meta:: で始まるセクションに記述する.

.. meta::
  :viewport: width=device-width

メタデータの一括登録

上記の通り,各 .rst ファイルの先頭に :github_url:メタデータを追加すれば, 生成されたドキュメントには GitHub へのリンクが付く. しかし,一々記述するのは手間なので,rst_prolog オプションを使って一括登録する.

conf.pyrst_prolog 変数を定義すると,その内容を各 .rst ファイルの先頭に追加してくれる. よって,

rst_prolog = """
:github_url: https://github.com/jkawamoto/roadie-gcp

"""

conf.py に追加すれば,生成されたドキュメントの全ページに GitHub へのリンクが付く.

ちなみに生成されたドキュメントは http://jkawamoto.github.io/roadie-gcp/ のようになる.