Hugo
Quick Start
hugo new site ${PROJECT_NAME}
cd ${PROJECT_NAME}
git init
# テーマの追加
git submodule add ${GIT_REPO_OF_THEME} themes/${THEME_NAME}
# configファイルで使用するテーマを指定する
echo 'theme = "ananke"' >> config.toml
# コンテンツの作成
hugo new posts/my-first-post.md
# サーバを起動
hugo server -D
hugo new
で記事を作成するとドラフト記事として作成される(fontmatter のdraft
が true
になる)。
ドラフト記事は、hugo server
で-D
オプションをつけないと表示されないので注意する。
Go Template
こちらを参照
Config
baseURL = "https://yoursite.example.com/"
footnoteReturnLinkContents = "↩"
title = "My Hugo Site"
[params]
AuthorName = "Jon Doe"
GitHubUser = "spf13"
ListOfFoo = ["foo1", "foo2"]
SidebarRecentLimit = 5
Subtitle = "Hugo is Absurdly Fast!"
[permalinks]
post = "/:year/:month/:title/"
詳細は公式ドキュメントを参照
params
params の内容は、.Site.Params
としてテンプレート内から利用できる。
日付の調整
日付、最終編集日、公開開始日、公開終了日をどのように設定するかをカスタマイズできる。詳細はドキュメントを参照
Blackfriday
デフォルトの Markdown パーサーである Blackfriday の調整ができる。詳細はドキュメントを参照
環境変数で Config を設定する
env HUGO_TITLE="My Hugo Site" hugo
CLI
hugo
プロジェクトをビルドしpublic
フォルダに出力する。
Hugo はpublic
フォルダ内のファイルを削除しないので、ビルドの前に手動でpublic
フォルダを削除しておくこと。
下記に該当するコンテンツはビルドされないので注意する。 この挙動を変更したい場合はドキュメントを参照すること。
- front matter に
publishdate
が設定されている - front matter に
expirydate
が設定されている - front matter の
draft
がtrue
に設定されている
hugo
hugo server
開発用のサーバをhttp://localhsot:1313
で立ち上げる。
hugo server -D
Directory Structure
archetypes
hugo new post/***
を実行した際の Front Matter の雛形を管理する。
assets
Hugo Pipes で処理する必要のあるファイルを管理する。.Permalink
又は.RelPermalink
が使われているファイルのみ、public
ディレクトリに出力される??
config.toml
Hugo の Config ファイル
content
全てのコンテンツを管理する。
好きなだけネ ストさせるこができる。ただし、content
フォルダ直下は特別で、配置できるファイルは次の通り。
- _index.md (トップページになる)と関連する画像ファイルなど
- フォルダ
content
直下のフォルダは、conetnt section
として認識される。例えば、blog
,articles
, tutorials
というセクションを作りたい場合は、その名前のついたフォルダをcontent
フォルダ直下に作成する。
デフォルトでは、各セクションの配下に作成された記事には、セクションの名前(blog
など)がContent Type
として自動的に設定される。Content Type
は、どのレイアウトの選択等に使用される。
data
コンテンツの中で、json, yaml, toml といったデータを扱う場合、ここで管理する。 Data templatesを使えば、動的にデータを取得することもできる。
layouts
テンプレートを管理する。テンプレートの形式は HTML であり、下記の種類がある。
- list page templates
- homepage templates
- taxonomy templates
- partial templates
- single page templates
- ...and more
static
images, CSS, Javascript といった静的コンテンツを管理する。
そのままpublic
フォルダのルートに配置される。
Resources
Resouces とは
content
フォルダ内の全てのファイルはResources
になる。Hugo が MIME type を認識できる限り。content
フォルダ直下がsection
になる
全ての Resources を一覧表示
{{ range .Resources }}
<li><a href="{{ .RelPermalink }}">{{ .ResourceType }}</a></li>
{{ end }}
絶対パスが必要なら.Permalink
をつかうこと。