VimRepressでBlog更新

ブログ更新すると言いつつ放置してたので更新する仕組みを考えてみた。
GoogleDocsのネタ帳スプレッドシートにはだいぶネタが溜まってきているんだけどね、いかんせん更新が億劫。ブログ更新って時間かかるんだよな。まさかWordPressのエディタで記事書いたりしないし、いつもはVimでZen-coding使って記事書いて、WordPressのエディタに貼り付けてプレビュー見て、Vimで記事修正して、プレビュー見て、… めんどくさい。

まあそこでVimから直接投稿できないかと考えてみたわけです。XML-RPC経由で。そういうプラグインあるだろと思ったらあった。

VimRepress

やっぱ手に馴染んだエディタから投稿できるとラク。この記事もMacVimで書いてる。Zen-coding使えると本当にラク。ありがたや。

2013年はこれでバリバリ更新できそう。
けどネタばっかり溜めて更新していなかったらネタの鮮度が落ちてネタ帳の半分近くが使い物にならないっていう。

追記: VimRepressいろいろ不具合発見orz

VimRepressのソースコード(blog.vim)を少し読んでみたけど中身はPythonで、Pythonほぼ書いたことない自分にはとっつきにくかった。Pythonの可読性が素晴らしいおかげで読んだらなんとなく分かった。

とりあえず投稿エラー cannot marshal None unless allow_none is enabled を消すために315行目を p = xmlrpclib.ServerProxy(os.path.join(blog_url, "xmlrpc.php"), allow_none=True) にしてPythonのNoneがXMLに翻訳されるようにした。

あとはVimPress時代の環境設定の定数VIMPRESSがそのまま残っていたりしたので
[python]
@exception_check
def blog_guess_open(what):
"""
Tries several methods to get the post id from different user inputs, such as args, url, postid etc.
"""
post_id = ”
blog_index = -1
if type(what) is str:

# blog_urlをg_dataから読み込む
# for i, p in enumerate(vim.eval("VIMPRESS")):
# if what.startswith(p["blog_url"]):
# blog_index = i
if what.startswith(g_data.blog_url):
blog_index = i

[/python]
のように変更した。これでいいのかわかんないけど :BlogOpen は動いてくれるようになった。

これ、pull request送ろうかな。pull request送ったことないから緊張するな。

ともあれ、これで快適にブログ更新できるようになったのは間違いない。
しかし蛇年早々Python読むハメになったというのはPython勉強しろという啓示なのだろうか。

LINEで送る
Pocket