Wed, 02 Jul 2008
pythonとpyblosxomの勉強中なのです
いや、blosxomのrubyによる実装が今でもあったなら、たぶんそっちで遊んだだろうけれど、無いのは仕方ないんだよ、だよ。
大したことはしていなくても、書き留めていくことは大事。…plugininfo.pyという、pyblosxomで現在使用中のプラグインの作者や連絡先等を一覧表示するプラグインがあります。pyblosxomでは、どのプラグインも大体においてとても簡単に特に問題もなく導入できるので、色々ホイホイ入れていっていたのですが、突然plugininfoによる表示ができなくなってしまいました。ブラウザで見ると、check_javascript.pyの作者を表示するところで止っています。…作者のメールアドレスが<>で括られていて、それがエスケープされないままになっているのが原因でした。当サイトはapplication/xhtml+xmlとして文書を吐いているので、ここら辺り厳しくされてしまうのです。
import cgi
plugindata.append("AUTHOR: " + cgi.escape(str(getattr(mem, "__author__", None)) + "¥n"))
plugindata.append("VERSION: " + str(getattr(mem, "__version__", None)) + "¥n")
追加修正したのは最初の二行。二行目は元は三行目と同じ形をしていました。まだ何も分っていない状態ながら、ともかくここを何とかエスケープしてやれば良いのだなと…エスケープする方法はコメントプラグインのcomments.pyを読めばすぐ分ったし、pythonって読み易くて簡単なんだ、と思った瞬間です。プラグインだけでなく本体の方も、pyblosxom.pyとかtools.pyとか、読むともりもり勉強になるなぁ。
まだ続きそう。