Hugo アーキタイプをもっと活用する

目次

  1. はじめに
  2. 日付フォーマットを自由に変える
  3. .Site 変数で共通情報を自動入力
  4. サンプル archetypes/default.md

はじめに

Hugo には hugo new コマンドで Markdown 雛形を生成する仕組みがあります。 そのテンプレート(アーキタイプ)は Go テンプレート構文を使えるため、

  • 日付を好きなフォーマットで書き出す
  • サイト設定ファイル(hugo.toml など)の値を差し込む

といった“ちょっとした自動化”が簡単に実現できます。 この記事では実際のテンプレート例を交えながら手順を解説します。


日付フォーマットを自由に変える

基本

date: '{{ time.Now.Format "2006-01-02" }}'
  • time.Now: 生成時点の日時
  • Format の引数は Go 固有の書式 (2006-01-02YYYY-MM-DD 相当)

よく使うパターン

目的書式出力例
時分まで入れたいtime.Now.Format "2006-01-02 15:04"2025-04-23 13:15
ISO 8601 (JST)(time.Now.In "Asia/Tokyo").Format "2006-01-02T15:04:05+09:00"2025-04-23T13:15:00+09:00
人が読む日付time.Now | time.Format ":date_medium"2025/04/23

.Site 変数で共通情報を自動入力

archetypes/ でも .Site オブジェクトにアクセスできます。 まずサイト設定ファイルに共通値を持たせましょう。

# hugo.toml
[params]
  defaultAuthor = "kaoru.inoue"
  company       = "Example Tech"

そしてアーキタイプで参照します。

author:  '{{ .Site.Params.defaultAuthor }}'
company: '{{ .Site.Params.company }}'

これで hugo new を実行するたびに自動で埋まる ため、 毎回手入力する手間や打ち間違いのリスクをなくせます。

params を使わずに管理したい場合は、サイト設定のキー設計に合わせて参照先を統一してください。


サンプル archetypes/default.md

title:  '{{ replace .File.ContentBaseName `-` ` ` | title }}'
date:   '{{ time.Now.Format "2006-01-02" }}'
draft:  true

author:  '{{ .Site.Params.defaultAuthor }}'
company: '{{ .Site.Params.company }}'
tags:    []
  1. ファイル名から自動生成した読みやすいタイトル

  2. 日付は YYYY-MM-DD 固定

  3. 著者・会社はサイト設定から取得

  4. 下書きフラグはデフォルトで true

このテンプレートを archetypes/default.md として保存し

hugo new posts/my-first-article.md

を実行すれば、自動で上記の front matter を持つ記事が生成されます。