0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Day4:Hugoでの記事作成方法とFront Matterの基本

Posted at

この記事はアドベントカレンダー4日目の記事です。
https://qiita.com/advent-calendar/2025/dokokanoradio_hugo

本記事の概要

Hugoでの記事の作り方とFront Matter(フロントマター)の概要について記載する。

前提

Hugo+Blowfishテーマ適用済みの環境です。
なお、Windowsでの操作を想定しています。
(本記事が属するアドベントカレンダーについてもご確認ください)

記事の作り方

Hugoのビルド環境内でPowerShellから下記のようにコマンドを打てばよい。

Hugoの記事の作り方
hugo new ファイルパス

実際にやってみる

具体例として下記のようにPowerShellで下記のように打ってみる。

Hugoでテスト記事を作ってみる
hugo new test.md

すると、content/test.mdに下記の様なファイルが出来る。

content/test.mdの例
+++
date = '2025-12-05T02:37:02+09:00'
draft = true
title = 'Test'

+++

Hugoにおいては、記事(Webサイトのページ)は、contentフォルダに置かれるというルールがある。
また、Webページの記事としては、Markdown(.md)で書くのが基本である。
そのため、content/~.mdと書かなくても、単にtest.mdとするだけで、勝手にcontentフォルダ内に置かれる。

なお、Webサイトとしては、このファイルの記事には、
ルートURL/test/
というURLでアクセスできる。

Front Matter(フロントマター)について

先程のMarkdownの内容を再掲すると、下記のようになっている。

content/test.mdの例
+++
date = '2025-12-05T02:37:02+09:00'
draft = true
title = 'Test'

+++

先頭行に「+++」と書かれていて、何行かパラメータのようなものが記載されたのちに、また「+++」と書かれている。
この「+++」で囲まれた部分をFront Matter(フロントマター)と呼ぶ。
フロントマターは、記事に関わるパラメーターを記載できる部分である。

「+++」等には意味があり、

  • 「+++」の場合は、toml形式でパラメーターが書かれている
  • 「---」の場合は、YAML形式でパラメーターが書かれている

という意味である。

詳しくは下記Hugoのドキュメント(日本語版)にも書かれている。

Hugoはtomlでパラメーターを記載することが多いので、tomlの方が分かりやすいと思われる。

Front Matterを変えてみる

さて、記載されているFront Matterの意味はこのようになる。

  • date = '2025-12-05T02:37:02+09:00'
    • この記事が書かれた日付を指す
    • 2025年12月5日02:37:02(UTC+9時間=日本時間)となる
    • ちなみに、デフォルトでは日付が未来になっている記事はビルドされない
      • コマンドで指定すればビルドすることも可能
  • draft = true
    • 記事が下書き(ドラフトか)否かを表す
    • 下書き記事が混入しないようにするため、通常、ドラフト記事はビルドされない
      • コマンドで指定すればドラフトを表示することも可能
  • title = 'Test'
    • 記事タイトルを表す
    • この場合は"Test"となっている

これを踏まえたうえで、次のように書き換えてみる。

content/test.mdの例
+++
date = '2025-12-05T02:37:02+09:00'
draft = false
title = 'テストページを作りました'

+++

本文を書いてみる

Front Matter部分の後に本文を記載することになる。
テストとして以下のように書いてみる。

content/test.mdの内容
+++
date = '2025-12-05T02:37:02+09:00'
draft = false
title = 'テストページを作りました'

+++
実際にテストページを作ってみました。

どのように見えているでしょうか。

表示を確認してみる

Day3と同様に、内蔵Webサーバーで表示してみる。
コマンドは下記である。

内蔵Webサーバー表示コマンド
hugo server

http://localhost:1313/test/ にアクセスしてみると下記のようになる。

404と表示される人は保存し忘れだと思うので、保存してからもう一度ブラウザーを更新すること。

2025-12-05 03.09.34 localhost 94a2c8bfdb2c.png

無事、タイトルや本文、そして記事の日付が表示されていることが分かる。

補足:記事のひな型について

archetypes/default.mdの内容が記事のひな型になっている。
ひな形は複数作ることができ、いずれのひな型にもマッチしない場合はdefault.mdの内容となる。
(ひな形については、自分で置いたりテーマに置かれていたりする)

例えば、archetypes/deafault.mdを下記の様に書き換えてから、再びコマンドを使って記事を作ると、本文に「本文です」と書かれた状態でMarkdownファイルが作成される。

archetypes/deafult.mdの内容を書き換えてみる
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++
本文です
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?