githubでブログを作ってみる - Pelican編

前回はGithub Pagesでブログを作るために静的サイトジェネレータoctopressをローカルで表示できるところまでやりました。が、いまいちしっくりこないということでいろいろ探したところPelicanなるものを見つけました。Pelicanも静的サイトジェネレータであり、Pythonで書かれれいるのでPythonスキーにもうれしい。ということで今回はきちんとGithub Pagesでいまご覧になってるページを表示するまでを紹介します。

Pelicanの導入

環境は次のとおりです。

  • debian wheezy
  • python 3.4.2
  • pelican 3.4.0

python3.4の導入

Python3系で使おうとしたのですが 自分の環境ではPython3系として3.2が入っていて、 公式 quickstart を見るに3.3以上を求めてるので私は現時点の最新版をいれることにしました。

インストールは

$ ./configure
$ make
$ sudo make altinstall

altinstallはpython3とタイプしたときは既存のバージョン、python3.*としたときはそのバージョンが起動するようにするためのものです。そうなっているか確認しましょう。

$ python --version
Python 2.7.3
$ python3 --version
Python 3.2.3
$ python3.2 --version
Python 3.2.3
$ python3.4 --version
Python 3.4.2

問題ないようです。

仮想環境の作成

この調子で仮想環境も作ってしまいましょう。

$ virtualenv -p python3.4 --no-site-packages blog
$ cd blog
$ source bin/activate
$ python --version
Python 3.4.2

Pelicanのインストール

せっかく?仮想環境を作ったので安心して最新版を使っていこうと思います。

$ git clone https://github.com/getpelican/pelican.git
$ cd pelican
$ python setup.py install

基本設定

$ mkdir myblog
$ cd myblog
$ pelican-quickstart 

いろいろ聞かれるので適当に答えていきます。よく分からないところは後から変更もできるのであまり気にせずに。

記事作成

記事はcontentディレクトリ内に書いていきます。

今回はMarkdown形式で書くので更にpipからMarkdownを入れておきます。

$ pip install Markdown

他にもreStructuredText形式も使えます(というかこちらを使うのがPythonicでしょう)。

ファイルの先頭に記事の情報をこんな感じで書いていけば完成です。

Title: githubでブログを作ってみる - Pelican編
Date: 2014-11-04 01:00:00
Category: tool
Tags: python, pelican
Author: notetau
Slug: 20141104-github-pelican
Summary: 概要...

本文...

ちなみにSlugというのはURLのページ名になります。 後は

myblog$ make html

とすればHTMLが出力されます。

プレビュー

後は

myblog$ make serve

すればローカルで表示できるようになりました。今回はすんなりと行きました、よかった。 Pelicanではデフォルトのポートは8000なので http://localhost:8000/ をみて見ましょう。 ちなみに書きながら表示をチェックする時には

mablog$ make devserver

とすると、変更を検知するたびにhtmlを作ってくれながら、Webサーバも立ち上がります。

各種設定

Pelicanの設定ファイルはpelicanconf.pyとpublishconf.pyになってます。

pelicanconf.pyの中で各種変数を定義しておけば、うまいことやってくれる感じ です。どんな変数があるかは 公式 で確認するといいでしょう。 変数の中でおそらく大事なのはこのあたりでしょうか。

AUTHOR = 'notetau' #筆者
SITENAME = 'Memo In Notebook' #サイト名
DEFAULT_LANG = 'ja' #使用言語
DATE_FORMATS = {
    'en': '%Y-%m-%d',
    'ja': '%Y-%m-%d',
} # 日付フォーマット これが無いと日本人から見ると変なあのフォーマットになるので設定したほうが無難かと
THEME = 'テーマへのパス'

後はLINKやSOCIALを適当書いていけばいいと思います。 テーマは https://github.com/getpelican/pelican-themes あたりから拾ってきて、THEME変数に使いたいテーマのパスを設定すればおkです。

publishconf.pyの方はGithub Pagesにアップする人はあまり気にしなくて良い模様です。

Github Pagesに公開

前回もやりましたがユーザー名.github.ioというリポジトリを作って、そのmasterブランチにpelicanで生成したoutputディレクトリのファイル群を流せば完了です。

Github PagesのUserPageに載せるだけであればoutputディレクトリをgitで管理すれば大丈夫です。ただし、設定ファイルやMarkdownファイルなどは別にバックアップをとっておいたほうがいいでしょう。

output$ git init
output$ git add --all
output$ git commit -m "message"
output$ git push https://github.com/ユーザー名/ユーザー名.github.io.git master:master

参考ページ

Comments