Hugoとは
静的サイトジェネレーター、つまりブログとかのウェブサイトを簡単に生成できるやつ。 Go言語でできています。
とりあえず使ってみようという時に気をつけなければいけないのが、Hugoはデフォルトのテーマみたいなのは無いということです。
何かしらテーマを指定しないと何も表示されないので、気に入ったテーマを探してきて/themes以下に置く必要があります。
テーマはHugo Themes | Complete Listで探すと良さげ。
いい感じのテーマを見つけたら/themes以下にcloneして、config.toml内にtheme = "テーマ名"
と記述すればそのテーマを利用できます。
hugoはbrewとかapt-getでも入るらしいので自分の環境に合わせて落としてください。 Linuxならクロスプラットフォームバイナリがあるので、hugoをダウンロードしてきてパス通した場所に置けばすぐ使えます。 https://gohugo.io/getting-started/installing/
hugo new site ブログ名
でブログ自体を新しく作成し、hugo new ファイル名
で/content
以下に記事のファイルが作成されます。
慣例的に/content/post
以下に投稿していくのでhugo new post/post_title.md
って感じになると思います。
$hugo new site blog_name
$cd blog_name
$hugo new post/post_title.md
$tree
.
├── archetypes
│ └── default.md
├── config.toml
├── content
│ └── post
│ └── post_title.md
├── data
├── layouts
├── static
└── themes
まぁQuick Startの方がわかりやすいです。…丸投げ。
ローカルで書いたポストを確認したい場合は$ hugo server -Dw
ってやればhttp://localhost:1313
をブラウザでアクセスすることでどう見えるかわかります。
オプションにw
をつければリアルタイムに変更が適用され、D
をつければ下書きも表示できるようになります。
$ hugo undraft content/post/title.md
ってやるとヘッダのdraft: true
が消えてdateの部分も現在の時間に更新されます。
デプロイ
リポジトリにpushしたら自動的に更新される感じにしたいな〜 つーこってwercker使ってデプロイ環境も整備しました。
wercker.ymlはこんな感じ
box: debian
build:
steps:
- script:
name: install git
code: |
apt-get update
apt-get install -y git
- script:
name: clone theme
code: git clone https://github.com/yoshiharuyamashita/blackburn.git ./themes/blackburn
- arjen/hugo-build:
version: "0.26"
theme: blackburn
flags: --buildDrafts=false
deploy:
steps:
- install-packages:
packages: ssh-client
- add-ssh-key:
keyname: HUGO
- add-to-known_hosts:
hostname: example.com
- script:
name: show data
code: ls -la public
- script:
name: transfer data
code: scp -v -o StrictHostKeyChecking=no -o UserKnownHostsFile=no -r ./public user@example.com:~/hugo
実は今回初めてwerckerを触ったので、あんまり良くない書き方してるかもしれません。 これでとりあえずリポジトリにpushしたら自動的に公開できるようになりました。らくちん。
てな感じでブログをやってこうと思いまーす