CircleCIに移行
ブログの管理をBitbucketからGitHubに移行した。ついでにWerckerからCircleCIに移行することにした。Werckerに不満があるわけでもないんだけど、ORACLEに買収されてしまったのでなんとなく不安が…。
これを機に、ブログのテーマの扱いも変更。
ブログのテーマ
ブログはHugoで生成している。テーマはTranquilpeakを使っている。テーマは変更したいんだけど、他に気に入ったテーマがないのでもうしばらくはこのままかな。
このテーマ、少し修正したいところがある。
- カテゴリ名がURLエンコードされる
- タイトルを
記事名 | ブログ名にしたい - RSSを変更したい
テーマそのものを更新するとテーマの管理が大変になるが、Hugoはテーマの部分を上書きする仕組みが存在する。
config.tomlと同じ場所にlayoutsディレクトリを作成することで、テーマのlayoutsディレクトリを上書きしてくれる。
今回はこのようなファイルを追加した。
layouts
├── _default
│ └── rss.xml
├── partials
│ └── head.html
└── taxonomy
└── category.terms.html
rss.xml
ファイル全体。
URLは/index.xmlになるので注意。
{{ .Site.Title }}
{{ .Permalink }}
Recent content on {{ .Site.Title }}
Hugo - gohugo.io
{{ with .Site.LanguageCode }}
{{.}}
{{end}}{{ with .Site.Author.email }}
{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}
{{end}}{{ with .Site.Author.email }}
{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}
{{end}}{{ with .Site.Copyright }}
{{.}}
{{end}}{{ if not .Date.IsZero }}
{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}
{{ end }}
{{ range first 15 .Data.Pages }}
{{ .Title }}
{{ .Permalink }}
{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}
{{ with .Site.Author.email }}
{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}
{{end}}
{{ .Permalink }}
{{ .Summary | html }}
{{ end }}
head.html
変更部分のみ表示。
{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}
...
category.terms.html
変更部分のみ表示。
{{ $categories := .Params.categories }}
CircleCI
CircleCI用に.circleci/config.ymlを作成する。
version: 2
jobs:
build:
docker:
- image: jnyo/docker-hugo-firebase:latest
working_directory: ~/blog.teapla.net
steps:
- checkout
- run:
name: Hugo
command: |
git submodule init
git submodule update
hugo
- deploy:
branch: master
command: firebase deploy --project "$FIREBASE_PROJECT" --token "$FIREBASE_TOKEN"
filters:
branches:
only: master
git submoduleしているのはテーマをsubmodule化しているため。
$FIREBASE_PROJECTと$FIREBASE_TOKENはあらかじめCircleCIの設定を行っておく。
ブランチ指定、2か所いらないような…。ひとつめのbranch: masterは削除しても大丈夫そうだな。
[-] Sample 2.0 config.yml Files - CircleCI
https://circleci.com/docs/2.0/sample-config/