phoenix-powerサブドメイン問題か知らないけど、まだ解決されてなかったみたいな感じでした。

HUGO

使い方

HUGOは、ビルドがかなり高速ですが、スクリプトやコマンドが少なく、pushとかdeployとか、そういうのを自分でやりたい人はオススメですが、やりたくない人は、オススメできない感じでした。

1
2
3
4
5
6
7
8
9
10
11
12
13
# install
$ brew install hugo

# template
$ hugo new site my_site

$ cd my_site

# preview
$ hugo server

# build
$ hugo

こんな感じで使えます。出来上がったファイル、デフォルトでは、publicフォルダに置かれますが、それを Web サーバーの方に置けば、作成したページが見れます。

Theme

テーマのダウンロードは、個別にするか、全部するかなど。

1
$ git clone --recursive https://github.com/spf13/hugoThemes.git themes

使い方は、大体ドキュメントみれば分かりそうですが、コマンドを叩いて、エラーで確認するとよいでしょう。テーマによって違いますが、そのままで動くの少なかった印象です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$ git clone https://github.com/roperzh/tinyce-hugo-theme

$ cd !$:t

$ hugo server

$ cat << EOF > config.yaml
---
contentdir: "content"
layoutdir: "layouts"
publishdir: "public"
indexes:
  category: "categories"
baseurl: "http://syui.github.io/hugo-air"
title: "Hugo Blog Template for GitHub Pages"

# https://github.com/spf13/hugo/issues/230
#subdomain: "hugo-air"
#permalinks:
# post: "subdomain/:year/:month/:title/"
EOF

$ mkdir -p theme

$ cp -r layout/{_default,partials} theme/

$ mkdir -p content/posts

$ cat << EOF > !$/newest.md
---
title: "Just another sample post"
date: "2014-03-29"
description: "This should be a more useful description"
categories: hack
    - "hugo"
    - "fun"
    - "test"
---
EOF

$ hugo server

GitHub Pages

私は、個別記事にサブドメインが変なリンクになって、アクセス出来ないので、Site.BaseUrlhttp://syui.github.io/hugo-airに修正しました。他のファイル(タグやメニュー等)も同じような修正を行わなければならない感じですね。

layouts/theme/_default/list.html
1
2
3
4
5
6
7
8
9
<div class="post-content">
  <h1 class="post-title">
    <a href="http://syui.github.io{{ .RelPermalink }}">{{ .Title }}</a>
  </h1>

  <span class="post-date">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>

  <p>{{ .Description }}</p>
</div>

GitHub pagesにポストしたい場合は、公式通りにやれば良いです。

個人的には、以下のような感じで、リポジトリを作って、gh-pagesブランチにpushします。

$ cd public
gh-pages-push.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
echo -n username:
read user
repo=`echo $PWD:t`
repo_j={\"name\":\"$repo\"}
url="https://github.com/"$user/$repo.git

curl -u $user https://api.github.com/user/repos -d $repo_j

rm -rf .git

git init

echo $url

git remote add origin $url

git commit --allow-empty -m "noun"

git push -u origin master

git checkout -b gh-pages

git commit --allow-empty -m "noun"

git push -u origin gh-pages

後は、pushすればよいです。

1
2
3
4
5
$ git add *

$ git commit -m "test"

$ git push

また、場合によっては、ソースなどもmasterに置いておくと良いかもしれません。

ちなみに、hugopushは、同時に行えるようにスクリプトを書いておくか、エイリアスでも設定しておくと便利です。

deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash

cd ~/blog/hugo

hugo

cd public

git add -A

git commit -m "updating a blog `date`"

git push

cd ~/blog/hugo

Demo:

http://syui.github.io/hugo-air/