Here are the details of what I did since you're curious. I am using Rcs::Agent to get diffs in the unified format. I think it's one of the best Rcs libraries. (The only thing that would be better for me would be a library that would allow me to get all lines of a file rather than just the 3 contextual lines surrounding the change.)
Then among other things, I:
getHTMLDiff basically passes $old and $new to HTML::Diff, a nifty little library in CPAN that returns word-level changes and has a few html-friendly features.foreach (@$diff) { if (m/^\@\@(.*)\@\@$/) { $str .= qq{<p id="rev">$1</p>}; } elsif (m/^\-(.*)$/) { push @$old, $1; } elsif (m/^\+(.*)$/) { push @$new, $1; } else { my $tst = $_; $str .= getHTMLDiff($old, $new) . $tst; undef $old; undef $new; } } $str .= getHTMLDiff($old, $new);
So that's the tangent. If jeffa or you or others have more suggestions I'm happy and thankful to read them; in the meantime I'll go check out HTML::TokeParser. Thanks. :-)
PS You can see the in-progress results of this over at my weblog http://www.museworld.com/ by looking for entries on the front page that have a little "Revision" link at the bottom. I'm basically writing a movable type plugin to allow people to keep revision history for their weblog entries.
In reply to Re: Re: Re: Re: Regex: How do I use lookahead with search/replace?
by tunesmith
in thread Regex: How do I use lookahead with search/replace?
by tunesmith
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |