blosxomのデザインをいじってみた

色々やらなきゃいけないことがたまっていて、現実逃避したくなり、表題どおりデザインを変えてみました。配色とかどうすっかなぁと午前中悩んでいたんだが、CK2でカラースキームの話題に触れてたときに、記事保存してたヨナァということを思い出し、探したらありました。bloglinesの記事保存機能便利だわ。

というわけで、こんな感じの配色にすることにしました。

大体コレでイイやって気分にはなったんだけど、サイドバーのあたりがまだちょっと気に入らない。再度考える必要がありそうだ(サイドだけに)。

taggingプラグインにAjaxな検索フォームをつけた

というわけでAjaxですよ。javascript関連の本を読んだら、早速実践。一回はいじってみたいなと思っていたのだ。

まぁ、いろんなサイトの字面だけ眺めると、要するにXMLHttpRequestオブジェクトとDHTMLでしょなんてのは頭ではなんとなく理解した気になるんだが、実際にサンプルを自分で書いてみる要するにの重さが違う、っというかちゃんと理解した(Javascriptの本も読んだから、コードの内容もわかるし)。

というわけで、軽くウォーミングアップを終えたら、前から気になっていた、taggingプラグインにAjaxな絞込みフォームをつけます。

mizzy.orgさんのとこのソースを眺めて、xmlhttprequest.jsとblosxom2.jsのfindTag関数をパックンチョさせてもらいました。で、findTag関数のHTMLをGETするところでflav=tagという部分を見て

あー、僕はフレーバー切り替えるプラグイン入れてないからとりあえず削っておこ

#req.open('GET', path + '?flav=tag&find_tag=' + tag); req.open('GET', path + '?find_tag=' + tag);

とか考えて、修正して実行したらえらい事に、、、、

Ajax Error Capture

無限連鎖だ。コレはコレでおもろいが、失敗してふと気づいた。そういえば、確かblosxomそのものにフレーバーの切り替えあったような。

やっぱ、ありました

というわけで、tagのリストだけが表示されるように中身が空のフレーバーをいくつか作って解決。

そして、かなり満足気。仕事をやり遂げた気分。

  • ポイント
  • xmlhttprequest用のjavascriptと問い合わせ用の関数
  • divにid属性つけとく
  • listのみを返すフレーバーを作っておく

flav=でフレーバー切り替えてAjaxな仕組みを使うのはなかなか新鮮だった。というか面白いのでもちっと色々やってみたくなったヨ。

kwikiプラグイン

wikiwyg絡みでkwikiプラグインを入れてみようと。で、若干はまるというかすぐにおかしいじゃろっていうことに気づく。

クゥオートのとこと、メタの呼び出しのとこを修正してから、ググって見たら、結局、chromeGraphics::blosxom とまったく同じことをやっていた。

pubmedプラグイン

blosxomでpubmedの文献リストをってことで、

<pubmed> 12368254 15949046 15942029 </pubmed>

みたいに書くとpubmedからタイトルとかとってきて表示してくれるプラグインを作ってみた。

12368254 15949046 15942029

結局NCBIのEutilsを使ってリストを作ってそれをキャッシュするようにした。後は、NCBIの文献情報にリンク張ったり、表示のおかしいとこなおしたりせねばならんが、、、、、

最近眠い。

perlのデバッグ

自分でデバッグするときには、大体見るべきところがわかるので、そこにprint文入れたりとかdumpすると大抵解決するんだが、プログラミング初心者のスクリプトを見てやるときにはそうもいかない。というか、どこら辺がエラーの原因かとかいうめぼしも着かないから、そもそも会話が通じなくて、時間をかなり浪費したりする。

seemoreプラグインにデバッグ用のサブルーチンがあったので、それをうまく使えば、手動かすほうもみてやる方も手間が軽減されてハッピーだ。むしろwarnings,strict,debugは他人のコードには必須アイテムかも。

sub debug { my ($level, @msg) = @_; if ($debug_level >= $level) { print STDERR "$package debug $level: @msg\n"; } }

こんな感じの関数を定義したら、やたらめったらと呼び出すようにしておく。

debug(2, "story() called");

デバッグレベルを指定することで標準エラー出力への内容の詳細さが変えられるようにしとくと、いいみたい。

他人のプログラム見てやることで、効率的なデバッグのテクを習得したから、それはそれで意味あることなのかな?

