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

WalWiki/カスタマイズ/引数付きアンテナ

編集

引数付きのアンテナを定義/使用できるようになります。

[dynamic antenna]

編集

AntennaSiteNameのアンテナ定義で、InterWikiNameと同様に展開したいパラメータ部分を
euc($1),sjis($1)等の様に記述します。

[[アンテナ名 http://URL?euc($1)]]

アンテナの埋め込み時に下記のようにしてパラメータを指定できます。

[[#antenna:アンテナ名(0):パラメータ]]

グローバル変数定義

編集
#my $embed_antenna = '^\[\[#antenna:(\S+?)(\(\d+\))?\]\]$';                      # Walrus add [wiki antenna]          # yakty del [dynamic antenna]
my $embed_antenna = '^\[\[#antenna:(\S+?)(\(\d+\))?(:(\S+))?\]\]$';             # Walrus add [wiki antenna]           # yakty add [dynamic antenna]

embedded_to_html()内の変更

編集
    # Walrus add [wiki antenna] start
    } elsif ($embedded =~ /$embed_antenna/ and defined($antennasite{$1})) {
        $_ = ($2) ? substr($2, 1, length($2) - 2) : 0;
        #$_ = &make_antenna_data($1, $_);         # yakty del [dynamic antenna]
        $_ = &make_antenna_data($1, $_, $4);      # yakty add [dynamic antenna]
        return ($_) ? $_ : &escape($embedded);
    # Walrus add [wiki antenna] end

make_antenna_data()内の変更

編集
sub make_antenna_data {
    #my ($name, $limit) = @_;           # yakty del [dynamic antenna]
    my ($name, $limit, $param) = @_;    # yakty add [dynamic antenna]
    return undef unless (defined($antennasite{$name}));
    my ($type, $url) = @{$antennasite{$name}};
    # yakty add [dynamic antenna] start
    if($param){
        if($url =~ s/\b(euc|sjis|ykwk|asis|isbn)\(\$1\)/&interwiki_convert($1, $param)/e){
            $name .= ":" . $param;
        }
    }
    # yakty add [dynamic antenna] end
    my ($time, $status, $data) = ($antennabase{$name}) ? split(/\n/, $antennabase{$name}, 3) : (0, 'Not Retriebed', '');

02363