Prev / Next

2005-10-30 / コメントアウトプラグインの余計な <br> を削除したい

foo

{{com('hoge')}}

bar


のように段落をコメントアウトしようとすると,

foo<br>
<br>
<br>
<br>
bar<bf>


と <br> が連続して,不自然なあきができてしまう.

これをなんとかしたいんだけど,方法としては

1. parse 前にコメントを削除
2. parse 後に余計な <br> を削除

が考えられるけど,上のように pre の中に書くこともありえ,
pre を考えると 1 は面倒そうなので,2 でやってみることにする.

で,次のように chalow を変更した.

--- /usr/bin/chalow     2005-09-12 05:49:32.000000000 +0900
+++ chalow      2005-10-30 18:58:50.000000000 +0900
@@ -547,10 +547,18 @@
s!<br>$!!;
#print "2[$_]\n";

+    # 段落の区切りを変更
+    s!^<br>$!</p><p>!gsm;
+
unescape_string(\$_);      # プラグイン呼び出しも行なう

s!</pre><br>!</pre>!g;     # ad hoc

+    # 余計な <br> を削除
+    s!(<br>\n){2}!<br>!gsm; # 行
+    s!<p>\n<br>\n</p>!!gsm; # 段落
+    s!</p><p>\n<br>\n!!gsm; # 最後に comment plugin がある場合
+
return $_;
}


行単位でコメントアウトした場合,段落の区切りの <br> と区別できないので,
</p><p> に置換.プラグイン呼び出し後に余計なものを削除.

テスト
- 文中
 foo bar
- 行
foo
bar
- 段落
foo

bar

Referrer (Inside):
[2005-10-30-4] chalow の rpm 更新
comments powered by Disqus