HugoにAdSenseを表示するようにした

現時点では記事本文の後でAdSenseを表示するようにした。 しかし、たんにテンプレートにAdSense広告を挿入させるだけではすべての記事にAdSenseが表示されてしまう。

なかにはAdSenseのポリシーに反するような記事を公開することもあるだろう。 それが意図的であろうとなかろうとポリシーに反していればBANされてしまう危険性はある。 該当する記事がわかっていれば、記事を非公開にすることで対応かのうだが、せっかく公開したのだったら公開は続けたい場合、その記事は居場所を失ってしまう。

それはもったいない。 だったらAdSenseを表示させる記事と表示させない記事をわけれるようにしたらいいのではないか。

ということで記事のFrontMatterに独自フラグを用意し、Hugoのテンプレートに記述した広告コードを表示するかどうかを分岐するように手を加えた。

コード

<!-- FrontMatterのNoAdで広告の表示を判断-->
{{ if not (eq .Params.NoAd true) }}
	Ad code
{{ end }}

記事のFrontMatterに

NoAd: false # true 表示しない false 表示する

これを初期設定として登録しておき、AdSenseの規約違反になりそうな内容の場合は広告を表示させないように設定すればいい。

FrontMatterに独自フラグを用意するのではなく、カテゴリやタグによる分岐するほうがFrontMatterはシンプルだし、一括変更したい時に有利かもしれない。 しかし単純にそういったHugoのテンプレートの記述方法がわかならなかったから現状はこうしている。

タグによる分岐の記述方法がわかるかたは教えていほしい。