2006年 09月 11日

tt

blosxom のテンプレートを TT に置き換えるやつをいろいろ試してる。一つのファイルにしてしまって [% FOREACH entry IN entries %] みたいにしたい。
ので、TT の process は一括して last に行うことになる。
でもって問題なのは、story テンプレートで使われることを想定しているプラグイン変数なんですよね。これって次々と変わっていくから、最後に一括して処理したいというこの場合、随時全て保存しておかなければならない。
ここで、プラグイン変数を全て保存しておこうとすると、プラグイン変数の名前を全て知っていないといけない。けど、どうやって知ればいいのかわからない。簡単にやる方法あるんだろうか。


ということで、回り道をし、発想を逆転させて、テンプレートパースを先にやる。
use Template::Parser して parse($text) すると Template::Document オブジェクトが帰ってくる。こいつの BLOCK にはコード化されたテンプレが入っているので、$stash->get ってなっている部分を正規表現 (!) で抜いてくる。
んでごにょると、テンプレートで使われているであろう変数名が余計なものも全部とれるので、この変数名を story テンプレートを通るたびに全てのプラグインからとってくる。かなり無駄だけど!!


http://mizzy.org/program/blosxomTT.html が似たような方法だったけれど、どうも Data::Dumper してみてみると、ちょっと変に連結されてしまったりするので、まるパクできなかった。

つかれた

$ cd
$ svn propset moe "zyosikosei" .

blosxom

  • meta プラグイン併用で text formatting rule を変更できるプラグイン
  • 投稿フロントエンド。wikieditish で結局いいじゃんとか思うけど

tt

動くようになった。

参照方法がちょっとキモいなぁ。
というか XREA に TT 入れるのめんどくさそうだからどうせ使わないだろうなぁ、と思った。無駄じゃん! インターフェイス作ったほうがいいじゃん!

それに plugin が対応してくれないと恩恵をうけられない。writeback を FOREACH でまわす、とかできないし。普通のフレーバーで十分だなぁ、と作ってから思う罠

はつおん

  • ばっしゅ
  • ぜっとしぇる, ぜっとえすえいち
  • しーしぇる
  • てぃーしーしぇる
  • えすえいち
  • ヴいあい
  • ヴぃむ
  • りん えす
  • ちぇんじもっど
  • ちょうん
  • えすゆーどぅー
  • えむけーでぃあー
  • あーるえむでぃあー
  • ヴぁいあぐら
  • でぃーあいえふえふ
  • きゃっと
  • ている えふ
  • てぃーえーあーる ぜっとえっくすぶいえふ (ただし入力時は xzvf)
  • えすえすえいち
  • えふすく
  • るびー
  • ぱーる, ぺるる
  • しーぱん
  • ぺちぺ
  • おっぱい
2006年 09月 10日

blosxom section plugin

section

この日記みたいな URL で blosxom のエントリにアクセスできるようにするプラグインです。

例えば blosxom デフォルトだと /2006/09/09/ までしか時間単位で特定できないですが、このプラグインで /2006/09/09/1 とかという風に完全に時間ベースで一つのエントリを特定できるようになります。

特定の環境でしかテストしてないのでいろいろ不具合があるかも。extensionless とは共存できるみたいです。

blosxom redir plugin

http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/redir
/2006 とかを /2006/ にリダイレクトするのを書いてみた。ブックマーク最適化! アーカイブなんてブクマしないけど
どっかで全く同じ機能のを見た気がするんだけど、どうも思い出せない。extensionless と同じ作者かと思ってたけど違うしなぁ。

LDR rate

ブックマークレットから登録しようとして、登録済みのときってそのままじゃレート変更できないけど、普通に一回購読停止すればいいことに気付いた。

Ruby

ブロック引数の特殊デフォルト仮引数変数 (意味不明だ。なんていうんだろう) 欲しいなぁ。Groovy の it, Perl の $_ みたいなの (Ruby の $_ は gets とかでしかセットされない)。ワンライナー書くとき |i| とか書くのめんどい。
ちゃんと書くときは使わないだろうけど、[1, 100, 1000].map { it.to_s(16) } とかできたら楽ちん。パイプうつの苦手だからかなぁ。

pukiwiki がまた空白ページ

前回と同じ症状

書き換える前のバージョンに戻したら直った。他の wiki 探さないとダメだなぁ。

Feed

読む (未読 10000) -> 読み終わる (0) -> リロードして読む(10050) -> 読み終わる (0) -> リロードして読む (10100)
というのを考えた。まだなってない。だいじょうぶ

Vi mode by AutoHotkey

