HUGOの使い方

こんにちは。hacknoteのr.katoです。

最近Wordpressを個人利用されている方々から注目されているHUGO。
その使い方を調べたので紹介していきます。

HUGOとは?

Go言語(golang)で作られた軽量、静的サイトジェネレーターの1つです。 簡単なコマンド操作とmarkdownの編集ができれば、比較的ハードル低めに初めることができます。 また、静的サイトのためデータベースを必要とせず、サーバーの管理や構築が簡単になります。 GitHub Pagesなどのホスティングサービスを使えばすぐサイトを公開できます。

必要なものリスト

  • git
  • Homebrew
  • HUGO

今回はmac,WSLなどHomebrewやLinuxbrewが使える環境での構築方法の紹介です。
Homebrewのインストール方法はこちらを参考にしてください。

Windowsの場合、golangのインストールとビルドが必要です。golangのインストールはこちらを、HUGOのインストールはこちらを参考にしてください。
また、HUGOはgitを使えることを前提としている記事が多いので、こちらを参考にGit bashをインストールしておいた方がいいです。

インストール方法

$ brew update
$ brew install hugo

これでインストール完了です!

HUGOを使ってみる

  1. terminalで適当なフォルダに移動します。そこで次のようにすると…
$ hugo new site プロジェクト名(今回はプロジェクト名をtestにしました)
Congratulations! Your new Hugo site is created in PATH/hugo/test.

Just a few more steps and you're ready to go:

1. Download a theme into the same-named folder.
   Choose a theme from https://themes.gohugo.io/ or
   create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
   with "hugo new <SECTIONNAME>/<FILENAME>.<FORMAT>".
3. Start the built-in live server via "hugo server".

このようになり、以下の構成のファイルが作られます。

.
└── test
    ├── archetypes
    │   └── default.md
    ├── config.toml
    ├── content
    ├── data
    ├── layouts
    ├── static
    └── themes
  1. テーマ(theme)の適応

themeは公式のページがあるので、そこから探すor自分で作ります。

今回はanankeを使うことにします。

$ cd test
$ git init
$ git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke

これで、themeの用意ができました。
config.tomlを編集して、themeの適応をします。

$ vim config.toml

baseURL = "http://example.org/"  #もしドメインがきまっていたら、変更してください
languageCode = "en-us"           #日本語の記事にするならjaに変更してください
title = "My New Hugo Site"       #ここまでデフォルトで書いてあるはずなので、次の行にtheme = "ananke"を追加
theme = "ananke"
  1. サーバーの起動

そして、次のようにするとブラウザで localhost:1313 にアクセスすれば、themeの適応されたページにアクセスできます。

$ hugo server -D

-D をつけることで、ドラフト記事(下書き)も表示されるようになります。

次のようにきちんと表示してくれました。

  1. 記事の作成

HUGOに記事のファイルを作らせます。この時、ファイルの拡張子を .md にしないとmarkdown扱いにならず、htmlに変換してくれなくなります。

$ hugo new posts/hacknote.md

すると、 test/contents/posts/hacknote.md が作られます。

ためしに編集してみます。

$ vim contents/posts/hacknote.md

#-------------------------------

---
title: "Hacknote"
date: 2019-11-14T15:28:52+09:00
draft: true #falseにすると、下書きでは無くなる
---

# h1

## h2

### h3

#### h4

##### h5

###### h6

```python
import numpy as np
import matplotlib.pyplot as plt 

data = np.array((1,2,3,4,5,6,7))
plt.plot(data)
plt.show()
```

するとlocalhost:1313が、次のようになり、

localhost:1313/posts/hacknoteが次のようになりました。

  1. ジェネレートして公開ファイルを作成する

公開したい記事のdraftをfalseにしてから次のコマンドを実行します。

$ hugo

すると、publicというフォルダが作成され、public以下に静的ファイルができます。

public以下をGitHub Pagesなどにホスティングすると公開することができます。(参考:GitHub Pages 無料ホスティングサービスを使ってみた

HUGOチュートリアル