埋込み型のコンテンツを :emb:`コンテンツの種類<コンテンツのID>`
という書式でrstファイルに書くとコンテンツが表示されるロールを作りました。
まだまだ作り込みが甘いαー版ですが、紹介させてください。
#1.セットアップ
インストール
pip install sphinxcontrib.embedding
設定
extensions = ['sphinxcontrib.embedding',]
書き方(Youtubeの場合)
:emb:`youtube<bJU9xdAZGQM>`
:emb:`yt<bJU9xdAZGQM>`
#2.追加機能
現在はYoutube, Vimeo, Nicovideoに対応していますが、設定で任意の埋込み型コンテンツを追加することができます。これを思いついて「面白そう」と思ったのが作った動機です。
html_embedding = {'youtube': '<iframe width="560" height="315" src="https://www.youtube.com/embed/{0}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
上記の例のように、IDの部分を {0}
に変えて設定します。
#3.補足
今はIDを一箇所に指定することしかできませんが、次のようなことに対応するつもりです。
- 同じIDを2箇所で使う埋め込み。
- ID以外の指定。(例、Youtubeでの開始時刻)
- ロールだけでなく、ディレクティブにも対応。
- 細かくオプションを指定するなら、ディレクティブの方が使い勝手が良さそうなので。
#以上
何か要望・アイデアがあれば教えてください。