引用・ネタばれ防止機能

「Wing Multi BBS Professional (WMBP)」の初期設定では行頭に「>(半角)」を書くとその行の文字は灰色で表示され、引用された事が一目で分かるようになっています。
スクリプトを少し改造して「>(全角)」でも引用として機能するようにしてみました。

またこれを応用して行頭に「#(全角)」を書くと、その行の文字を掲示板の背景と同色に表示するようにしてみました。これで簡易ネタばれ防止機能を実装する事が出来ます。

同様に行頭に「※(コメ)」を書くと、その行の文字を赤太字で表示するようにしました。

記述方法

「gatdate.pl」内の以下の箇所を

  1. if (index($$x,'>') >= 0){
  2. $$x =~ s/<br>/\n\n/g;
  3. $$x =~ s/^&gt;(.*)(\n?)/<font color=888888>&gt;$1<\/font>$2/;
  4. $$x =~ s/\n&gt;(.*)(\n?)/\n<font color=888888>&gt;$1<\/font>$2/go;
  5. $$x =~ s/\n\n/<br>/g;
  6. }

次のように書き換えてください。

  1. if (index($$x,'&gt;') >= 0 || index($$x,'>') >= 0 || index($$x,'#') >= 0 || index($$x,'※') >= 0){
  2. $$x =~ s/<br>/\n\n/g;
  3. $$x =~ s/^&gt;(.*)(\n?)/<q>&gt;$1<\/q>$2/;
  4. $$x =~ s/\n&gt;(.*)(\n?)/\n<q>&gt;$1<\/q>$2/go;
  5. $$x =~ s/^>(.*)(\n?)/<q>>$1<\/q>$2/;
  6. $$x =~ s/\n>(.*)(\n?)/\n<q>>$1<\/q>$2/go;
  7. $$x =~ s/^#(.*)(\n?)/#<i>$1<\/i>$2/;
  8. $$x =~ s/\n#(.*)(\n?)/\n#<i>$1<\/i>$2/go;
  9. $$x =~ s/^※(.*)(\n?)/<b>※$1<\/i>$2/;
  10. $$x =~ s/\n※(.*)(\n?)/\n<b>※$1<\/i>$2/go;
  11. $$x =~ s/\n\n/<br \/>/g;
  12. }

これは何をしているかというと

  1. 行頭に > が書かれていた場合、その行は <q></q> で囲む
  2. 行頭に > が書かれていた場合、その行も <q></q> で囲む
  3. 行頭に # が書かれていた場合、その行は <i></i> で囲む
  4. 行頭に ※ が書かれていた場合、その行は <b></i> で囲む

これだけでは文字色は変わらないので、それらはスタイルシートで指定します。

  1. <style type="text/css">
  2. <!--
  3. q { color: #888888; }
  4. i { color: #ffffff; font-style: normal; }
  5. b { color: #ff0000; font-weight: bold; }
  6. -->
  7. </style>

サイト作成のヒント集に戻る