Robustテーマでコピーライト表記を修正したメモです。

なんか研究心を発揮してしまい細かいことまでやってしまいましたが、ふつうは目次の3.までやれば十分かなと思います。その場合テーマのカスタマイズは不要です。

環境

  • Hugoのバージョン: 0.54.0
  • 使用テーマ: Robust(2019年3月10日時点の最新バージョン)
  • ホスティング: Netlify

なおRobustテーマをカスタマイズする場合には、/themes/hugo_theme_robust 内のlayoutsフォルダをルートディレクトリのlayoutsフォルダへコピーして、コピー元のファイルではなくコピーしたファイルを編集します。

ただしすでにlayoutsフォルダ内の一部のファイルやフォルダをコピー済みの場合には、まだ存在していないファイルのみをコピーしてください。

またすでにlayoutsフォルダをまるごとコピー済みの場合には、コピーしないでください。

コピーライトの表記のしかた

ウェブサイトのコピーライトは「© 公開年 著作権者名」という形式(順不同)で表記するといいそうです。 あと著作権者名はローマ字のほうがベターみたいです。

著作権表示(書式) - Wikipedia

著作権者名のところは、サイト名でもいいと書いてあるページとダメというページと両方あって、よくわかりませんでした。

ではハンドルネームはどうでしょうか。

氏名は、周知の変名(ペンネーム等)でもかまわない。ただし、周知でない変名(著名でないということではなく、誰のことかわからないということ)は認められない。

出典元:著作権表示(著作権者の氏名) - Wikipedia

言い回しが微妙すぎて私のようなぼっちのHNでもOKなのかよくわかりません。

とはいえ本名はちょっと抵抗が///

となるとサイト名かハンドルネームか、という微妙同士の闘いになるので、うちのような底辺ブログではどっちでもよさそうな気がします(適当)。

Robustではconfig.tomlで設定できる

Robustテーマを導入してそのままの状態だと、「© サイト名」という表記になっていると思います。

Robustではconfig.tomlで

copyright = ""

で設定したものがコピーライトとして表示されます。

/_default/baseof.html や /_default/baseof.amp.html のコピーライトを表示する箇所を見ると、次のようになっています。

<p>{{ with .Site.Copyright }}{{ . | safeHTML }}{{ else }}<span class="h-logo">&copy; {{ .Site.Title }}</span>{{ end }}</p>

.Site.Copyrightはconfig.tomlで設定したcopyrightの文字列を格納する変数です。

config.tomlでcopyrightを設定している場合はその文字列だけを表示し、設定していない場合は「© サイト名」を表示する、というコードになっています。

なので、config.tomlで次のように書きます。

copyright = "&copy; 公開年 著作権者名"

これで「© 公開年 著作権者名」と表示されます。

さらに更新年を加えて自動で表示

すでにコピーライト表記としては十分ではあるんですが、さらに更新年を自動で表示してみようと思いました。

「© 2018-2019 xxxblog」のように、今年も現役で活動中ですよーとわかるようなやつです。

baseof.htmlやbaseof.amp.htmlのコピーライトを表示する箇所を次のように変更しました。 (注:実際には、続くHugoとRobustのクレジット部分も一緒に<small>タグで囲んでいます)

<small>
{{ with .Site.Copyright }}
    &copy; 2019
    {{if gt (now.Format "2006") 2019}}
        -{{ now.Format "2006" }}
    {{end}} {{ . | safeHTML }}
{{ else }}
    <span class="h-logo">&copy;{{ .Site.Title }}</span>
{{ end }}

</small>

<small>はHTML5では注釈や補足、免責事項や著作権表示などの短い文章を表すための要素で、コピーライト表示によく使われるらしいので<p>タグから変更しました。(参考:<small> - HTMLクイックリファレンス

コード内の「2019」の部分は初公開した年にします。

そしてconfig.tomlで

copyright = "著作権者名"

と設定します。「©」 と「公開年」はコードの中に書いてあるので不要です。

そうすると更新年が公開年と異なる場合だけ「© 公開年-更新年 著作権者名」と表示が変わります。

now関数とは

nowはビルドした時点のローカルタイムを返す関数のようです。now.Format "2006"でビルド時点の年を返します。

参考:now - gohugo.io

更新年が公開年と同じ場合は重複してしまい意味がないので、now.Format "2006"が2020年以降である場合にだけnow.Format "2006"を表示するようにしました。

公開されたページでは9時間ズレている

ただ実に細かいことなんですが、nowで表示される時間は、ローカルサーバー上ではシステムのタイムゾーンつまりJST(日本標準時)で表示されますが、Webに公開されたページではUTC(協定世界時)による表示(9時間前)となってしまっているようです。

今回の場合は、おそらく1月1日の0時から午前9時の間にデプロイした場合に、その後更新するまでの間表記が1年ずれてしまうといった程度のごく小さな問題ですので、気にするほどのことではありません。

なのでべつにUTCでもいいんですが、日本語のブログなので一応JSTに合わせてみます。

Netlifyの環境変数でタイムゾーンを指定

Webに公開されたページでUTC表示になってしまっているのは、NetlifyのタイムゾーンがUTCになってるためです。 そこでNetlifyのタイムゾーンを変更するために環境変数を設定します。

  1. NetlifyでSettings > Build & Deploy >と進む
  2. Build environment variablesのEdit variablesをクリック
  3. New variableをクリックし、Keyに”TZ”、Valueに”Asia/Tokyo”と入力しSave
Netlifyのタイムゾーンを変更

確認として、一時的に次のようにコードを変更して秒まで表示させます。

<small>
{{ with .Site.Copyright }}
    &copy; 2019
    {{if gt (now.Format "2006") 2018}}
        -{{ now.Format "2006-01-02T15:04:05" }}
    {{ end }} {{ . | safeHTML }}
{{ else }}
    <span class="h-logo">&copy;{{ .Site.Title }}</span>
{{ end }}

</small>

netlifyにデプロイしてみて、コピーライトのところの時刻がJSTになっていればOKです。

あとはさきほどのコードに戻して終了です。

参考: