X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/042a0577780ca1783ce8cb4d9a050fa115f6cd6b..6c546c8f3182668c6d21d578b789674894f18c39:/IkiWiki/Plugin/color.pm diff --git a/IkiWiki/Plugin/color.pm b/IkiWiki/Plugin/color.pm index ac702ff02..e80130d92 100644 --- a/IkiWiki/Plugin/color.pm +++ b/IkiWiki/Plugin/color.pm @@ -5,14 +5,24 @@ package IkiWiki::Plugin::color; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; -sub import { #{{{ +sub import { hook(type => "preprocess", id => "color", call => \&preprocess); hook(type => "format", id => "color", call => \&format); -} #}}} - -sub preserve_style ($$$) { #{{{ + hook(type => "getsetup", id => "color", call => \&getsetup); +} + +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => undef, + section => "widget", + }, +} + +sub preserve_style ($$$) { my $foreground = shift; my $background = shift; my $text = shift; @@ -28,42 +38,39 @@ sub preserve_style ($$$) { #{{{ ($background =~ /^[a-z]+$/ || $background =~ /^#[0-9a-f]{3,6}$/)); my $preserved = ''; - $preserved .= ''; + $preserved .= ''.$text.''; + $preserved .= '">'.$text.''; return $preserved; -} #}}} +} -sub replace_preserved_style ($) { #{{{ +sub replace_preserved_style ($) { my $content = shift; - $content =~ s!((color: ([a-z]+|\#[0-9a-f]{3,6})?)?((; )?(background-color: ([a-z]+|\#[0-9a-f]{3,6})?)?)?)!!g; - $content =~ s!!!g; + $content =~ s!\s*\s*!!g; return $content; -} #}}} +} -sub preprocess (@) { #{{{ +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 (@) { #{{{ +sub format (@) { my %params = @_; $params{content} = replace_preserved_style($params{content}); return $params{content}; -} #}}} +} 1