diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-03-03 15:53:34 -0500 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-03-03 15:53:34 -0500 |
commit | d93aaed7919f0449d387aed6c6ee3aaff85a12eb (patch) | |
tree | f31e998cae4b6ec478d366f7997b0a892d89a328 /IkiWiki/Plugin/recentchangesdiff.pm | |
parent | 59379d0205fdbdb90553d1f5cef666e7e72a8927 (diff) | |
download | ikiwiki-d93aaed7919f0449d387aed6c6ee3aaff85a12eb.tar ikiwiki-d93aaed7919f0449d387aed6c6ee3aaff85a12eb.tar.gz |
* Add recentchangesdiff plugin that adds diffs to the recentchanges feeds.
* rcs_diff is a new function that rcs modules should implement.
* Implemented rcs_diff for git, svn, and tla (tla version untested).
Mercurial and monotone still todo.
Diffstat (limited to 'IkiWiki/Plugin/recentchangesdiff.pm')
-rw-r--r-- | IkiWiki/Plugin/recentchangesdiff.pm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/recentchangesdiff.pm b/IkiWiki/Plugin/recentchangesdiff.pm new file mode 100644 index 000000000..bd2826f76 --- /dev/null +++ b/IkiWiki/Plugin/recentchangesdiff.pm @@ -0,0 +1,27 @@ +#!/usr/bin/perl +package IkiWiki::Plugin::recentchangesdiff; + +use warnings; +use strict; +use IkiWiki 2.00; + +sub import { #{{{ + hook(type => "pagetemplate", id => "recentchangesdiff", + call => \&pagetemplate); +} #}}} + +sub pagetemplate (@) { #{{{ + my %params=@_; + my $template=$params{template}; + if ($config{rcs} && exists $params{rev} && length $params{rev} && + $template->query(name => "diff")) { + my $diff=IkiWiki::rcs_diff($params{rev}); + if (defined $diff && length $diff) { + # escape links and preprocessor stuff + $diff =~ s/(?<!\\)\[\[/\\\[\[/g; + $template->param(diff => $diff); + } + } +} #}}} + +1 |