※記事内に商品プロモーションを含むことがあります。
はじめに
Markdownの拡張言語であるMyST (Markedly Structured Text) について、Markdownから追加された記法を簡単にまとめました。
MySTはPython製のドキュメント生成ツールSphinxで利用できます。利用までのセットアップは以下の記事を参考にして下さい。
SphinxでMarkdown拡張言語のMySTを扱う – Helve Tech Blog
この記事では、MySTでHTMLメタ情報、コメントアウト、HTMLアンカーリンクと相互参照、ReST記法の挿入を行う方法をまとめています。
環境
検証した環境は以下の通りです。また、OSはWindows 10 Home Ver. 21H1を使用しています。
- Python v3.8.5
- Sphinx v4.4.0
- myst-parser v0.17.0
HTMLメタ情報
HTMLメタ情報(meta
タグ)について、全てのHTMLに設定する方法と、個別のHTMLに設定する方法があります。全てのHTMLに設定する場合、設定ファイルconf.py
に以下のように記述します。
|
|
また、個別のHTMLに設定する場合、MySTファイル (.md
) の先頭に以下のように記述します。
|
|
先頭にhtml_meta:
が必要で、YAML形式となっています。この記述のことをFront-matterと呼びます。
以上の設定でMySTファイルをビルドすると、HTMLには以下のように出力されます。
|
|
なお、conf.py
とFront-matterで、同じメタ情報に異なる値を指定した場合、Front-matterの値が優先されます(conf.py
の設定は上書きされる)。
コメントアウト
MySTファイルにコメントを記述する場合、行の先頭に%
を置いて、その後にコメントを続けます。コメントはHTMLファイルに出力されません(HTMLのコメント<!-- -->
としても出力されません)。
|
|
HTMLアンカーリンクと相互参照
アンカーリンク
MySTではMarkdownと同様に、見出しのh2
, h3
タグを##
や###
と記述します。このh2
, h3
タグには、自動的にアンカーリンクが生成されます(アンカーリンクを利用することで、https//example.com/hoge.html#section
のように、見出しにリンクを張ることが可能になる)。
|
|
上記のMySTファイルをビルドすると、以下のHTMLファイルが出力されます。
|
|
このように、見出しが英単語の場合、アンカーリンク (href
) は基本的に同じ英単語になります。しかし、以下のように見出しが日本語を含む場合、デフォルトではアンカーリンクはid1
, id2
, … と割り振られてしまい、見栄えが悪いです。
|
|
ビルド結果:
|
|
そこで、見出しの前に(...)=
と記述することにより、アンカーリンクを指定できます。この記法をTargetと呼びます。
|
|
ビルド結果:
|
|
相互参照
Target記法 (...)=
でアンカーリンクを指定した見出しに対して、相互参照(クロスリファレンス)によって簡単にリンクを張ることができます。
相互参照は、{ref}
の後にリンク名を記述します。例として、先程の(my-section)=
に対する例を示します。
|
|
ビルド結果:
|
|
ReST記法の挿入
ReST記法を挿入する場合、{eval-rst}
と記述したコードブロックの内側に書きます。例えば、セル結合されたテーブルを出力したい場合、Markdownは対応していため、ReST記法を使う必要があります。
|
|
ビルド結果: