このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

web帳

記事詳細

2016.06.29

爆速 静的サイトジェネレータ「HUGO」が快適すぎる件。

スクリーンショット 2016-06-29 0.35.40

HUGO

https://gohugo.io/

どもです。

海外旅行は実は今ではないかと企んでいる今日この頃の私です。

前回に続き、爆速続きで申し訳ないなのですが、「HUGO」が快適すぎる。

作業するにあたって、コンパイルなどやはり何かと早いのがいいですね。

そう、嫌われないぐらいにね。

というわけで、今回は所謂、静的サイトジェネレータに関してです。

HUGOて何?

HUGOは、プログラミング言語Goを使って開発された静的サイトジェネレーターとなります。

静的サイトジェネレーターはRuby 言語で作られた「jekyll」が有名かと思いますが、それと同類なのですが「HUGO」は構造のシンプルさと処理速度の速さで知られています。

jekyll

https://github.com/jekyll/jekyll

最近では(2016年6月現在)Static Site Generators調べによると、GitHubのスター数も3位となって来て注目のジェネレータとなっております。

Static Site Generators

https://staticsitegenerators.net/

スクリーンショット 2016-06-29 0.41.55

jekyllは決して出来の悪いソフトウェアでは無く、完成度の高い静的サイトジェネレーターなのですが、問題視されていたのがやはり、

コンパイルの遅さ」でした。

HUGO」は、静的言語(せいてきせいてき連呼してすみません。)であるGo言語で作られているということもあって、やはりコンパイルの早さに驚くものがあります。

興味湧いてきた

興味湧いてきましたか?

では早速使ってみましょう。

スクリーンショット 2016-06-29 0.58.36

HUGO GitHub

https://github.com/spf13/hugo

インストール

環境が、MacでHomebrewをお使いでしたらインストールも一瞬です。

Mac
[code]brew install hugo[/code]

GO getコマンドでインストールを行う場合。

GO
[code]git clone https://github.com/spf13/hugo[/code]
[code]cd hugo[/code]
[code]go get[/code]

HUGOの使い方

インストール完了すると、hugoコマンドを使用できますので、「hugo new site」でサイトの雛形を生成します。

[code]hugo new site my_site[/code]

ディレクト移動
[code]cd my_site/[/code]

サーバー起動
[code]hugo server[/code]

ファイルがないので早いのは当たり前なのですが、にしても

スクリーンショット 2016-06-29 1.06.42

起動するまで「6ms」!

6秒ではありませんよ。0.006秒ですね。

早すぎて、お茶も汲みに行けないわ。

ポート1313に立ち上がりますので、ブラウザを開いて確認。

http://localhost:1313/

開いたところ、いい感じの真っ白。

漂白剤もビックリの白さです。

何も書いていないので当たり前と言えば当たり前ですね。

余計なものは出さないっていうのもシンプル設計。

サーバーを止める際は「Ctrl+C」となります。

それでは、少しディクトリを覗いてみます。

スクリーンショット 2016-06-29 1.11.14

archetypes

ターミナルからコマンドを用いて新しいドキュメントを作成するときに、テンプレートとするファイルを格納しておくディレクトリとなります。

content

記事となる mdファイルが格納されます。

(マークダウンで記事を生成できるのもサイトジェネレータの特徴でもあります。)

data

TOML / YAML / JSON形式のファイルをデータストアして使うためのディレクトリです。

layouts

ページを構成するHTMLファイル等を格納します。

static

CSS、JavaScript、Image ファイルなどのassetsファイルを格納します。

config.toml
サイトの設定ファイルとなります。

のようなディレクトリ構成となっております。

要点だけあげてしまって恐縮ですが、詳細は公式ドキュメントを参照されていただければと。

公式ガイド

http://gohugo.io/overview/quickstart/

それでは、公式ドキュメントであるように、記事を生成してみましょう。

[code]hugo new post/good-to-great.md[/code]

スクリーンショット 2016-06-29 1.24.29

mdファイルが生成されているのが確認できます。

でも、このままだと何も見れないので、ビルドを行いましょう。

「hugo」でビルドを行うことができます。

build
[code]hugo[/code]

すると、「public」フォルダが生成されるのが確認できます。

スクリーンショット 2016-06-29 1.36.33

こちらが、公開に必要なリソースが格納されるディレクトリとなります。

content内のファイルもそのままビルドされるかと思います。

スクリーンショット 2016-06-29 2.08.54

ちなみに、hugo new で生成した、記事のファイルに関して少し。

ファイルの上部の ”+++”が囲われた部分が「front matter 」と言われる部分で、こちらでそれぞれの設定が行えます。

共通して利用する「front matter 」がある場合は archetypes/default.md に記述することによって

hugo new コマンド毎にセットされる形となります。

例:
archetypes/default.md

[code]+++
tags = ["x", "y"]
categories = ["x", "y"]
+++[/code]

[code]hugo new post/my-new-post.md[/code]

my-new-post.md

[code]+++
categories = ["x", "y"]
date = "2016-06-29T01:56:11+09:00"
tags = ["x", "y"]
title = "my new post"

+++

ここに記事を書いていく...
[/code]

となります。

公式ドキュメント

http://gohugo.io/content/front-matter/

テーマのインストール

1から作るのもいいのですが、「HUGO」には様々なテーマが用意されていて(作成されている)、利用することによってリッチなブログを容易に準備できます。

公式ドキュメント

http://themes.gohugo.io/

スクリーンショット 2016-06-29 2.16.46

では、早速テーマのインストールを。

プロジェクト内で以下のコマンドで gitcloneを。
[code]git clone --recursive https://github.com/spf13/hugoThemes.git themes[/code]

しかし、このコマンドだとテーマが全部cloneされてちょっと時間かかりますね。。

個別にダウンロードも可能ですので、ご利用は計画的に。

個別にダウンロード
[code]cd themes/[/code]
[code]git clone https://github.com/dplesca/purehugo.git[/code]

今回は、「purehugo」のテーマをダウンロード。

「purehugo」を指定してサーバーを起動します。

[code]hugo server --theme=purehugo --buildDrafts[/code]
スクリーンショット 2016-06-29 2.30.07

きました〜!

いやぁ。便利。

リアルタイムプレビューなので、サーバー起動したまま、記事であるMarkdownファイルを編集すると即座に反映されます。

 

と、「Hugo」の触りのところを紹介させていただきました。

勿論、本格的にカスタマイズする事も可能で、その際は「layout」フォルダにテンプレートファイルとなるhtmlを作っていくのですが、今回は端折らせていただきました。

次回にでも機会があればと書いていこうかと思います。

使用者の記事などを読んでいると「WordPress」から移行する方も多くなって来ているようで、やはり「爆速、シンプル、容易」といった魅力に使用者が増えてきている状況かと思います。

当方も「WordPress」から移行はまだですが、サイト制作の際のサイトジェネレーターは「HUGO」と「gulp」等を用いて作っていたりもします。

コンパイルに遅さを感じている方にはオススメの「静的サイトジェネレーター」となりますので、もしよろしければとー。

ではではー。

hugo

  • RSSを登録する

  • follow us in feedly

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、港区六本木で活動中。

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。