鉄は熱いうちに打て
=============================
ブログをWordpressからSphinxに乗り換えた話¶
2016-10-22
私とブログ¶
1995年にパソコン購入。同時にパソコン通信(niftyサーブ)開始。
1999年当時のプロバイダだったInfoWeb(現@nifty)からホームページスペースを与えられたので、htmlを自分で書いてブログスタート。
2004年html書くのめんどくさくなって、どっかのブログサービスでブログ開始。
2006年フリーランスになったので、勉強のために自分でCMSを運営しようとhetemlと契約。Nucleus CMSにブログを乗り換え。
2010年Wordpressの仕事が増えて、プラグインを作ったりしていた。Nucleus CMSの更新がほぼなくなり、hetemlがサポートするPHPのバージョンと合わなくなってくる。hetemlにWordpress簡単インストールというサービスができた機にWordpressに乗り換え。
2016年Sphinx製の静的Webページに乗り換え
どうして乗り換えたか¶
PHPを書かなくなっているうちにhetemlのPHPがバージョン7になった。
Wordpressがしょっちゅう更新しろ!と言ってきて、鬱陶しくなった。
Wordpressにセキュリティーホールが見つかるたびにhetemlからお知らせが来て、対応しないといけないのがめんどくさくなってきた。
ブログしかやってないので、はてなにでも乗り換えようか。。。
セキュリティーとか気にしなくていい、静的HTMLに乗り換えよう!
せっかく、Pythonかけるようになったし、Sphinxだ!
乗り換え方¶
元のサイトをcurlする¶
curl
はHTTPアクセスをしてコンテンツを取得できるコマンドです。
私のブログは記事に番号がついていてそれがURLでした。
http://kamekokamekame.net/archives/1207/
↑こんなの
$ curl http://kamekokamekame.net/archives/[1-9999]/ -o "#1.html"
これで、 [記事の番号].html
というファイル名で取得できます。
htmlをMarkdownに変換¶
htmlを編集し続けるのが嫌だったので、どこにでも持っていきやすいMarkdownにPythonスクリプト書いて置き換えました。
(ここが素敵だとかっこいいんですが、一回だけなんで、愚直に適当に書いてしまいました。 見たかったらどうぞ gist: change_md.py )
Sphinxでhtmlを作ろう¶
インストール¶
$ python3 -m venv env
$ pip install Sphinx commonmark recommonmark
プロジェクト作成¶
$ sphinx-quickstart
conf.py
の修正
source_suffix = ['.rst', '.md']
source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser',
}
index.rst
を作成
ビルド¶
$ make html
build/html
フォルダの中身をサーバーにドーン!
まとめ¶
実はあまりPythonをわかっていなくても, Markdownが書ければ、いいだけな気がする。
嫌になったら、Githubでブログを営むこともできるのでMarkdownにしておくのはいいと思う。
おまけ(rss)¶
feedのプラグインがなかったんで、feedを出力してくれるスクリプトも作りました。
- 自分のMarkdownから、タイトルとか記事とか取るだけのスクリプト。(汚いですが、見たかったらどうぞ。
結局、 feedgenerator
というのを使うと各情報を渡すだけでfeedできます。どーん。
フィードを生成
--------------------------------------------------------------
return feedgenerator.Rss201rev2Feed(title=title,link=link,feed_url=feed_url,description=description,language="ja")
これはもうちょっと綺麗にしたいです。