inject_external_info
mkdocs.yml
や overrides では、外部情報をベタ書きする必要があり避けたい。
python でスクリプトを書き、以下の二つのアプローチで対応する。
overrides/*.html
を生成する ( recommended )mkdocs.yml
を上書きする
@see: https://squidfunk.github.io/mkdocs-material/customization/#overriding-blocks
create_backup()
¤
mkdocs.yml
のバックアップファイルを作成する
disable_show_source()
¤
Disable Handler Option (show_source
) in MkDocs (via mkdocs.yml
)
Python Hanfler の option で、ソースコードの表示をオフにする。
PDF として出力する際に、当該ソースコードが長大になると うまく出力されなくなる。 これを防止するために、ソースコード無しで出力させる。 (あるいは出力方法を変更すれば解決するかも……?)
静的サイトとしてビルドする際は、ソースコードがあったほうがいいと思う。 よって、python スクリプトで当該部分を切り替えられるようにした。
prepare_google_ads()
¤
Embed Google Ads in MkDocs (via overrides
)
MkDocs に Google Adsense の広告を埋め込むには、overrides/main.html
を拡張して
head
要素内に広告スクリプトを置いてやることになる。
静的ファイルにベタ書きしたくないので、python スクリプトで生成する。
prepare_google_analytics()
¤
Embed Google Analytics in MkDocs (via mkdocs.yml
)
MkDocs に Google Analytics を設置するには、mkdocs.yml
に設定を加えてやればよい。
Theme ごとに書き方の揺れはあるが、おおよそ G-XXXXX
を書けば済む。
しかし、実際にはそういう情報を 設定ファイルにベタ書きしたくない。 よって、python スクリプトで当該部分を置換してやることにした。
prepare_template_sitemap()
¤
Fix sitemap.xml
with incorrect value None
MkDocs ではデフォルトで sitemap.xml
を出力する機能があるのだが、
いろいろなプラグインを入れていく過程でなぜか不正なURLを持つようになってしまった。
<loc>None</loc>
となっている部分を排除すればいいので、
Jinja2 template の該当部分を見て条件分岐を修正した。