【2021 年 12 月 3 日追記】
この記事は、2019 年 1 月 12 日時点でダウンロードした古い Robust を使用しています。
また、カスタマイズの手順や内容も古いです。
最新のカスタマイズ内容は zzzmisa/hugo_theme_robust を見てください。 現在はこのフォークしたテンプレートを直接修正して使っています。

【2019 年 1 月 12 日追記】
2019 年 1 月 12 日時点の Robust にアップデートしました。
(HUGO の対応バージョンが v0.20.2 から v0.42.2 に上がっているので、HUGO のバージョンアップも必要)。
YouTube ショートコードの追加を追記しました。


このブログは、静的サイトジェネレータ HUGO で作っていて、 Robust というテーマをちょっぴりカスタマイズして使用してます。
この記事はカスタマイズ内容のメモです。

config.toml

config.tomlで baseurl、title、googleAnalytics を設定します。他はデフォルトのままです。

アイキャッチのデフォルト画像の変更

任意の画像を用意してstatic/images/default.jpgを作成します。

Author の設定

Robust は 9 月のアップデートから Author が設定できるようになったみたいです。やったー!
これまでは、自分でサイドバーにプロフィール画像を追加していましたが、今回は Robust の Author 機能を使って表示してみます。

ただ、Author 機能 の SNS 表示は Facebook、Twitter と GitHub にしか対応していないみたいです。 私はメールも追加したいので、事前に少しカスタマイズしておきます。

themes/hugo_theme_robust/layouts/partials/author.htmllayouts/partials/author.htmlにコピーし、<ul class="author-facts">の中に以下のコードを追加します。

{{ with .mail }}<li><a href="{{ . }}" rel="nofollow" target="_blank"><i class="fa fa-envelope-o" aria-hidden="true"></i></a></li>{{ end }}

fa-envelope-oはメールのアイコンを表しています。
他のアイコンを使いたい場合は Font Awesome から探すことができます。 私は後で Tumblr や Skype を追加しても良いなあと思っています。

後はconfig.toml[params.author]を設定するだけです!

[params.author]
  thumbnail = "images/author.jpg"
  name = "ミサ"
  description = "xxxx。</p>"
  twitter = "xxxx"
  mail = "xxxx"

LATEST の削除

layouts/partials/latests.htmlファイルを作成し、中身は空にしておきます。

更新日の表示

投稿日(Date)はカレンダーアイコン、更新日(Lastmod)はリフレッシュアイコンで別々に表示しました。

themes/hugo_theme_robust/layouts/_default/summary.htmllayouts/_default/summary.htmlにコピーして、以下のように修正します。

$ diff themes/hugo_theme_robust/layouts/_default/summary.html layouts/_default/summary.html
9c9,11
<       <li><i class="fa fa-calendar" aria-hidden="true"></i><time datetime="{{ .Lastmod.Format "2006-01-02T15:04:05JST" }}">{{ .Lastmod.Format ( .Site.Params.dateformat | default "Jan 2, 2006") }}</time></li>
---
> 	  <li><i class="fa fa-calendar" aria-hidden="true"></i><time datetime="{{ .Date.Format "2006-01-02T15:04:05JST" }}">{{ .Date.Format ( .Site.Params.dateformat | default "Jan 2, 2006") }}</time></li>
>       <li><i class="fa fa-refresh" aria-hidden="true"></i><time datetime="{{ .Lastmod.Format "2006-01-02T15:04:05JST" }}">{{ .Lastmod.Format ( .Site.Params.dateformat | default "Jan 2, 2006") }}</time></li>
>

記事の Front Matter でDateLastmodをそれぞれ設定すると反映されます。

Google Adsense の追加

まずは、普通のページ用の広告を設定します。

更新日の表示で作成したlayouts/_default/summary.htmlに Google Adsense の広告コードを追加します。
どこに追加しても良いですが、私は</footer>の前に追加しました。
data-ad-clientdata-ad-slotは広告固有の値です。値は自分の Google Adsense 管理ページから確認できます。

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 広告1 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="xxxxx"
     data-ad-slot="xxxxx"
     data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

次に、AMP ページ用の広告を設定します。 先程の layouts/\_default/summary.html をコピーして、layouts/\_default/summary.amp.html を作ります。 上記の広告コードを消して、代わりに以下のコードを追加します。

<amp-ad
layout="responsive"
width=300
height=250
type="adsense"
data-ad-client="xxxxx"
data-ad-slot="xxxxx">
</amp-ad>

YouTube ショートコードの追加

Robust では、専用のショートコードが img しか用意されていないので、YouTube 用のショートコードを追加して使います。
なお、HUGO には元々 Youtube のショートコードが用意されているので、今回は AMP 用のショートコードのみ追加します。

まず、themes/hugo_theme_robust/layouts/_default/baseof.amp.htmllayouts/_default/baseof.amp.htmlにコピーします。
head 内で AMP 関係の CDN が記載されている箇所の一番下に、amp-youtube 用の CDN を追加します。

    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>
    <!-- 以下を追加 -->
    <script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>

次に、以下のようなlayouts/shortcodes/youtube.amp.htmlを作成します。

<amp-youtube data-videoid={{ index .Params 0 }} width="480" height="270" layout="responsive"></amp-youtube>

これで、YouTube のショートコードを書くと、通常のページにはデフォルトのアウトプットが、AMP ページには新しく作成した AMP 用の HTML がアウトプットされます。

以上です。