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

WalWiki/カスタマイズ/ページ名でフィルタリングした更新履歴を挿入

編集

ページ名でフィルタリングした更新履歴を表示します。

[import filtered recent]

編集

[[#recent:WalWiki/カスタマイズ/]] このような記述で、ページ名が WalWiki/カスタマイズ/ で始まるもののみの更新履歴を挿入することが出来ます。

グローバル変数定義

編集
#my $embed_recent = '\[\[#recent(\((\d+)\))?\]\]$';                              # Walrus add [import recent changes] # yakty del [import filtered recent]
my $embed_recent = '\[\[#recent(\((\d+)\))?(:(\S+))?\]\]$';                     # Walrus add [import recent changes]  # yakty add [import filtered recent]

embedded_to_html() 内の変更

編集
    # Walrus add [import recent changes] start
    } elsif ($embedded =~ /$embed_recent/) {
        #$_ = &make_recent_changes($2);        # yakty del [import filtered recent]
        $_ = &make_recent_changes($2, $4);     # yakty add [import filtered recent]
        return ($_) ? $_ : &escape($embedded);
    # Walrus add [import recent changes] end

make_recent_changes() 内の変更

編集
sub make_recent_changes {
    # yakty del [import filtered recent] start
    #my ($count) = @_;
    #my @lines = grep { /^-/ } split(/\n/, $database{$RecentChanges});
    # yakty del [import filtered recent] end
    # yakty add [import filtered recent] start
    my ($count, $pattern) = @_;
    my @lines;
    foreach (split(/\n/, $database{$RecentChanges})){
        if(/^\- \d\d\d\d\-\d\d\-\d\d \(...\) \d\d:\d\d:\d\d (\S+)/){
            my $name = &unarmor_name($1);
            next if($pattern and $name !~ /^\Q$pattern\E/);
            push(@lines, $_);
        }
    }
    # yakty add [import filtered recent] end
    @lines = splice(@lines, 0, $count) if ($count);
    my $html = &text_to_html(join("\n", @lines));
    return $html;
}

02516