引用文の色を変更するには

[上に] [前に] [次に]
toshi [E-Mail] [HomePage] 2000/01/05(水) 02:35:30
現在ある掲示板を使用していますがとほほラウンジみたいに引用文の色を変更する機能をつけてみました。
( $gt;と>が先頭にある行の色を変更する)
挑戦してみましたがとほほラウンジ1行ごとにチェックしているみたいでどうもよく分かりません。
一回ですべて変更するにはどのようなスクリプトを書けばいいのでしょうか。
よろしくお願いします。

toshi [HomePage] 2000/01/05(水) 02:36:36
すいません。訂正です。
> 現在ある掲示板を使用していますがとほほラウンジみたいに引用文の色を変更する機能をつけてみました。
じゃなくて
現在ある掲示板を使用していますがとほほラウンジみたいに引用文の色を変更する機能をつけてみたくなりました。
でした。
申し訳ありません。

2000/01/05(水) 02:53:53
一レコードが、一行タイプの掲示板の場合はどうするか ということですよね?
いろいろ方法はあると思いますが、僕は以下のようにしています。
ちなみに、改行は<BR>に変換してからファイルに記録しています。

$body =~ s/(((^|<BR>)&gt;|(^|<BR>)>).*?<BR>)/<FONT COLOR="#000080">$1<\/FONT>/g;#引用文の色を変える

ついでに”#”記号の後も色を変えています。
便宜上、行頭以外からの登場も変換します。(^|<BR>)を省略しただけですが。

$body =~ s/((\#|#).*?<BR>)/<FONT COLOR="#808000">$1<\/FONT>/g;#コメント文の色を変える

toshi [HomePage] 2000/01/05(水) 03:37:46
[[解決]]
猫さん、レスありがとうございます。
> 一レコードが、一行タイプの掲示板の場合はどうするか ということですよね?
はい、そのとおりです。

> $body =~ s/(((^|<BR>)&gt;|(^|<BR>)>).*?<BR>)/<FONT COLOR="#000080">$1<\/FONT>/g;
見事にできました。
どうもありがとうございました。

2000/01/05(水) 06:15:04
もう、解決してしまいましたが、過去にもあったようです。
../199905/99050133.htm
こちらは最小マッチ使ってないのでPerl4でも通用するみたいです。

toshi [HomePage] 2000/01/05(水) 14:32:56
教わった方法では2行以上の連続した引用文と最終行がうまく認識されていなかったみたいなので
以下のようにしました。
$comment =~s/(^|<br>)(&gt;[^|<]*)/<BR><FONT COLOR="#800080">$2<\/FONT>/g;
$comment =~s/(^|<br>)(>[^<]*)/<BR><FONT COLOR="#800080">$2<\/FONT>/g;

あまり自信がないのでもし間違ってたら指摘してやってください。

2000/01/05(水) 20:56:23
ああ、そうか。ごめんなさい。
僕は掲示板というか、ウェブチャットみたいなところで使ってたので気づきませんでした。
確かに複数だと駄目ですね。
間違ってないので、そのままでも平気かと思いますが、
$body =~ s/\015\012/\n/g;
$body =~ s/\015/\n/g;#\nに統一して

$body =~ s/(^|\n)((&gt;|>).*)/<BR><FONT COLOR="#000080">$2<\/FONT>/g;#ここね

$body =~ s/\n/<BR>/g;#最後に\nを<BR>に

.は\nにマッチしないので、改行を<BR>に変換する前に.*でマッチさせて、色を変えてしまえばコードも見やすく、出力されるソースもきれいかと思います。

2000/01/06(木) 00:42:06
[^|<] これは誤植?
なにか意味があるんでしょうか?

toshi [HomePage] 2000/01/10(月) 02:36:43
> [^|<] これは誤植?
> なにか意味があるんでしょうか?
すいません。
[^<] の間違いです。

[上に] [前に] [次に]