#author("2022-08-12T05:52:51+00:00","default:src128","src128")
#author("2022-08-16T15:03:45+00:00","default:src128","src128")
&tag(Hugo);
*目次 [#pa2e5701]
#contents
*関連ページ [#b5123a9d]
-[[./テーマ作成]]
-[[./hugo-icarus-theme]]
-[[./hugo_theme_robust]]
-[[./ananke]]
-[[./WordPressからの移行]]
-[[./NetlifyとGitHub]]

-[[./サイトマップ作成]]
*参考情報 [#f1658a3f]
-Goで作られた静的サイトジェネレーター。

*インストール [#se70d986]
-MacPortsの場合以下の方法でインストール。テーマによってsassのエラーがでるのでextendedは必須。
 sudo port install hugo +extended

*基本的な使用方法 [#f816055a]
-[[HUGOで静的サイトを作成してみた - Qiita:https://qiita.com/zak74702675/items/b84cd883c01d72720c35]]
-サイトの作成(demoというサイトが作られる)
 hugo new site demo
-テーマの追加。
 cd demo
 git init
 # anankeの場合
 git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke
 # robustの場合
 git submodule add https://github.com/dim0627/hugo_theme_robust.git themes/hugo_theme_robust
 echo 'theme = "ananke"' >> config.toml
-記事の追加。content/post下に記事が作成される。
 hugo new post/my-first-post.md 
-hugo server 
 hugo server -D
-記事の公開。[[静的サイトジェネレータ「Hugo」〜公開方法〜 - SIS Lab:https://www.meganii.com/blog/2017/01/11/deploy-site-with-hugo/]]。
-hugoコマンドを実行するとpublicディレクトリの下にhtmlが書き出される。それをscpなりで公開する。



*Tips [#vab57140]

**Hugoの記法 [#a418093a]
-基本Markdownで書く。
-Hugo v0.60以上だとhtml直書きは認識しないが、config.tomlに以下を追加することで認識する。
#pre{{
[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

}}
**サブディレクトリで公開 [#yf5d9a07]
-とりあえず以下のようにすれば良い?
#pre{{
baseurl="http://localhost/hugo"
RelativeURLs=true
CanonifyURLs=true
}}

**カテゴリ [#pf3eb137]
-Hugoの場合カテゴリはタグと同じような感じ。セクションを使った方がわかりやすい。
-[[Hugoのテーマを自作してみる 階層化したカテゴリーの実装 - hansode Lab:https://hansode.net/2020-05-07-hugo-use-category-section/]]
-[[Hugo の カテゴリー(categories) を 階層化 する | のい太ろぐ:https://noitalog.tokyo/hugo-categories-level/]]…記事「categories
」を使って階層化する方法。
-フォルダ階層をメニューとして表示する。
--[[Content Sections | Hugo:https://gohugo.io/content-management/sections/#example-breadcrumb-navigation]]
--[[パンくずリストを表示するには - bnote:https://www.bnote.net/hugo/breadcrumb.html]]

**コンテンツ管理 [#h0e08af0]
-ディレクトリを「001-about」(/about)「002-home」(/home)のように設定していけばセクションの順番をフォルダ名で管理できる…と思ったがセクションにslugは設定できないようだ。
-対して記事に「url」を指定してパーマリンクを設定すると、ディレクトリ部分まで含めてすきなURLを設定できるが(例: /t/hoge.html)、「/t/」に対応したセクションが存在しないと記事一覧は取得できない。
-結局about、homeのようなディレクトリを設定し、weightを設定するhugo公式ドキュメントサイトのような方式が一番素直なのか。?

**ツリー構造 [#d7068a91]
-[[サイト内の全ページの一覧をセクションの階層構造に従って表示する | まくまくHugo/Goノート:https://maku77.github.io/hugo/list/page-hierarchy.html]]

**サイト変数 [#mec1c014]
-[[Hugo Custom Page And Site Variable | Lua Software Code:https://code.luasoftware.com/tutorials/hugo/hugo-variable-naming/]]
-config.tomlで独自トップレベル変数は定義できない(googleAnalyticsは使えるが、googleAdSenseは使えない。自分で定義しても無視される)。
-自分のパラメーターはparamsに。
-params内部の変数は小文字で定義。アクセスも.Site.Params.fooBarのように。
-大文字小文字のあたりはややこしい。[[Avoid string variable escaping? - support - HUGO:https://discourse.gohugo.io/t/avoid-string-variable-escaping/13244]]

-typeってなに?
-デフォルトで最初のフォルダ?contents/posts/aa.mdの場合postsがtype似に設定されるらしい。

**シンタックスハイライト [#t07af8f5]
-[[Syntax Highlighting | Hugo:https://gohugo.io/content-management/syntax-highlighting/]]
-hugo 0.60以降ではデフォルトでシンタックスハイライトが使える。テーマ独自機能(hugo_theme_robustなど)を使わずこちらを使った方がよさげ。
-例えばgo言語のシンタックスハイライトを有効にする場合。
#pre{{
```go
// ... code
```
}}
-単なるpreも以下のように呼び出した方がスタイルが揃う。
#pre{{
```
pre
```
}}
-config.tomlの設定。必要ならば値を書き換えることもできる。
#pre{{
[markup]
  [markup.highlight]
      codeFences = true
      guessSyntax = false
      hl_Lines = ""
      lineNoStart = 1
      lineNos = false
      lineNumbersInTable = true
      noClasses = true
      style = "monokai"
      tabWidth = 4
}}
*テーマ [#u4bc98b0]

**おすすめテーマ [#ue72d018]
-Clean White: [[ブログ移行日記(その1) - Hugoとテーマ-@johtaniの日記 3rd | @johtani's blog 3rd edition:https://blog.johtani.info/blog/2020/01/22/intro-hugo-and-theme/]]
-Bilberry Hugo Theme: [[ブログをHugoに移行しました | 研究開発日誌:http://hideki-todo.com/cgu/blog/article/hugo/]]
-Icarus / Tranquilpeak / Robust: [[Hugoのオススメ3テーマを相互に切り替え可能な環境を作ってみてわかったこと · GizWoo:https://blog.gizwoo.com/hugo-customize-themes/]]
-Mainroad: [[静的サイトジェネレーターのHugoでブログはじめました - Yabuzaki blog:https://blog.planet12.jp/post/start-blog/]]
-Hugo Future Imperfect 
--[[Hugoの公式にある興味のあるテーマを紹介 - EisKern Tech Blog:https://www.tech-ek.com/post/favorite-interesting-themes/]]
--[[List - SIerがいろいろ試してみるブログ:https://itsys-tech.com/list/]]
-[[Liva Hugo | Hugo Themes:https://themes.gohugo.io/themes/liva-hugo/]]
-[[Bootstrap Blog Theme | Hugo Themes:https://themes.gohugo.io/themes/hugo-theme-bootstrap/]]
-Docsy
--Googleが作成したテーマ。

**テーマのカスタマイズ [#r6802bd9]
-[[Hugoでテーマをカスタマイズする方法:https://ja.takp.me/posts/how-to-customize-the-hugo-themes/]]
-layouts以下にテーマと同じファイルを階層構造で作成する。

***ページリソースをサムネイルとして使用したい。 [#s43f16e6]
-たとえばフロントマターでthumbnailをページリソースとして指定している場合、以下のようにテーマを改造する。
  {{ if .Params.thumbnail }}
    {{ $image := .Resources.GetMatch .Params.thumbnail }}
  <div class="thumb" style="background-image: url('{{ $image.RelPermalink }}');"></div>
   {{ else }}
  <div class="thumb"></div>
  {{ end }}


** hugo_theme_robustの使用 [#iacd67df]
***参考情報 [#m6ecae83]
-[[Hugoのテーマ、Robustを採用・カスタマイズ - なるほどわからん:https://masaqu.id/posts/2019-06-11_robust-customize/]]
-[[HUGO のテーマ Robust のカスタマイズ - zzzmisa's blog:https://blog.zzzmisa.com/customize_hugo_theme/]]
-[[Alice in the Machine - wiki:https://wiki.browniealice.net/technote/hugo/setting_for_robust/]]
-[[blog/using-hugo.md at master · kaitoy/blog:https://github.com/kaitoy/blog/blob/master/content/post/using-hugo.md]]

*エディタ [#v8fff324]

**Visual Studio Code [#bc4f5f64]

***hugofy [#h215f4f7]
-サーバーの開始と終了だけ使う。
-Command+Shift+Pでコマンドを選ぶ

''トラブルシューティング
-「Default theme not set. Please set one」が発生。「Hugofy: Set Theme」を実行してテーマを設定すれば良いらしい。


*トラブルシューティング [#q36b255f]
**scssが変換できないとかどうとかのエラー [#mec03aa4]
-scssを扱うためにはextended版が必要?
 sudo port install hugo +extended

**Error: add site dependencies: load resources: loading templates: walk: Readdir: decorate: [#m3cf18a1]
-hugo server -Dでエラー。
-layoutフォルダ内にEmacsのロックファイルが残っていたのが原因。
-ドットから始まるファイルがないか確認する。


** found no layout file for "HTML" for kind "page" [#g20b9e46]
-hugo server -Dを実行すると以下の警告メッセージが表示される。
-「 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.」
-原因はテーマを指定していないこと。
-config.tomlで指定。
 theme = "mytheme"

**public以下にファイルが書き出されない [#v8f4c250]
-コンテンツがdraftになっていないか確認。
-「hugo server -D」で確認していて「hugo」でコンパイルするとドラフトが表示されない。

**情報が反映されない? [#xe99e1b5]
-[[Hugo サーバーで記事の変更内容が反映されない場合 | まくまくHugo/Goノート:https://maku77.github.io/hugo/command/ignore-cache.html]]
-キャッシュが原因?
 $ hugo server --ignoreCache
-階層構造がおかしかったのもこれが原因か。

**新規追加したエントリーが表示されない [#laf93edf]
-Hugoは標準で未来の日付のエントリーが表示されないようになっている。
-これを変更するには「buildFuture = true」をconfig.tomlに追加する必要あり。
-Front Matterのdateで「2021-11-26T14:24:32+00:00」のようにタイムゾーンを間違えていると意図せず未来の日付になっている可能性がある(日本だと+90:00が正解)。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS