※記事内に商品プロモーションを含むことがあります。
はじめに
SphinxでMarkdownの拡張言語であるMyST (Markedly Structured Text) を導入する方法をまとめました。
SphinxはPython製のドキュメント生成ツールです。Sphinxは標準でReST (reStructuredText) と呼ばれるマークアップ言語をサポートしています。SphinxでMarkdownまたはMySTを導入する場合、myst-parser
というプラグインを導入します
この記事では、Sphinxとmyst-parser
を導入する方法と、MySTによる記事の作成方法を述べます。
ReSTとMySTについて
ReSTは表現力の高いマークアップ言語であり、標準的なMarkdownではできない以下のような記述が可能です(ただし、一部のMarkdown方言はサポートしているかもしれません)。
- 任意の場所への目次 (
toctree
) の生成 - 脚注 (
footnote
) - 画像の左寄せ・右寄せ
- テーブル(表)の結合セル
しかし、Markdownを既に習得しているユーザにとっては、ReSTを勉強するのは手間です。そこで、Sphinxにプラグインを追加し、Markdown方言であるMySTで記事を作成できるようにします。
MySTはCommonMarkを拡張した言語(上位セット)です(CommonMarkはMarkdownの仕様を明確にした言語で、2014年に開発されました。以降では、MarkdownはCommonMarkのことを指します)。MySTでは、ReST形式で表現できることの大半を表現できます。
なお、かつてはrecommonmark
という、SphinixでCommonMarkを利用できるプラグインがありました。しかし、現在は開発が停止されており、使用は推奨されていません。
環境
OSはWindows 10 Home Ver. 21H1です。
- Python v3.8.5
- Sphinx v4.4.0
- myst-parser v0.17.0
Sphinxとmyst-parserのインストール
Pythonは既にインストールされているものとして、Sphinxとmyst-parser
をインストールします。Condaとpipのどちらでもインストール可能ですが、myst-parser
ではCondaが推奨されています。
Conda環境では以下を実行します。-c
オプションによって、インストール元のチャンネルを指定します。
|
|
pipの場合は以下を実行します。
|
|
プロジェクトテンプレートの作成
適当な空フォルダを作成し、sphinx-quickstart
コマンドを実行してプロジェクトテンプレートを作成します。詳細は以下の記事を参考にしてください。
設定ファイルの編集
Sphinxの設定ファイルconf.py
を開き、extensions
にmyst-parser
を追加します。
|
|
これによって、SphinxはReST (.rst
) とMarkdown (.md
) の両方を扱えるようになります(ファイルの形式は拡張子で判定されます)。
Markdownファイルの作成とビルド
Markdownファイルを追加します。index.rst
と同じフォルダにtest.md
というファイルを作成し、中身を以下のように書きます。
|
|
次に、index.rst
を開き、以下のようにtest.md
を追加します。ここで、test.md
とtoctree
の先頭位置を揃えるようにインデントが必要です。index.rst
はビルド後にindex.html
に変換されるファイルです。また、toctree
は目次を生成するディレクティブ(指示)です。
|
|
上記のように追記することにより、test.md
がドキュメントに追加されたことをSphinxに教えます。
最後に、以下のコマンドを実行してHTMLファイルをビルドします。
|
|
コマンドの実行後、build/html/test.html
というファイルが生成されているはずです。これを開くと、MarkdownファイルをHTMLファイルに変換できたことが確認できます。
まとめ
SphinxでMarkdownの拡張言語であるMyST (Markedly Structured Text) を導入する方法をまとめました。
MyST独自の記法については、以下の記事でまとめています。
SphinxでMarkdown拡張言語のMySTを扱う – Helve Tech Blog