Pythonドキュメント用reStructuredText
MarkdownをSphinxおよびPythonプロジェクト用RSTに変換
RSTに変換reStructuredText(RST)はSphinxを使用するPythonプロジェクトの標準ドキュメントフォーマットです。Markdownは執筆には優れていますが、RSTは技術ドキュメントのための強力な機能を提供します。MarkdownをRSTに変換することで、Markdownで素早く書き、既存のPythonドキュメントワークフローに統合できます。
なぜRSTに変換?
- Sphinxとの互換性 - RSTはSphinxのネイティブフォーマット
- Pythonエコシステム - ほとんどのPythonドキュメントがRSTを使用
- クロスリファレンス - RSTはドキュメント間の堅牢なリンクをサポート
- 拡張機能 - Sphinxの強力な拡張エコシステムにアクセス
- Read the Docs - RTDホスティングとの直接統合
仕組み
MarkdownをRSTに変換すると、適切なRST構文が得られます:
Introduction
============
This is a paragraph with **bold** and *italic* text.
* First item
* Second item
Code Example
------------
.. code-block:: python
def greet(name):
return f"Hello, {name}!"MarkdownからRSTへのマッピング
| Markdown | RST出力 |
|---|---|
# Heading | =====の下線付き |
## Subheading | -----の下線付き |
**bold** | **bold** |
*italic* | *italic* |
`code` | ``code`` |
[text](url) | `text <url>`_ |
| コードブロック | .. code-block:: |
SphinxでRSTを使う
基本ワークフロー
- 速さのためにMarkdownでコンテンツを執筆
- Markdown2ANYを使ってRSTに変換
- RST固有の機能(ディレクティブ、クロスリファレンス)を追加
- Sphinxでビルド:
sphinx-build -b html source/ build/
RST機能の追加
変換後、Sphinxディレクティブでrst を拡張:
.. note::
This is a note admonition.
.. warning::
This is a warning.
.. seealso::
:doc:`other-document`一般的な活用例
APIドキュメント
READMEファイルやガイドをRSTに変換して、autodocで生成されたAPIリファレンスと統合。
チュートリアル
Markdownでチュートリアルを書き、RSTに変換し、APIドキュメントへのクロスリファレンスを追加。
コントリビューションガイド
プロジェクトの他のドキュメントのフォーマットと一致するコントリビュータードキュメントを作成。
RST固有の機能
変換後、Markdownがサポートしていないrst機能を追加できます:
- 注意喚起 - Note、Warning、Tip、Dangerボックス
- クロスリファレンス - ドキュメントとセクション間のリンク
- ロール -
:func:、:class:などのセマンティックマークアップ - ディレクティブ - カスタムコンテンツブロック
- Toctree - ドキュメント階層
関連ガイド
- ソフトウェアドキュメント用Markdown - ドキュメントのベストプラクティス
- Markdown基礎ガイド - Markdown構文を学ぶ
- 最適な出力フォーマットの選び方 - すべてのフォーマットを比較