記事No | : 2437 |
投稿日 | : 2007/12/24(Mon) 18:58:37 |
タイトル | : SunBoradでタグ有効時の<br>変換 |
ID情報 | : webcraft |
投稿者 | : 正宗 |
URL | : http://masamune.nm.land.to/cgi-bin/sunbbs/ |
現在SunBoard v4.01を利用しており問題なく正常に動作しています。
ただ一点だけどうしても解決できない問題があって相談にきました。
私の場合本文にプログラムソースを書くことが多いため[タグ有効]にチェックを入れプログラムソースは<pre>〜</pre>で囲んでいます。
投稿した記事を見てみると正常に表示されています。
ただ<pre>〜</pre>内の改行が<br>になっているため、プログラムソースをコピー&ペーストした際に改行が無視され一行につながってしまいます。
そこで<pre>〜</pre>内の<br>を\rに変換して画面表示したいのですが方法がわかりません。
これを実現する方法がありましたらアドバイスいただきたいのですが。
よろしくお願いします。
記事No | : 2441 |
投稿日 | : 2007/12/25(Tue) 17:22:43 |
タイトル | : Re: SunBoradでタグ有効時の<br>変換 |
ID情報 | : teketen |
投稿者 | : てけてん |
Operaだと、問題なく改行しますが、IEだと駄目なのですね。
(やはりIEって使い難いですね…)
もっとスマートな記述がありそうですが、取り合えずこんな感じで。
もしも、動作がおかしくなった場合は、元に戻してください。
改造は、自己責任でお願いします。
init.cgi
最後の方に、「# タグ復元」という箇所があります。
ここの
$_;
の前の行に
s|<pre>((?:(?!</pre>).)*)<br>((?:(?!</pre>).)*)</pre>|<pre>$1\a$2</pre>| while(m|<pre>(?:(?!</pre>).)*<br>(?:(?!</pre>).)*</pre>|);
s/\a/\n/g;
を挿入してください。
s/\a/\n/g;
一度<pre>〜</pre>の間の改行を\aに変換してから、それを\nの改行コードに変換しています。
改行コードが\rの方が良い場合は、ここの\nを\rとしてください。
以上です。
記事No | : 2448 |
投稿日 | : 2007/12/26(Wed) 05:43:38 |
タイトル | : Re^2: SunBoradでタグ有効時の<br>変換 |
ID情報 | : webcraft |
投稿者 | : 正宗 |
無事改行されるようになりました。
ありがとうございました。
> Operaだと、問題なく改行しますが、IEだと駄目なのですね。
> (やはりIEって使い難いですね…)
そうですね。
かといって無視はできないし微妙なところです。