Skip to content

inject_external_info

mkdocs.ymloverrides では、外部情報をベタ書きする必要があり避けたい。

python でスクリプトを書き、以下の二つのアプローチで対応する。

  1. overrides/*.html を生成する ( recommended )
  2. 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 の該当部分を見て条件分岐を修正した。