2019/04/19
はじめに
最近,Qiita に記事を少しづつ掲載していたのだが,少しづつ内容が増えていくにつれて,
「自分のサイトが欲しいなあ・・・」
と思うようになってきた.しかし,調べてみると
・ 自宅サーバを立てる
・ レンタルサーバを借りる
など,貧困学生には手の出しづらいものが次々と出てきた. その中で,簡単に始められて無料でできるものとして,
Github Pages が出てきた.Github Pages は以前,
「Github Pages はページ公開は楽だけど html とかよくわからないし・・・」
と思って,リポジトリを作ったまま何もできないまま停滞していた.
そこで見つけたのが SSG(Static Site Generator)である.SSG は日本語では静的サイトジェネレータと呼ばれ,その名の通り静的なサイトを生成することができる. SSG は HUGO を使っているのだが,HUGO は GO 言語で開発されており,高速に動作すると言われている.(他を実際に使ったことがないので本当はわかりません.)
パソコンは苦手なので,環境構築には1日ほどかかってしまったが,手順としては簡単に導入することができた.他の方の手順紹介に,どこでコマンドを実行したら良いかを追加して紹介する.
自分は,Github で管理しているリポジトリはすべて~/Github/
にあるので,その部分だけ自分似合わせてもらえばいいと思う.
ここでは,環境構築の手順を紹介する.手順の概要は以下.
Gihub Pages x HUGO 導入手順
- Github のアカウント作成
- Github Pages のためのリポジトリ作成
- Github Pages のソースファイルを保存するリポジトリ作成
- サブモジュール化
- HUGO サイト作成
- 記事の作成
- デプロイ
- サイト確認
以上が手順であるが,環境構築中はほとんどchanmitsu55 さんのこちらの記事を参考にさせてもらったので,こちらを見てもらうとわかりやすいと思う.
Github は知っている人が多いと思うが,Github Pages とは Github でサイトを公開するサービスである.
Github のアカウント作成
Github のアカウントをすでに持っている場合はスルーして良いが,まだな方はGithub のホームからまずはアカウントを作る.また,作成したリポジトリをローカルにクローンする.
Github Pages のためのリポジトリ作成
Github では,通常は好きなリポジトリ名をつけることができるのだが,リポジトリ名をusername.github.io
とするとネットに公開される.
$ cd ~/Github
$ git clone https://github.com/username/username.github.io
Github Pages のソースファイルを保存するリポジトリ作成
Github Pages x HUGO でブログの作成方法を紹介している方をみると,username.github.io
リポジトリとソースファイルを保存するリポジトリは分けた方がいいようだ.今回は,blog
という名前のリポジトリを作成した.
$ cd ~/Github
$ git clone https://github.com/username/blog
HUGO サイト作成
HUGO コマンドを用いて HUGO サイトを作成する.ここで,サイトのテーマはこちらから選択することができ,好みのテーマがあれば github リポジトリなどが記載されている.
$ cd ~/Gibhub
$ hugo new site temp
$ cd temp/theme
$ git clone https://github.com/appernetic/hugo-bootstrap-premium
$ cd ..
ここまでで,HUGO サイトと使用するテーマは準備された.次は,~Github/temp/config.toml
を書き換える必要がある.公式のリポジトリに記載されている.以下のconfig.toml
は先ほど言及したchanmitsu55 さんのこちらの記事を参考にした.
自分のconfig.toml
にする際はusername
などを自分に合うように変更すると良い.
baseURL = "https://username.github.io/"
languageCode = "ja-jp"
weight = 1
title = "title"
publishDir = "public"
theme= "hugo-bootstrap-premium"
hasCJKLanguage = true
paginate = 10
paginatePath = "page"
[permalinks]
post = "/:year/:month/:day/:filename/"
code = "/:filename/"
[author]
name = "author name"
email = "mailaddress@yahoo.co.jp"
[params.theme]
name = "yeti"
[params]
BrandImage = "/logo.png"
brand = "brand name"
topline = "topline"
footline = "Copyright© <a href='/about/'>name</a>"
showRightSidebar = true
highlight = "default"
twitter = "acount id"
github = "acount id"
[[menu.main]]
name = "Home"
identifier = "home"
url = "/"
weight = -200
pre = "<i class='fa fa-home'></i>"
[[menu.main]]
name = "Archives"
identifier = "archives"
url = "/post/"
weight = -180
pre = "<i class='fa fa-archive'></i>"
[[menu.main]]
name = "About"
identifier = ""
url = "/about/"
weight = -100
pre = "<i class='fa fa-info-circle'></i>"
こちらも公式リポジトリにサンプルがあるので,少しづつ自分用に変更していこうと思う.
サブモジュール化
サブモジュール化するためには,一度~/Github/blog
内のpublic
を消去する必要がある.この方法は公式ドキュメントに記載されている.
$ cd ~/Github/blog
$ rm -rf public
$ git summodule add -b master https://github.com/username/username.github.io public
記事の作成
記事の作成はhugo
コマンどを用いると簡単にできる.
$ cd ~/Github/blog
$ hugo new post/articlename.md
ここで作成されたファイルを編集することで記事が完成する.生成ファイルの 4 行目に
draft : true
とあり,これは下書き中を意味する.ネットに載せるためには
draft : false
に変更すると良い.
デプロイ
~/Gibhub/blog
内に記事を書いてもデプロイしなければ Github Pages で公開されない.デプロイする処理のスクリプトが公式で紹介されている.以下のファイルは~/Github/blog/deploy.sh
とする.
#!/bin/bash
echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"
# Build the project.
hugo
# Go To Public folder
cd public
# Add changes to git.
git add .
# Commit changes.
msg="rebuilding site `date`"
if [ $# -eq 1 ]
then msg="$1"
fi
git commit -m "$msg"
# Push source and build repos.
git push origin master
# Come Back up to the Project Root
cd ..
deploy.sh
を実行する際には
$ ./deploy.sh
とすると良いのだが,ファイル作成直後は実行権がなくて実行ができない.
$ bash ./deploy.sh
としたら実行できる.しかし,後のことも考えると
$ chmod +x deploy.sh
として実行権を与えておくとよい.
サイト確認
ここまでで,ネットにサイトを公開することができる.実際にサイトを閲覧するためには,ブラウザを開き,URL 欄にhttps://username,github.io
とするとサイトのホームが表示される.
編集時のススメ
実際に記事を編集している際にはなんどもデプロイせずに
~/Github/blog $ hugo server
と実行することでローカルサーバを立て,ブラウザの URL 欄に
localhost:1313
と入力することで逐次記事の状態を確認しながら作業できる. これは こちらにも方法を記載した.