hugo の仕組みも気になることだし作ってみることにした。

Hugo のテーマを何個か作ったので知見をまとめてみる https://gohugo.io/tutorials/creating-a-new-theme/

新しくテーマを作る

$ hugo new theme hoge

themes/hoge にテーマのテンプレートが作成される。 3つのテンプレート layout/index.html

<!DOCTYPE html>
<html>
<body>
{{- range first 10 .Data.Pages }}
<h4><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
{{- end }}
</body>
</html>

layout/_default/single.html

<!DOCTYPE html>
<html>
<head>
<title>{{ .Title }}</title>
</head>
<body>
<h1>{{ .Title }}</h1>
<h6>{{ .Date.Format "Mon, Jan 2, 2006" }}</h6>
{{ .Content }}
<h4><a href="{{ .Site.BaseURL }}">Home</a></h4>
</body>
</html>

layout/_default/list.html

<!DOCTYPE html>
<html>
<body>
<h1>Articles</h1>
{{- range first 10 .Data.Pages }}
<h4><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
{{- end }}
<h4><a href="{{ .Site.BaseURL }}">Home</a></h4>
</body>
</html>

partial 導入 layout/_default/header.html layout/_default/footer.html bootstrap

Bootstrap
Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.
Bootstrap favicon http://getbootstrap.com/
Bootstrap

2column sticky-footer tags

http://text.baldanders.info/hugo/section/ http://text.baldanders.info/hugo/categories-and-tags-list/

付ける frontmatter に tags = [“hugo”]

のように書く。よくわからないがアルファベットの大文字は避けた方がよさげ。マルチバイト文字は OK ぽい。 single .Params.tags に格納されているので以下のようにして使う

{{ range .Params.tags }}
<a href="/tags/{{ . | urlize }}/">{{ . }}</a>
{{ end }}

list .Data.Pages を列挙して中から取り出せる

{{ range .Data.Pages }}
<hr>
{{ range .Params.tags }}
<a href="/tags/{{ . | urlize }}/">{{ . }}</a>
{{ end }}
{{ end}}

サイトのタグ一覧

Hugo で web サイト構築(12) タグの列挙 https://gohugo.io/taxonomies/ordering/

{{ range $name, $value := $.Site.Taxonomies.Alphabetical }}
<li>
<a href="{{ $.Site.BaseURL }}/tags/{{ $name }}/">
<div><span class="badge">{{ .Count }}</span>{{ $name }}</div>
</a>
</li>
{{ end }}

pagination

http://wdkk.co.jp/note/2015/0915-hugo-pagination/ https://gohugo.io/extras/pagination/

more

Content summaries
Hugo generates summaries of your content.
Content summaries favicon https://gohugo.io/content/summaries/
Content summaries

目次

Table of contents
Hugo can automatically parse Markdown content and create a Table of Contents you can use in your templates.
Table of contents favicon https://gohugo.io/extras/toc/
Table of contents

syntax highlight

Syntax highlighting
Hugo comes with really fast syntax highlighting from Chroma.
Syntax highlighting favicon https://gohugo.io/extras/highlighting/
Syntax highlighting

prev/next

HUGOで作れるCMSっぽいパーツ:関連記事・目次・JSON-LDなど - Qiita
超爆速でコンパイルができる、Go言語製の静的サイトジェネレーターHUGO。当然、HUGOでは静的HTMLサイトしか作ることができない。しかし、テンプレート機能をうまく作ればWordPressにも負…
HUGOで作れるCMSっぽいパーツ:関連記事・目次・JSON-LDなど - Qiita favicon http://qiita.com/y_hokkey/items/f9d8b66b3770a82d4c1c#前の記事次の記事へのナビゲーション
HUGOで作れるCMSっぽいパーツ:関連記事・目次・JSON-LDなど - Qiita

作業中 あまりかっこよくならんね…。 とりあえず読めるようにはなってきた。 まぁ、見易さ優先で。