http://lowreal.net/2006/vi.ahk
あきた。 たぶん使わない。でも今は使ってみてる。

  • アクティブウィンドウの左上に常にモード表示
  • 超一部のキーしか考えてない
  • visual モードはキモすぎ。
  • C-[ では normal に戻れない。だって! ESC 入力する手段がなくなる!

perldoc

なんかどうも Perl のコード書いてるときより、perldoc 書いてるときのほうが、Perl やってる感じがする。わけない。けど、ちょっと思った。CPAN のせいか、な。意味不明

negotiation blosxom plugin

http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/negotiation
書いてみた。extentionless や、xhtml2html を含んだ形のコンテントネゴシエーションプラグイン、ということにしたい。
406 Not Acceptable の場合を作ってないので発展途上すぎ。
ロジック自体は Taglibro のやつをそのまま Perl に移植した。Taglibro は Apache の実装をパクったはずだから Apache っぽいはず。知らないけど!!
xhtml2html を含む、というのは、text/html と application/xhtml+xml の qs を同じにしておくと、Fx や opera の場合 text/html の q が低いため、自動的に application/xhtml+xml が選択される、というだけ。
もうちょい頑張ろう。

2006年 09月 09日

DECON

やろうと思ったこと

  • vim の text-object しらべ (今はひたすら V と jk を使ってる)
  • * と # すごす
  • さらに CSS リロード

ctag も便利そうだけど、使い始めるのがめんどそう


ノートを買ったらやろうと思ったこと

  • svk
  • CPAN-Mini

オフラインで開発って、CPAN どうするんだろうって思ってたけど、疑問が解決した

というのを向こうにあとで書く。書かない。書く。たぶん書く。XML 書く気になったら書く。

>

Development Environment Conference に行った

Development Environment Conference に行ってきた。

  • vim text-objects
  • *, #
  • CSS 超高速リロード
  • svk, CPAN-Mini でオフライン化
  • バイナリパッチングカッコヨス

Element.nodeName

http://d.hatena.ne.jp/nagaton/20060908/1157691716
コメントに思いついたのを勢いで書いてしまったけどちゃんと検証するお><

ただ上の二つのページは完全に同じではなく、DOCTYPE が違うので完璧な検証ではない。XHTML 1.1 は text/html で送るべきじゃないらしいので html のほうは ruby 要素を消しつつ XHTML 1.0 Strict に書き換えてある。

document.body.namespaceURI も云々なので、XML としてパースされるか、HTML としてパースされるかがどうとかこうとか

blosxom section plugin

http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/section
作業中

>

日付を拡張する感じで /2006/09/09/1 でその日の一番目のエントリ、/2006/09/09/2 で二番目みたいにする。のを書いてみた。うーん。

これだと /foo/bar/baz/1 とかがおかしくなる気がする。ちゃんとチェックしよう。

だめすぎた。

いい方法が思いつかないなぁ。簡単にやろうとすると sort ルーチンの影響をうけてしまう。
section number ふるためだけに、ハッシュ&配列を使わないといけない気分。

  • story flavor でセクションナンバーが使えなければならない(permalink にしたいため)
  • date や story は sort の影響をうけるため、こいつらでインクリメントはできない

blosxom

/2006/09/01/1.html でいいようにしたいなぁ。
あと /2006/09/01 の場合 /2006/09/01/ にリダイレクトしたい。これはどっかでぷらぎん見たことある気がする。

1.html とかってやるばあい $blosxom::path_info を空文字にしたらいいようだ。ヒエラルキーチェックを飛ばせる。

Publish::Blosxom

ファイル名の生成を md5 でやっているので数値が先頭にきてしまう。a でも z でも入れないとだめぽい。
あとエントリ時間を変えられてしまうので utime するように
http://trac.lab.lowreal.net/trac/lowreal/browser/mypla/Plagger/Plugin/Publish/Blosxom.pm

改造したの公開するのはマズいな。ライセンス考えてなかった。

Artistic License らしい。

config
  meta:
    foobar: join " ", @{ $args->{entry}->tags }

とかで meta 追加できたらいいかもしれない (やってない

section

一応動いたっぽい。1555 エントリを適当につっこんでみると 0.5 sec かかる。section が悪いのかなぁと思ってアンスコつけてみたけどあんまり変わらなかった。
entries_kache 入れると 0.3 sec ぐらいになる。へー
http://trac.lab.lowreal.net/trac/lowreal/browser/c/blosxom/plugins/section

あと kyo-san にいろいろ助けてもらったよ! カリスマリスティック!1
$$story_ref = "" でどーんとか。filter だとヤバくね? とか

TT

Template Toolkit 使う blosxom が欲しい!
plugin としてじゃなくて、もう完全に1ファイルにまとめてしまう感じに。
あと、既存の plugin と互換性を保ちつつ、Entry をオブジェクト化とかできないかなぁとか、section 作ってて思った。Entry オブジェクトに section attr を plugin で追加して云々、みたいなのできたら楽だったんだけどなぁ。
TT 使ったらどこで動くモノじゃなくなりそうな感じがする。 レンタルサーバに TT って入ってるものなのかな。とか、無駄なことを考えた。