[ 新規 | 編集 | 差分 ] [ 検索 | 一覧 | FrontPage ] [ 履歴 (RSS) | 差分履歴 (RSS) ] [ ログイン ]
【PR】Amazon | SL-C3000 | SL-C1000(3/18発売!) | SL-C860 | SL-6000W | SL-6000L | SL-6000N

WalWiki/カスタマイズ/コメント欄拡張

編集

コメント欄から各種書式付きテキストの記述を可能にします。
テストしてみたい方はこちらでどうぞ。

[extend comment box]

編集

リストボックスから選択、またはコメント欄で直接書式を指定して、各種書式付きのテキストを記述する事が出来ます。
下記の書式が利用できます。

リスト通常のリストの書式と同様
見出し通常の見出しの書式と同様
引用通常の引用の書式と同様
整形済みテキスト通常の整形済みテキストの書式と同様
空行テキストボックスに空白文字のみを記述。
定義リスト通常の定義リストの書式と同様
通常の表の書式と同様
水平線通常の水平線の書式と同様

リストボックスから書式を選択した場合は、それぞれの書式の先頭文字が指定された状態になるので、先頭文字を除いた文字列を入力して下さい。
水平線はリストから選ぶだけで入力できます。

関連するカスタマイズ

編集

resource.txtへの追加

編集
commentlabelコメント
comment2labelコメント(Lv2)
comment3labelコメント(Lv3)
headerlabel見出し
header2label見出し(Lv2)
header3label見出し(Lv3)
linelabel水平線
quotelabel引用
prelabel整形
tablelabel表(カンマ区切り)
deflabel定義(言葉:定義)
undolabel元に戻す

do_comment()内の変更

