2008年11月07日

BlognPlus のこと

ちょっと気分転換に昔作ったプログラムを整理してる。

2年ぐらい前に作った BlognPlus のモジュールをいろいろ触っている。BlognPlus は、データベースを利用しなくても(しても)設置できるブログシステムで、とてもシンプルな構造なので、PHP 言語が使えるならば、いろいろ自由に改造を楽しむことができる。いやブログを書くことの方を楽しまないといけないんだろうけど。なお、非営利の利用ならば無料ですが、営利の利用はライセンス料が必要になる。

公式サイト:BlognPlus(ぶろぐん+)

BlognPlus を見つけたのは、2006年12月の頭。このブログにも書いてある地域通貨の勉強会に行って帰ってきたとき、その関連サイトが BlognPlus で作ってあったので、ちょっと調べてみたのが切っ掛け。とてもシンプルなので、とにかくそのときは没頭して二ヶ月ぐらいいろいろモジュールを作ったり、システムそのものを改造したり、いろいろ試して、遊んでた。

その成果の一つが、PostPetを飼うモジュール「ぶろぐんペット」

その他にも、BlognPlus の投稿で Markdown 記法やその他の記法が利用できるようにする改造をしてみた。このブログで紹介したことがある。基本的に、僕はブログというのを、まとめ記事を書くために利用しているので、Wiki記法のように見出しやリンクが簡単に書ける記法がほしくてならなかった。でも他のテキストフィルタを追加しようとしているうちに飽きてしまって、結局完全なものにはできなかった。これを今完成させようとしている。

以前の記事:takayanの雑記帳: BlognPlusでMarkdown

それと、BlognPlus はブログパーツを簡単に設置できることはできるが、HTMLにその都度手を加えなくてはいけない。それが面倒なので、ブロック管理モジュールも作ってみた。そのとき完成はしたことはしたのだけど、設置の仕方や、使い方を書くのが面倒だったのでやっぱり公開はしなかった。

それから、「ぶろぐんペット」では、必要最小限の三つの XML-RPC API を実装させたけど、それはもともとブログエディタから投稿できるようにするために XML-RPC を実装させていたときの副産物だった。結局、そのときの目標は根気が切れて実現できなかったけれど。今はこのとても使いやすい Flock のブログエディタから書き込めるだけのAPIの実装を追加してみようと考えている。このブログエディタそのもので、Markdown 記法などが使えたり、このエディタがブログのフィルター関連APIを使えるといっそういいのだろうけど、難易度も高いし、今の僕には時間が足りない。

そういうわけで、整理が終わったら、今まで公開していなかったこれらのモジュールを紹介しようかなと思います。

Blogged with the Flock Browser


posted by takayan at 03:00 | Comment(0) | TrackBack(0) | BlognPlus | このブログの読者になる | 更新情報をチェックする

2008年11月11日

BlognPlus用テキストフィルタモジュールのサンプル

BlognPlus でのテキストフィルタモジュールを作ろうという計画の途中経過。
基本的な部分は一年と十一ヶ月前にできているので、やることはそれほどないのだけど、いろいろ忘れていてまるで他人が作ったプログラムのようになってしまったコードを整理している最中。

主な仕様:
・BlognPlus の各記事毎に、どのテキストフィルタを使うかを指定できる。
・後からいくつでもフィルタを登録することができ、モジュールそのものを編集しなくても、指定のフォルダにインターフェイスを PHP で記述したスクリプトとPHPで記述されたフィルタ本体を放り込むだけで利用できる。
・標準で使うテキストフィルタを設定できる。BlognPlus は複数人での利用ができるので、この設定は各自のプロフィール設定ページでおこなう。
・データは変換前のソースを保存し、表示の時に各エンジンで変換する。
・(予定)ブログエディタから投稿すると、既定のテキストを適用する。もしくは、先頭行にテキストフィルタを指定する専用のタグを表記することで指定する。(2008.11.13追記)


現在利用可能なのは、Markdown (Extra)
これは、最初に作ったときから使っている。
例えば次のリンクのページで使っている。Juiceを日本語で使うための修正パッチ
一部分のソースを引用すると次のようになっている。
# 差分の適用の仕方

