Hugoでwebサイト構築(10) データファイル(パラメータを作る)

written: kengo
tag:

1. dataフォルダとデータファイル

サイト全体で共有するパラメータはconfig.tomlの[Params]を用いることができますが、すべてをconfig.tomlにまとめるのは煩雑であるのと同時に利用の際もなかなか面倒です。Hugoではconfig.toml以外にサイト全体で共有するパラメータを書く場所としてdataフォルダが用意されています。

ルートフォルダにdataフォルダをつくると自動的にデータファイルを格納するフォルダとして認識されます。

2. dataフォルダとデータファイルの書き方

データファイルはdataフォルダ内に置きます。上記の例の様にサブフォルダに入れることもできます。 データファイルの書き方はconfig.tomlと同じ記法で記述可能です。

data/gohan.toml

rice  = "豚のひき肉ごはん"
dish  = "豚のしょうが焼き"
soup  = "豚汁"
vegetable = "豚のマリネ"

data/onigiri/okaka.toml

center = "おかか" 

data/onigiri/ume.toml

center = "うめぼし" 

tomlの配列などを使うことも可能です。例は単純化のため、パラメータの羅列のみにしています。

3. データファイルの読み込み

データファイルの読み込みは{{ .Site.Data.データファイル名.パラメータ名 }}で指定して用います。 例えば、2で示したdata/gohan.tomlの場合、

{{ .Site.Data.gohan.rice }}

以上をlayoutsのHTML内に記述すると、“豚のひき肉ごはん”が出力されます。

また、サブフォルダ内のデータファイルの場合は以下のように指定します。

{{ .Site.Data.onigiri.okaka.center }}

サブフォルダごとにピリオドで区切っていく形になります。 上記は、data/onigiri/okaka.tomlのcenterが読み込まれて、“おかか”が出力されます。 “うめぼし”を出したければ、.Site.Data.onigiri.ume.centerを指定してください。

References