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