ページ名でフィルタリングした更新履歴を表示します。
[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;
}