Pythonの静的サイトジェネレータ"Pelican"でお手軽にブログをはじめる手順

## はじめに
いままではてなブログを利用していたけれど、日常のくだらない話とTECH系の話題が混合しており、見づらい＆書きづらい状態なのでこれらを分離しようと思ったことが動機。

別に、TECH系のブログもはてブやWordPressでよかったんだけど、せっかくならちょっと変わったやり方で書きたいなと思い、ググったら出てきたのが**「Pelican + Markdown + GitHub Pages」**で書く方法だった。

ググってみた感じそんなに難しそうでもなかったし配布されてるテーマも多かったのでこの方法に決めた。

## 環境

Windows 10
Python 3.5.2
pip
pelican 3.7.1

## GitHub Pages用のレポジトリをつくる

自分のGitHubページから新しくレポジトリを作成。
Github PagesにはUser PagesとProject Pagesの2種類あるが、個人ブログだったらUser Pagesでいいかと。[username.github.io]という名前でレポジトリを作成。

それがすんだらローカルにそのレポジトリをクローン。
```
$ git clone https://github.com/username/username.github.io
```

## インストールとセットアップ

次はローカルに必要なものをインストール。
```
$ pip install pelican Markdown
```

## 便利なpelican quick-start

Pelican には ```$ pelican-quickstart``` という便利なコマンドがあり、これを実行すれば対話形式でブログタイトルやタイムゾーンの設定などを聞かれ、ブログのひな形が簡単にできあがる。
たぶん最終的にディレクトリ内はこんな感じになるかと。

```
username.github.io/
├── content
├── output
├── develop_server.sh
├── fabfile.py
├── Makefile
├── pelicanconf.py       
└── publishconf.py       
```

## ブログを書く

ここまで来てしまったらほとんど終わり。あとはMarkdown形式でもreStructuredText形式でもお好きなかたちで記事を書いて、/content内に保存すればオーケー。ちなみに/content/category/***.mdみたいにすれば自動でカテゴリー分けされる（っぽい）。

## ローカルで確認

Windowsではmakeコマンドを使って簡単にビルドできないので[コチラ](https://gist.github.com/traeblain/4252511)をダウンロードして一部書き換えることで代替。
具体的にはpmake.cmdの

```
set _PELICAN=$pelican
set _PELICANOPTS=$pelicanopts
```

の部分を

```
set _PELICAN=pelican
set _PELICANOPTS=
```

に書き換えればオーケー。
```
$ pmake html
```
これでエラーが出てこなければ無事htmlファイルが生成されたということ。
デフォルトで/output以下に作られる。
```
$ pmake serve
```

無事起動したら```http://localhost:8000/```で確認。

## テーマを変更する

これは人によりますが、デフォルトのテーマを変更したい場合があるでしょう。
自分で一から作っても問題なし。もう少し手軽にテーマを変更したい場合は、[Pelican Themes](http://pelicanthemes.com/)からお気に入りのものを引っ張ればオーケー。

①好きなテーマの公開リポジトリからローカルのお好きなディレクトリにクローンしたのち、
```pelican-themes - i [クローンしたディレクトリ]/simple-blog-theme```
みたいな感じでテーマをインストール。
それがすんだら、
``` pelicanconf.py```を開いて

```
THEME = 'simple-blog-theme' 
```

と書き加えてください。

うまくいかない場合はテーマがインストールされているか確認。
```pelican-themes -l```
でインストールされているテーマの一覧が出るはず。

②```pelicanconf.py```と同じディレクトリ上にthemesみたいなディレクトリを新規作成。ここに公開されている全部のテーマを置いておく方法もある。（ぼくはこっち）
具体的には
```
git clone --recursive https://github.com/getpelican/pelican-themes themes/pelican-themes
```
おそらくだいぶ時間がかかるが、これをやっておけば後々のテーマ変更も楽。
終了後は```pelicanconf.py```を開いて

```
THEME = './themes/pelican-themes/simple-blog-theme'
```
のように書き足せばオーケー。

実際にテーマを変更してみるとわかるが、どれも個々に仕様が異なりカスタマイズが自由。公式サイトなどがあればそれらを参考にcssなど書き換えてみてもいいかも。（自己責任で）

### おすすめテーマ

[blueidea](https://github.com/blueicefield/pelican-blueidea/tree/8f11c0e3b4b8e9ef45d1243b0175db91b7b42ba8)

[blue-penguin](https://github.com/jody-frankowski/blue-penguin/tree/c5e23e7753367b5beacce87b732cd1567c4818f9)

[pelican-clean-blog](https://github.com/gilsondev/pelican-clean-blog/tree/ea156f8f1741e473bc0ab848b7c8898112d6ffb5)

[Flex](https://github.com/alexandrevicenzi/Flex/tree/5bc235cf579cb03bcc8f54b6029ff74493a0cb44)

[medius](https://github.com/onur/medius/tree/c4399ffdae1070fcd476157f4ab4109448d15b77)

## GitHub Pagesにアップロード

いよいよ最後。GitHub Pagesにブログを公開するにはPythonのghp-inmportというモジュールがあるとブランチを別で作れてhtml,cssだけ公開できて便利です。

```
$ pip install ghp-import
$ ghp-import output
$ git commit -m "first post"
$ git push -f origin gh-pages:master
```

これで終了。ブラウザを開いて```http://username.github.io```を開いてみましょう。
（反映されるまでに10分程度かかる場合もあるらしいので注意）


## 参考文献

[Pelicanでブログを始める最初の一歩 - もくもくブログ](http://blog.muuny-blue.info/64517d8435994992e682b3e4aa0a0661.html)

[Pelican + Markdown + GitHub Pagesで管理するブログの作り方 - Human as a Serviceな日々](http://blog.sotm.jp/2014/01/04/Pelican-Markdown-GithubPages-install-guide/)  

[PELICAN + GITHUB PAGES でブログを作った話 - FUTON NOTE](http://daikishimada.github.io/pelican-start.html)

[ブログジェネレータをTinkererからPelicanに移行した - 続・ラフなラボ](https://memo.laughk.org/2014/08/10/tinker2pelican-repo.html)

[Pelicanでブログ作成 on Windows](http://qiita.com/daiki7nohe/items/ed82af5b302c83ff3336)

[Pelicanにテーマを導入してみる - Qiita](http://qiita.com/_rdtr/items/6e579750898738c663dd)