Hiki

Spamブロック付きコメントプラグイン

30分プログラム、その100。Hikiのコメントプラグインspamブロッック付き。100回目なのにしょぼいのは気にしない。標準でついてくるコメントプラグインをハックして、英数字のみから成るコメントをはじくようにした。あと、id:selvaggioに「コメントプラグイ…

Hikiハック

30分プログラム、その53。Hikiをちょっとだけ改造しよう。内輪Wikiで、TODO管理をしていたら、誰かから『sageでやれ』と怒られた。いい機会なので、sageでやりやすいように改造しよう。 sage自体は「タイムスタンプを更新する」チェックボックスをはずせばい…

RPCインターフェース

曰くmisc/xmlrpc/READMEに説明があるらしいが、そんなファイルは見つからなかったのでコードを読んだ。エントリポイントはhiki.cgi。要するに、Wiki本体と同じ。 wiki.getPage(page) 指定したページの内容を取得。 wiki.getPageInfo(page) タイトル(title)、…

tex.rb

mimetexなプラグインです。hikiconf.rbで、mimetexへのURLを指定してください。 @options['mimetex.url'] = 'http://mzp.sakura.ne.jp/mimetex/mimetex.cgi' def tex(eq) url = @options['mimetex.url'] + '?' + eq.escape.gsub('+','%20') %(<img src="#{url}">) end 単純に、…

グーグルカレンダープラグイン

id:mzp:20070211:calendarで調べたのを元にプラグインを作りました。普通のRSSフィードとしてパースするには独自拡張が多かったので、REXMLをつかってXMLとしてパースしました。あと、アカウント名を秘密にする工夫をいくつか。

プラグイン祭り

今までごにょごにょ書いてたプラグインをまとめて公開。 プラグインの先頭に、コメントの形で説明を入れた。あー、疲れた。

fortune

テストの息抜き、その2。 引数で渡されたページ数にあるリストから、ランダムでひとつ取り出して表示する。 def fortune(pagename) content = @db.load pagename messages = content.grep(/^\*\s*/){ $' } messages[rand(messages.size)] end

Subversionをバックエンドに

さくらで運用してるHikiのバックエンドにSubversionを使うように設定した。 これと、Hiki - history.rbを併用すると、過去の任意の状態に戻ることができるようになる。 Hiki - repositoryの通りに設定しても動かなかった。原因はsvnをおいてあるディレクトリ…

ls

"prefix_match_list"と同等。 後で見つけたんだからしょうがないじゃんかよー。 def ls(*dirs) pages = [] @db.page_info.each do |a| name = a.keys[0] title=page_name(name) for dir in dirs if name.length > dir.length and name[0..dir.length]==dir+'…