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

WalWiki/カスタマイズ/ブロック要素への任意属性付加

差分表示


編集前の状態に戻します。
ブロック要素に任意の属性を付加します。

- 2004-04-15 (Thu) 01:18:43 テーブル(<table>)にも対応。
* [block element attribute]

引用(<blockquote>)、リスト(<ul>)、段落(<p>)に任意の属性を付加することが出来るようになります。
引用(<blockquote>)、リスト(<ul>)、段落(<p>)、テーブル(<table>)に任意の属性を付加することが出来るようになります。

記述例
-FormatRules
 ,(color:$1),style,color:$1;

-<blockquote>
 >(color:red) 引用文
-<ul>
 -(color:red) 箇条書き
 -箇条書き
 --(color:blue)箇条書き
 --箇条書き
-<p>
 (color:red) 段落の文章

** 関連するカスタマイズ

[[WalWiki/カスタマイズ/整形ルールの定義]]

** text_to_html()内の変更

- 2003-09-06 (Sat) 23:32:42 属性にURLを書いてもおかしくならないように処理を修正
- 2003-09-07 (Sun) 00:40:32 inline()より先にextract_attr()を通すとインライン要素の属性を取得してしまうので元に戻しました。

リスト
         } elsif (/^(-{1,3})(.*)/) {
             # yakty add [block element attribute] start
             my $text = &inline($2);
             my $attr = &extract_attr(\$text);
             &back_push('ul', length($1), \@saved, \@result, $attr);
             # yakty add [block element attribute] end
             #&back_push('ul', length($1), \@saved, \@result);                 # yakty del [block element attribute]
             #push(@result, '<li>' . &inline($2) . '</li>');                   # yakty del [fix invalid html]
             # yakty add [fix invalid html] start
             if($form{mypage} eq $RecentChanges){
                 push(@result, '<li>' . $text . '</li>');                      # yakty add [block element attribute]
                 #push(@result, '<li>' . &inline($2) . '</li>');               # yakty del [block element attribute]
             } else {
                 push(@result, shift(@saved)) if(@saved[0] eq '</li>');
                 push(@result, '<li>' . $text);                                # yakty add [block element attribute]
                 #push(@result, '<li>' . &inline($2));                         # yakty del [block element attribute]
                 unshift(@saved,'</li>');
             }
             # yakty add [fix invalid html] end

引用
         } elsif (/^(>{1,3})(.*)/) {
             # yakty add [block element attribute] start
             my $text = &inline($2);
             my $attr = &extract_attr(\$text);
             &back_push('blockquote', length($1), \@saved, \@result, $attr);
             push(@result, '<p>' . $text);
             # yakty add [block element attribute] end
             # yakty del [block element attribute] start
             #&back_push('blockquote', length($1), \@saved, \@result);
             #push(@result, '<p>' . &inline($2));
             # yakty del [block element attribute] end
             unshift(@saved, '</p>');                     # yakty add [fix invalid html]

テーブル
         } elsif (/^\,(.*?)[\x0D\x0A]*$/) {
             #&back_push('table', 1, \@saved, \@result, ' border="1"');           # yakty del [block element attribute]
             #######
             # This part is taken from Mr. Ohzaki's Perl Memo and Makio Tsukamoto's WalWiki.
             # XXXXX
             my $tmp = "$1,";
             my $attr = &extract_attr(\$tmp);                                     # yakty add [block element attribute]
             &back_push('table', 1, \@saved, \@result, ' border="1"' . $attr);    # yakty add [block element attribute]
段落
         } else {
             # yakty add [block element attribute] start
             my $text = &inline($_);
             my $attr = &extract_attr(\$text);
             # yakty add [block element attribute] end
             # yakty add [fix invalid html] start
             if($#saved < 0){
                 # yakty add [block element attribute] start
                 unshift(@saved, '</p>');
                 push(@result, "<p$attr>");
                 # yakty add [block element attribute] end
             # yakty add [keep newline] start
             } elsif(@saved[0] eq '</p>'){
                 push(@result, '<br />');
             }
             # yakty add [fix invalid html] end
             #push(@result, &inline($_));           # yakty del [block element attribute]
             push(@result, $text);                  # yakty add [block element attribute]
         }


02497