一日の間に全ての ギーク たち が 自分の Githubユーザーページ と Octopress ブログを導入したような気がします。皆がブログに書いた通りに、静的ブログは確かに WordPress などの従来の動的ブログ・エンジンより便利だと思います。これらブログを見ると、私も自分の Octopress ブログを立ちましょう とずっと思っています。
ですが Octopress は私に向いてないかも
初めのところに Octopressの配置手順 に迷わされた。 RVM とはなに? rbenv とは何のこと?見るところ Ruby コミュニティーの発展するハイペースは既に私の想像に超えましたみたい。 彼らは Ruby の各バージョン間に互換性を持つために、バージョン管理が必要らしいです。同様の互換性問題が Python コミュニティーにもある ですが [1] 、 Python は今のところこのようなバージョン管理の必要がないと思います [2] 。
実際に迷惑したのは、私は今自由に持って遊べる Linux 環境が持っていないということ(ほしいなぁ……)。 ですが RVM それとも rbenv 両方も Unix/Linux/MacOSX しか実行できないらしいです。ギークとしたの皆は絶対に Windows つかっじゃいけないんですか?(本当かも……)。
残りは Ruby と Python の争いです。私は Markdown に詳しくない、比べると ReST のほうが私に向いています。それに、どっちでも Pygments を依存しシンタックス・ハイライトをしているから、 Rubyist 達も少なくとも Python を入れなきゃダメみたいです。 私の好みは一切の Ruby コンポーネントを頼らず、 C 拡張もない純粋な Python の実現がほしいです。
そこから Github に Python で実現した静的ブログ・エンジンを探し始めた。 Flask の作者である mitsuhiko 氏が書いた rstblog が素晴らしいが、あんまり他人に使われていないようです。 Hyde は多く使われているけれと、ホームページにブログの感じがみえないです。最後に Pelican を見かけました。
[1] | 例えば Python 2.x と 3.x の間にあまりにも巨大なる差、それと PyPy 、 CPython 、 Stackless 、 Cython など各実現間に微妙な違いがあります。 |
[2] | はい、こっちに easy_install とか pip があります、ですがそれらはパッケージ管理、特定なPython環境を入れた後の話です。Python自身はまだ管理する必要がないです。 Python のバージョン問題も 2to3.py とか 3to2.py のようなツールで変換すればいいです、違うソフトを実行するためたくさんの Python バージョンを残る必要はないです。もしバージョンの違いが気にするなら virtualenv を使うのも構わないが、それも別のことです。 |
それでは Pelican にしよう
私自身にとって、 Pelican は Octopress よりいいところ:
でも Pelican は Octopress のほど注目されていないから、一部問題があります。
- pelican-import は WordPress から導入する時、日本語や中国語は問題となります。
- 多言語の機能と日付、タイムゾーンなどにバグがある。 私は改善しています。
- テンプレートは少ない。
- プラグインも少ない……
こんなに優れたツールにもっと注目されてほしい。
配置
Pelican を入れるのは簡単:
$ pip install pelican
文章を ReST で書いて、
posts
フォルダーに置きます。ページを生成する:
$ pelican -s settings.py
Github に送る:
$ git commit -am "Commit message"
$ git push
私の配置ファイル:
# -*- coding: utf-8 -*-
TIMEZONE = 'Asia/Tokyo'
DATE_FORMATS = {
'en':('usa','%a, %d %b %Y'),
'zh':('chs','%Y-%m-%d, %a'),
'jp':('jpn','%Y年%m月%d日(%a)'),
}
# windows locale: http://msdn.microsoft.com/en-us/library/cdax410z%28VS.71%29.aspx
LOCALE = ['usa', 'chs', 'jpn', # windows
'en_US', 'zh_CN', 'ja_JP'] # Unix/Linux
DEFAULT_LANG = 'zh'
SITENAME = 'Farseerfc Blog'
AUTHOR = 'Jiachen Yang'
DISQUS_SITENAME = 'farseerfcgithub'
GITHUB_URL = 'https://github.com/farseerfc'
SITEURL = 'http://farseerfc.github.com'
TAG_FEED = 'feeds/%s.atom.xml'
SOCIAL = (('twitter', 'http://twitter.com/farseerfc'),
('github', 'https://github.com/farseerfc'),
('facebook', 'http://www.facebook.com/farseerfc'),
('weibo', 'http://weibo.com/farseerfc'),
('renren', 'http://www.renren.com/farseer'),
)
TWITTER_USERNAME = 'farseerfc'
THEME='notmyidea'
CSS_FILE = "wide.css"
DEFAULT_CATEGORY ='Others'
OUTPUT_PATH = '.'
PATH = 'posts'
Github Issue コメント
Disqus コメント