編集
sub do_comment {
    my ($content) = $database{$form{mypage}};
    my $datestr = &get_now;
    my $namestr = $form{myname} ? " ''[[$form{myname}]]'' : " : " ";
    # yakty del [multi comment] start
    #if ($content =~ s/(^|\n)(\Q$embed_comment\E)/- $datestr$namestr$form{mymsg}\n$1$2/) {
    #    ;
    #} else {
    #    $content =~ s/(^|\n)(\Q$embed_rcomment\E)/$1$2\n- $datestr$namestr$form{mymsg}/;
    #}
    # yakty del [multi comment] end
    # yakty add [extend comment box(undo)] start
    if($form{mycmtmark} eq 'undo'){
        my $timestamp = &get_info($form{mypage}, $info_UpdateTimeStamp);
        if(time - $timestamp < $force_update_interval
            and length($ENV{REMOTE_ADDR}) > 0 and $ENV{REMOTE_ADDR} eq &get_info($form{mypage}, $info_UpdateRemoteAddr)){
            &do_undo;
        } else {
        	&do_read;
        }
        return;
    }
    # yakty add [extend comment box(undo)] end
    # yakty add [multi comment] start
    my $cmtno = 0 + $form{mycmtno};
    my $contenthead = "";
    $form{mymsg} = $form{mycmtmark} . $form{mymsg};    # yakty add [extend comment box]
    for(my $i=0; $i<=$cmtno; $i++){
        if($content =~ /(^|\n)((\Q$embed_comment\E)|(\Q$embed_rcomment\E))/){
            $contenthead .= $`;
            $content = $';
            my $matchstr = $&;
            if($i == $cmtno){
                # yakty add [extend comment box] start
                $form{mymsg} =~ /^((\*{1,$header_level})|(>{1,3})|[\s:,]|(\-*))(.*)$/;
                my ($mark,$cmtmsg) = ($1,$+);
                if($mark =~ /^\-{0,3}$/){
                    $mark = "-" unless($mark);
                    if ($matchstr =~ s/(\Q$embed_comment\E)/$mark $datestr$namestr$cmtmsg\n$1/) {
                        ;
                    } else {
                        $matchstr =~ s/(\Q$embed_rcomment\E)/$1\n$mark $datestr$namestr$cmtmsg/;
                    }
                } elsif($mark =~ /\s+/ and $cmtmsg eq ""){
                    if ($matchstr =~ s/(\Q$embed_comment\E)/\n$1/) {
                        ;
                    } else {
                        $matchstr =~ s/(\Q$embed_rcomment\E)/$1\n/;
                    }
                } else {
                    if ($matchstr =~ s/(\Q$embed_comment\E)/$mark$cmtmsg\n$1/) {
                        ;
                    } else {
                        $matchstr =~ s/(\Q$embed_rcomment\E)/$1\n$mark$cmtmsg/;
                    }
                }
                # yakty add [extend comment box] end
                # yakty del [extend comment box] start
#                if ($matchstr =~ s/(\Q$embed_comment\E)/- $datestr$namestr$form{mymsg}\n$1/) {
#                    ;
#                } else {
#                    $matchstr =~ s/(\Q$embed_rcomment\E)/$1\n- $datestr$namestr$form{mymsg}/;
#                }
                # yakty del [extend comment box] end
            }
            $contenthead .= $matchstr;
        }
    }
    $content = $contenthead . $content;
    # yakty add [multi comment] end
    if ($form{mymsg}) {
        $form{mymsg} = $content;
        $form{mytouch} = 'on';
        $form{myfrozen} = &get_info($form{mypage}, $info_IsFrozen);
        &do_write;
    } else {
        $form{mycmd} = 'read';
        &do_read;
    }
}

embedded_to_html()内の変更

編集

この変更はリストボックスで書式を選択したい場合以外は適用しなくても構いません。
UNDO機能はこの変更を適用しないと使用できません。

sub embedded_to_html {
    my ($embedded) = @_;
    my $escapedmypage = &escape($form{mypage});
    my $escapedmyname = &escape($form{myname});            # yakty add [use cookie]
    if ($embedded eq $embed_comment or $embedded eq $embed_rcomment) {
        my $lastmodified = &get_info($form{mypage}, $info_LastModified);
        my $lastRevision = &get_info($form{mypage}, $info_LastRevision);   # yakty add [revision diff]
        $comment_no++; # yakty add [multi comment]
        return <<"EOD";
@{[sprintf(qq(<a name="c%d"> </a>), $comment_no)]}<!-- yakty add [link to part(comment)] -->
<form action="$url_xcg" method="post"><!-- yakty mod [for XREA] -->
    <input type="hidden" name="mycmd" value="comment">
    <input type="hidden" name="mypage" value="$escapedmypage">
    <input type="hidden" name="myLastModified" value="$lastmodified">
    <input type="hidden" name="myLastRevision" value="$lastRevision">
    <input type="hidden" name="mytouch" value="on">
    <input type="hidden" name="mycmtno" value="$comment_no"><!-- yakty add [multi comment] -->
    $resource{yourname}
    <input type="text" name="myname" value="$escapedmyname" size="10"><!-- yakty mod [use cookie] -->
    <input type="text" name="mymsg" value="" size="60">
    <!-- yakty add [extend comment box] start -->
    <select name="mycmtmark">
      <option value="">$resource{commentlabel}</option>
      <option value="--">$resource{comment2label}</option>
      <option value="---">$resource{comment3label}</option>
      <option value="*">$resource{headerlabel}</option>
      <option value="**">$resource{header2label}</option>
      <option value="***">$resource{header3label}</option>
      <option value="----">$resource{linelabel}</option>
      <option value=">">$resource{quotelabel}</option>
      <option value=" ">$resource{prelabel}</option>
      <option value=",">$resource{tablelabel}</option>
      <option value=":">$resource{deflabel}</option>
      <option value="undo">$resource{undolabel}</option>
    </select>
    <!-- yakty add [extend comment box] end -->
    <input type="submit" value="$resource{commentbutton}">
</form>

02593