]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/color.pm
trail: Allow unescaped punctuation in pagenames
[git.ikiwiki.info.git] / IkiWiki / Plugin / color.pm
index d550dd9f4b42ba7759b44b9571f0bc959e026423..e80130d924c04e7c7e542191d05ca9d32dbbd5d3 100644 (file)
@@ -38,12 +38,11 @@ sub preserve_style ($$$) {
                                ($background =~ /^[a-z]+$/ || $background =~ /^#[0-9a-f]{3,6}$/));
 
        my $preserved = '';
-       $preserved .= '<span class="color">';
+       $preserved .= '<span class="color"><span value="';
        $preserved .= 'color: '.$foreground if ($foreground);
        $preserved .= '; ' if ($foreground && $background);
        $preserved .= 'background-color: '.$background if ($background);
-       $preserved .= '</span>';
-       $preserved .= '<span class="colorend">'.$text.'</span>';
+       $preserved .= '"></span>'.$text.'</span>';
        
        return $preserved;
 
@@ -52,8 +51,7 @@ sub preserve_style ($$$) {
 sub replace_preserved_style ($) {
        my $content = shift;
 
-       $content =~ s!<span class="color">((color: ([a-z]+|\#[0-9a-f]{3,6})?)?((; )?(background-color: ([a-z]+|\#[0-9a-f]{3,6})?)?)?)</span>!<span class="color" style="$1">!g;
-       $content =~ s!<span class="colorend">!!g;
+       $content =~ s!<span class="color">\s*<span value="((color: ([a-z]+|\#[0-9a-f]{3,6})?)?((; )?(background-color: ([a-z]+|\#[0-9a-f]{3,6})?)?)?)">\s*</span>!<span class="color" style="$1">!g;
 
        return $content;
 }
@@ -61,12 +59,11 @@ sub replace_preserved_style ($) {
 sub preprocess (@) {
        my %params = @_;
 
-       # Preprocess the text to expand any preprocessor directives
-       # embedded inside it.
-       $params{text} = IkiWiki::preprocess($params{page}, $params{destpage},
-                               IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
-
-       return preserve_style($params{foreground}, $params{background}, $params{text});
+       return preserve_style($params{foreground}, $params{background},
+               # Preprocess the text to expand any preprocessor directives
+               # embedded inside it.
+               IkiWiki::preprocess($params{page}, $params{destpage},
+                       $params{text}));
 }
 
 sub format (@) {