読者です 読者をやめる 読者になる 読者になる

BuzzLog / バズログ

BuzzLog / バズログはニュースとエンターテインメントを伝えるメディアです

Pelican + Github Pages で無料ブログ構築

静的サイトジェネレータを使って Github に Web ページをホスティングします。
Markdown を使える & ブラックボックスではない(得意な言語で書かれている)という選定基準で、
私は Python 製の Pelican を使ってみます。
完全無料でブログ構築出来ましたので、作業ログを載せておきます。

Pelican 基礎

基本的に以下の手順に従えば OK。
pip で pelican, Markdown をインストールして、
$ pelican-quickstart でサイトを自動生成します。

daikishimada.github.io

Github Pages でホスティング

以前はブランチ名とかに縛りがあった(?)けど、今はリポジトリ直下に docs ディレクトリを作って html 突っ込めば良い幸せな世の中。
username さんの repo リポジトリGithub Pages によるホスティングをしたい場合は、
url が https://username.github.io/repo 以下に作成されます。 設定は以下のサイトを参考にしました。
GitHub 上で設定をポチポチするだけっす。

www.kaitoy.xyz

サブディレクトリに URL 指定したい

repo/docs 以下に追加したファイルは url が https://username.github.io/repo 以下に生成されてしまう。
サーバーのサブディレクトリに置かれるため、
html が参照する css のパスを修正する必要があります。

修正方法はカンタンで、SITEURL に URL を設定する だけです。 github.com

テーマを導入したい

Pelican 向けのテーマが以下のサイトで公開されている。

Pelican themes

pelicanconf.py に Theme 属性を追加して、
make html すれば適用完了。

Travis CI で自動 Deploy

出力ファイルをそのままリポジトリに push してたけど、

  • コミットログが汚くなる
  • 必要な修正がどれかは差分から見づらくなる

ということで、問題意識が出てきました。
対処策の結論としては、出力ファイルを扱うブランチを別ブランチで運用することに。
また、ブランチを分けて手動で push みたいな定形作業は繰り返したくない。

そこで、Travis CI で自動ビルド & Deploy を試してみました。
作業手順は以下を参考にしました。

cyrille.rossant.net

qiita.com