メッセージ

2009年11月04日の記事

2009/11/04(水)adiaryのスーパーpre記法修正

スーパーpre記法でソース表示をしたのですが、そのまま表示されないというトラブルになったので、その解決メモです。


前回の記事で、差分をスーパーpre記法で表示したのですが、コピペして差分を当てようとするとエラーになってしまいました。よくみると、差分の行頭の「+」と「-」の前に空白が入ってました。

ということで、以下の書き方で実験をしてみます。
1234567890(目盛り)
-TEST_A
 -TEST_B

表示させてみると、TEST_Aの行頭にスペースが1つ入るようです。
1234567890(目盛り)
 -TEST_A
 -TEST_B

ちなみに表示させたいのこういう形です。
1234567890(目盛り)
  • TEST_A
-TEST_B


ちょっと困ったのですが、空白1個なのでプログラムがわからなくてもなんとかなるかな、と思いつつコメントを見ながら、adiaryのパーサ部分を眺めてみることにしました。

./lib/Satsuki/TextParser/Satsuki.pm の475行目
$line =~ s/^([\-\+\*=])/ $1/;   # 行頭記法を escape
$1の前にスペースがあったので、それを取って解決しました。


わざとスペースを1つあけて、その後で1つ詰める(記法で-の前に空白があるとリストにならない)のかな、とも思いましたが、とりあえず目的の動作をしたのでその先は見ていません。スペース1個取っただけなのですが、もしかしたら同じことで困る人が出るかもしれないので記事にしてみました。

【2009/12/04追記】 ver2.11で修正されました。どうもありがとうございます。