いや、そういうデバッグ用のモジュールあるはずだからそれの使い方まで覚えるべきなんだろうなぁ。

ってそういうモジュールって何ヨ?

awsxomプラグイン

僕は、お手軽だからという理由で、G-Toolsを使っていたのだが、ナニゲによさげな記事を見つけたので、awsxomを使ってみることにしたヨ。

にーやんのブログ :: awsxomプラグインを使ってみた→いい感じ

前のエントリ(参照)から、Amazon.co.jp アソシエイトのリンクの作成には、fukaz55 さんの awsxomプラグインを使わせていただいています。

少し前から、Amazon のリンク作成には、自分で適当に作った Bookmarklet (ヘタレすぎて非公開)を使っていました。でも、こちらのプラグインを使う方がはるかに簡単なので、ありがたく使わせていただくことにします。

いまのところ入れただけで、デフォルトのままだけど、触った感じはイイ。もうちょっとテンプレートファイルを触って自分好みにしたい。 これをつかって、iTunes今月の5ッ星リストとか、まぁそんな感じのスクリプトを書きたい。

taggingプラグイン(其の弐)

blosxomのタグ付け素敵プラグインtaggingは結局、表示するときに集計する方法で解決しました。

foreach my $category (keys %$tags_list_per_category){
 #if($path eq $category){
 if($category =~ /$path/){
  foreach my $tag (sort keys %{$tags_list_per_category->{$category}}){
   if(($find_tag and $tag =~ /^$find_tag/i) or !$find_tag){
    $merge_tags_list->{$tag} += $tags_list_per_category->{$category}->{$tag};
    }
   }
  }
 }
foreach my $mergetag (sort keys %$merge_tags_list){
 if(($find_tag and $mergetag =~ /^$find_tag/i) or !$find_tag){
 my $encoded_tag = $mergetag;
 $encoded_tag =~ s/(\W)/sprintf("%%%02X", ord($1))/ego;
 $list .= "
  • <a href='$url?tag=$encoded_tag'>$mergetag ($merge_tags_list->{$mergetag})
  • \n"; } }

    コレだとせっかくあらかじめ集計しているのに、呼び出されるたびに計算しなおすのでイマイチかもしれん。もうちょいいい方法あると思うんだけど、やっつけってことで。

    そして、Storableモジュールの使い方は実用Perlプログラミングに書いてあったのでよく読む。リファレンスとOOPのあたりだけかなと思っていたけど意外に面白いのかも(というより今まで面白さがわからなかっただけか?)。

    実用Perlプログラミング
    4900900826スリラム スリニバサン Sriram Srinivasan 須田 隆久

    オライリー・ジャパン 1998-11
    売り上げランキング : 266,644

    おすすめ平均 star
    star言語ハッカー向けの本かも。

    Amazonで詳しく見る
    by G-Tools

    taggingプラグイン

    フォルダみたいな階層構造だと、どうしてもいくつかの層にまたがるトピックで悩んだり、深くせざるをえない整理する側の事情があったりするので、mizzy.orgから、taggingプラグインをblosxomに導入しました。

    さて、僕のBLOGはログっているっていうか書きなぐっているっていうか、まとまりとか関係なく書いているのでどうしてもカテゴリを若干掘らざるをえないのだヨ。というわけで、またもやはまりました。具体的には、カテゴリをまとめるためのカテゴリ(コンピューターとか)を選択してもその下の階層のタグが表示されないという、、、

    50行目あたりを下のように修正してやれば、タグは表示されるようになりましたが、同じタグが複数表示されてしまう場合があるのだ(アルノデスヨ)。

    foreach my $category (keys %$tags_list_per_category){ #if($path eq $category){ if($category =~ /$path/){

    listを作って表示する時に毎度まとめるのがいいのか、それともキャッシュを作成するときに作っておくようにしたほうがいいのか悩ましい。 元のプラグインはrootとカテゴリでキャッシュを分けてるから、後者のほうがいいのかなぁなんて思ったりするが、Storableモジュール使ったことないからどうすべきかイマイチ見えん。

    hubmed

    やっぱ、「暗黙知の共有」が一番おもろいよね~と思うことしばしば。

    ってことで、ごく限られたチームの中で hubmedとか使えないかナァと思ったり。 これとblosxomを組み合わせて適当にプラグイン入れれば何かがokな感じもするので、やってみようかなぁと思ったりするわけだヨ。