Google Analyticsのタグを追加してみる

ウェブサイトですので、Google Analyticsのタグを追加してみます。

SphinxのドキュメントではフッターにAnalyticsタグを追加していましたが、Google先生の指示はheadのところですので、それにならってheadに追加します。

テーマのテンプレートファイルを直接編集すると後でテーマの改訂があったときに修正が大変になりますので、テンプレートを拡張してみます。

head部分のテンプレートはlayout.htmlというファイルに書かれています。このファイルはテーマごとに作られていて、Pythonのsite-packageフォルダの下の各テーマのフォルダ(PC毎に異なります)にあります。

ただし、プロジェクトのルートディレクトリにある_templatesというフォルダにlayout.htmlというファイルを作ると、テーマのlayout.htmlではなくてプロジェクトのlayout.htmlが優先的に使われます。

ですから、プロジェクトのlayout.htmlを作って、プロジェクトのlayout.htmlからテーマのlayout.htmlを呼び出してさらに追記するようにすれば良いわけです。

_templatesフォルダにlayout.htmlというファイルを作って、その中に下記のように書きます。

{%- extends "!layout.html" %}
{%- block extrahead %}
{{ super() }}
<script>
    <!-- ここにanalyticsタグ -->
</script>
{% endblock %}

1行目で、layout.htmlを拡張すると宣言します。 2行目が、extraheadというブロックの開始です。拡張元のlayout.htmlのextraheadというブロックを上書きするわけです。 3行目は、拡張元のブロックを読み込みます。 7行目で、extraheadというブロックを閉じます。

extraheadというのは、headを拡張するためのブロックです。

このようにしてからHTMLを出力すると、そのhead要素はこのようになります。

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Welcome to trial’s documentation! &#8212; trial 0 ドキュメント</title>
    <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="index" title="索引" href="genindex.html" />
    <link rel="search" title="検索" href="search.html" />
    <link rel="next" title="はろーわーるど" href="doc.html" />
    <link rel="stylesheet" href="_static/custom.css" type="text/css" />
    <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

    <script>
        <!-- ここにanalyticsタグ -->
    </script>
</head>