HugoでGoogle Analyticsを開発中に無効にする正しい方法
まず、Google Analyticsの埋め込みはビルトインのテンプレートを使う。<head>
のどこかに次のコードを追加する。
{{ template "_internal/google_analytics.html" . }}
この前後でローカルで実行されているかのチェックを自前でしてしまいそうになるが、このテンプレートのコードを良く読むと先頭に次のようにある。
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
{{- if not $pc.Disable -}}
どうやら設定ファイルでprivacy.googleAnalytics.disable = true
とすればスクリプトを無効にできそうだ。後はlocalhostで実行時だけ別の設定を持たせる方法が分かればよい。ドキュメントによれば、そもそもサーバーの実行時には自動的に環境がdevelopment
になるらしい。
Default environments are development with hugo server and production with hugo.
設定ファイルの配置を以下のようにしてやれば、環境によらず_default
以下の設定が読み込まれ、development
のときだけ同名のディレクトリ以下の設定も追加で読み込まれる。
config
├── _default
│ └── config.toml
└── development
└── privacy.toml
最後にprivacy.toml
の中身に以下の行を追加する。
[googleAnalytics]
disable = true
これで、通常通りhugo server
で起動するとGAが無効になる。コードや実行コマンドの変更一切なしで切り替えることができるので、一番美しい方法だと思っている。