1. 公式サイトから、下のリンクを使って、juice-2.2.2-a1 をダウンロードします。
[juice-2.2.2-a1](http://sourceforge.net/project/showfiles.php?group_id=151000&package_id=166847&release_id=432902)

2. パッチを次のリンクからダウンロードします。
[juice-jp.001.exe](http://et-dev.main.jp/index.php?plugin=attach&pcmd=open&file=Juice-jp.001.exe&refer=%C6%FC%CB%DC%B8%ECjuice)

残りはまだ実験中:
Textile は、以下の記述が次のページのように表示される。
Simple list:

#{color:blue} one
# two
# three

Multi-level list:

# 壱
## aye
## bee
## see
# 弐
## x
## y
# 参

Mixed list:

* Point one
* Point two
## Step 1
## Step 2
## Step 3
* Point three
** Sub point 1
** Sub point 2

http://www.textism.com/tools/textile/index.php
のサンプルコードの一部を日本語が使えるか改変。
Textile テスト

modPukiwikiを使ったテキストフィルタは、
(いくつか問題点を改善したので 2008.11.13更新)
* 目次
#contents

* テスト
-a
-b
--1
--2
-c

> あいうえお
> かきくけこ


* 天気図
&tenki;

* 解説

modPukiwikiを使用。
とりあえず、リンク関係以外基本的なものを使えるようにした。
リンク関係はまだ手を付けていない。

* Pukiwiki フェイスマーク

&heart;⌣&bigsmile;&huh;&oh;&wink;&sad;&worried;

最終更新日時 &_now;
pukiwikiテスト


正規表現も使わない単純な置換だけで実装した BBcode フィルタは、
[list]
[*][color="red"]赤[/color]
[*][color="blue"]青[/color]
[*][color="yellow"]黄[/color]
[/list]

できることしか実装していないので、うまくいく。
順序リストの対応などは、書くのが面倒なのでしていない。
簡易BBCodeのテスト

今のところ、こんな感じ。
Blogged with the Flock Browser


posted by takayan at 03:31 | Comment(0) | TrackBack(0) | BlognPlus | このブログの読者になる | 更新情報をチェックする

2008年11月16日

オグシオ優勝、前田も混合優勝

小椋・潮田ペアー、優勝おめでとう。

テレビ中継を見ていたけど、とても良かった。オリンピックでは成績が残せず残念だったけど、この大会連覇してきた実力を見せつけてくれた。そして小椋久美子・潮田玲子ペアとして最後の試合で五連覇。

どうしても末綱聡子・前田美順ペア応援で見ていたけれど、オグシオの第1セットの粘り勝ちや、あの最後の逆転は凄かった。オリンピックの時は、完全アウェーの観客の態度や、審判に理不尽な抗議をする相手チームのせいで、あまり気分良く見てられなかったけれど、今回は試合そのものに集中してみることができた。陣内さんの解説も見やすかった。

表彰式のオグシオの笑顔はとてもよかった。一方、なかなか出て来なかった準優勝の前田選手が見せた、嗚咽気味の泣き顔は、本当に悔しさが伝わってきた。いままでずっとこの大会で準優勝に甘んじてきたわけで、解散するのでこの大会でオグシオを破る最後のチャンスだったのに、それが実現できなくてほんとにくやしかったんだろうな。

この試合の後、前田選手、男子の舛田選手と混合ダブルスに出場なのに、気持ちの切り替えができるんだろうかと心配しまうくらい泣いてたけど、下記サイトの混合ダブルスのページによると見事ストレート勝ちで大会四連覇の優勝ができたらしい。よかった。

平成20年度全日本総合バドミントン選手権大会
マスメディアでは、オグシオだけしか伝えないと思うから混合ダブルスなどの他の試合の様子は、このサイトの「大会観戦記」をどうぞ(現時点では決勝の内容はまだないけど)。


posted by takayan at 18:38 | Comment(0) | TrackBack(0) | 日記・未分類 | このブログの読者になる | 更新情報をチェックする

2008年11月17日

「七瀬ふたたび・クライマックスへ!」を見てしまった。

第六話まで終わって残り四話というところで、土曜日「〜これまでのストーリー これからの見所〜」というサブタイトルの異例のダイジェスト版が放送された。ほとんどは現在までのあらすじと登場人物や七瀬達の能力の説明。そして残りの数分間にこれからの展開の断片。

正直、これからの予告の部分は見ない方がよかった。原作や以前のドラマとは違うんだな、、、、やっぱりそのイベントは発生するのか、、、いろんな情報が詰まっていた。「RAT AT T」の意味のヒントもあった。でも正直な感想として、これからの展開は知らない方がよかった。

このダイジェスト版はもう一度再放送される。NHKの公式ページに行けば、時刻も書いてある。でもダイジェストを見るのは、いままでのあらすじを映像と共に確認するだけにとどめた方がいいと思う。つまり山小屋にはまだ行かない方がいい。


さて、ダイジェストは見なかったことにして、第六話の見ての感想。あの打ち捨てられた研究所で監視カメラを使って七瀬達を見ていたのは誰なのだろう。NPO はとても胡散臭そうだ。父の同僚と称する佐倉という男は怪しすぎる。それと、お父さんが生きてて良かったね。フェリーでの出来事を親子の問題にしていたのは、この展開を強調するためだったわけだね。

最大の疑問点として、佐倉の心は七瀬は読めなかったのだろうか。七瀬には父のことを知りたいという強い気持ちがあるので、何か手掛かりはないかと佐倉の心を勝手に探ろうとしてしまいそうに思うのだけど、佐倉の心を読んでいる描写がなかった。そこが何か妙だった。怪しいこの男は、善人そうな表情とは裏腹に人一倍何か特別な感情を発してそうなのだけど、以前心を覗こうとしなくても思いの強さで感じてしまうとか何とか能力の説明があったのに、そういうことも七瀬はこの男について感じなかったのだろうか。それとも、佐倉はその表情と同じで心を偽る能力を持っているのだろうか。西尾を連れ出しているのは佐倉らしい描写があるから、西尾からの伝聞で七瀬の能力を佐倉が既に知っている可能性もある。佐倉の立場で考えれば、七瀬の能力をあらかじめ知っていたとしたら、対面するにはそれなりの対策ができる自信がないと簡単にはできないだろう。

それから、七瀬が父の心の声を聞く部分はとても切なく印象的なのだけど、冷静に考えると、七瀬は父の声以外に、父の見ているものを感じ取ることはできなかったのだろうか。自分の居た部屋を見ているイメージが分かれば、ある程度方角も分かりそうだ。父にとって、娘との交信を確認できたあの灯りの点滅のイメージはかなり強く心にとどまっただろうに。それにどう考えても、心の声は距離によって強さが変わりそうなものなのに。だからこそ七瀬はあそこまで近付くことができたのかもしれないけれど、冷静さを失っていたために、もしくは発信源を探るなんて訓練もしたことがなかったせいで、精度が悪く探し出すことができなかったのだろうか。

父は七瀬の能力を知っているから、何らかの対策を講じて余計な情報を伝えない思考ができるのだろうか。娘への思いがあふれ出すことは、妻が死に七瀬が能力を再獲得して以来もあっただろうに。そういう気持ちさえ抑えて父は今まで身を隠していたのだろうか。父は余計な情報を伝えないようにしたいから、うつむいて七瀬に向けて思いを伝えていたのだろうか。でも父がテーブルのコーヒーを見ているのが分かれば喫茶店らしいとかいろいろ推理できそうなのだけど。

ただ確実なのは、あのすれ違いのとき、父が七瀬の姿を見つけていれば、その衝撃は必ず七瀬に伝わったはずだから、父だけが姿に気づくということもあってはならなかったのは分かる。七瀬の能力のせいで父は七瀬の姿を見たいけれど見える位置でこっそり見るということもできない、未知能力ゆえの有り得ない切なさがあったんだなと気づいた。でも、最初どうやって七瀬があの部屋にいることが七瀬に気づかれずに分かったのだろうか。部屋にいることは灯りで分かるけど、そもそもあの部屋だということをどうして。佐倉の行動と関係があるのだろうか。そういうところも、次回説明がされるのだろうか。

いよいよ残り四話、物語はクライマックス。以前は敵の組織は謎のままだったけれど、今回は新たな設定で具体的に描かれていくみたいだ。原作の残りのイベントを絡めながら、どう今回のドラマらしい独自の展開をしてくれるかとても楽しみ。


posted by takayan at 02:25 | Comment(0) | TrackBack(0) | 映画・ドラマ | このブログの読者になる | 更新情報をチェックする

2008年11月20日

BlognPlus で dokuwiki を使うテスト

BlognPlus でテキストフィルタを実装するモジュールのテストの続き。

実際やっていることは、 WordPress のプラグインを BlognPlus で使えるようにインターフェイスの書き換え作業。テキストフィルタだから、入力されたテキストをもとに新しいテキストが出力される単純な構造なので、こういう転用もそれほど難しくない。もちろん、BlognPlus が WordPress と同じ PHP で書かれているおかげだ。

実験ページ:
プログラミングの雑多なメモ::dokuwiki テスト

先日、modPukiwiki を使って、Pukiwiki 記法が使えるようにした。まだ完全ではないけれど、Pukiwiki プラグインを使っていろいろ遊べるようにもなった。けれど、modPukiwiki も、各プラグインも、Pukiwiki 自体も、メンテナンスがほとんど止まってしまっている状態で、プラグインを現状に合わせるための情報も不足してきている。それで、他に Wiki 記法が使えるプラグインを探してみると、Dokuwiki というWiki エンジンの WordPress 用のプラグインを見つけた。

配布場所:
WordPress › WP-Dokuwiki « WordPress Plugins

日本語の紹介記事:
走り抜けるブログ» Blog Archive » WordPress 2.0ME:Wikiプラグインwp-dokuwikiけっこういいかも

設定の仕方を調べるのがちょっと時間がかかったけれど、上記の実験ページのようになんとか実用的にすることができた。現在解決できていないのは、プログラムのコード引用の色分けぐらいかな。まだあるんだろうけど。

今回のテキストフィルタの対応で BlognPlus 本体への改造方法についても、いろいろ問題点を見つけることができた。もうそろそろ公開できそうだ。


posted by takayan at 03:04 | Comment(0) | TrackBack(0) | BlognPlus | このブログの読者になる | 更新情報をチェックする

2008年11月30日

Textile記法の表示について

最近は、いろいろマークアップ言語を調べているのだけど、Textile にてこずった。

・Wikipedia(en)での説明
Textile (markup language) - Wikipedia, the free encyclopedia

このWikipedia のページでは、いくつかのサイトが紹介されている。

classTextile.php という PHP 用のTextile を配布しているところ。デモもできる。
Textile

また別のデモページ
Textism: Tools: Textile

この二番目のデモページでは、右下の所のリンクを押すと、サンプルコードがロードされて、変換ボタンを押すと、変換されたコードと、その下にそのコードが実際に表示される。

そこで、ここのTextileのコードを最初のデモページにコピーしてみると、ほとんど同じように表示されるが、コードの部分がくずれる。


今度は、最初のサイトから PHPで書かれた textile をダウンロードして、例のぶろぐん+フィルタモジュールで実際に使ってみると、これまた、おかしい。サンプルコードを変換させてみると、上で見つけた問題だけでなくリスト表示も崩れてしまう。


Multi-level list:



  1. one

    1. aye

    2. bee



    1. see

    2. two
    3. x



    1. y




  1. three




classTextile.php のソースコードを眺めて原因を調べてみた。

いろいろ分かった。List を表示している関数の中のループで、次の行の参照目的で next 関数を使っている。nextを使うとポインタが動いてしまうので、リストのレベルの変化がうまく反映できない。またコード部分が崩れてしまうのは、常に空行がブロックの区切になっているからだった。開始タグと終了タグが空行で分断されて別々のブロックになってしまう。そのためタグが閉じることができない。これは仕様といってしまえば、それまでなんだけど、プログラムのコードの引用で空行を使わないというのはとても不便だろう。

ふと、このサイトで紹介されている Textpattern というサイト構築ソフトをダウンロードしてみた。textile 使われているのは書いてあったので知っていたけど、必要ではなかったので今まで中味をよくよく確かめることもなかった。同じものを使っているとばかり思っていたし。でも、実際に中のファイルを調べてみるとリビジョン番号が違っていた。単品で公開されているものの日付は2006/10/18、Textpatternに含まれたものは2008/01/24だった。古い方を使っていたのか。

Textpattern で使われている方を使って動作を確かめてみると、入れ子のリストの問題は解決されていた。コードブロックの問題の方はそのままだった。空行でブロックを分けるのが仕様だから、仕方がないということなのだろう。

せっかく原因が分かったので、<code>と<pre>で終了タグがないときは、解釈をやり直して次のブロックと連結するように書き直してみた。考えてみると、textile記法を無効にする<notextile>タグの要素に改行が使えないというのも不便なのでそれも書き直してみた。

プログラミングの雑多なメモ::Textile テスト


追記
よく解説を読み直してみたら、ブロックタグの後に通常の「.」のかわりに「..」を置くと、ブロック連結になることがわかった。この連結はブロックにこのような修飾がつけられるまで続く。

つまり、空行を含むプログラムのコードを引用したいときは、


bc.. $text = str_replace("<p>%::%</p>","",$text);

$text = str_replace("%::%</p>","",$text);
$text = str_replace("%::%","",$text);


こんなふうに書けばよかった。ただし引用の終わりを示すために、次のブロックで 「p. 」などの修飾を付ける。複数行の空行は1行にまとめられてしまう。

なお、classTextile.php でブロックを修飾するタグは、bq、bc、notextile、pre、h1、fn1、p。



■関連ページ
7:3 blog : Textile で定義リスト(dl)
classTextile.phpを拡張して定義リストを使えるようにしたファイルが配布されているところ


posted by takayan at 02:54 | Comment(0) | TrackBack(0) | BlognPlus | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。