summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-08-23 03:25:40 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-08-23 03:25:40 +0000
commit78b279c3d8c803391a5a4fc59ffd7855ce8bc5f5 (patch)
tree10b1cbd54390a65553eca39aa8e88f6c181dfad0
parent63c79e7f5b87003cd02158b4d9f723b4c054cacf (diff)
* Allow preprocessor directives to span multiple lines, both to make
long ones with lots of values easier to write, and to allow for ones with multi-line quoted values.
-rw-r--r--IkiWiki.pm1
-rw-r--r--IkiWiki/Render.pm2
-rw-r--r--basewiki/preprocessordirective.mdwn13
-rw-r--r--debian/changelog5
4 files changed, 18 insertions, 3 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 9556d6ef7..b9ae74f85 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -18,7 +18,6 @@ use vars qw{%config %links %oldlinks %oldpagemtime %pagectime %pagecase
sub defaultconfig () { #{{{
wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.x?html?$|\.rss$)},
wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]]+)\]\]/,
- wiki_processor_regexp => qr/\[\[(\w+)\s+([^\]]*)\]\]/,
wiki_file_regexp => qr/(^[-[:alnum:]_.:\/+]+$)/,
verbose => 0,
syslog => 0,
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index ddd146922..8657dc380 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -123,7 +123,7 @@ sub preprocess ($$$;$) { #{{{
}
};
- $content =~ s{(\\?)$config{wiki_processor_regexp}}{$handle->($1, $2, $3)}eg;
+ $content =~ s{(\\?)\[\[(\w+)\s+((?:(?:\w+=)?(?:"[^"]+"|[^\s\]]+)\s*)*)\]\]}{$handle->($1, $2, $3)}eg;
return $content;
} #}}}
diff --git a/basewiki/preprocessordirective.mdwn b/basewiki/preprocessordirective.mdwn
index 2d84cfb97..31731af66 100644
--- a/basewiki/preprocessordirective.mdwn
+++ b/basewiki/preprocessordirective.mdwn
@@ -15,3 +15,16 @@ Note that if a preprocessor directive has no parameters, a space still must
be put after its name, to avoid confusion with a [[WikiLink]]. For example:
\[[pagecount ]]
+
+A preprocessor directive does not need to all be on one line. Also,
+multiple lines of *quoted* text can be used for a value. Examples:
+
+ \[[directive foo="baldersnatch"
+ bar="supercalifragalisticexpealadocious" baz=11]]
+
+ \[[directive text="
+ 1. foo
+ 2. bar
+ 3. baz
+ more lines
+ "]]
diff --git a/debian/changelog b/debian/changelog
index a4676af79..ba8b6d4f4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,8 +5,11 @@ ikiwiki (1.22) UNRELEASED; urgency=low
new more general variable can be used to link to other things (eg, images)
from the template, as well as stylesheets.
* Fix a bug introduced last version to do with nested inlines.
+ * Allow preprocessor directives to span multiple lines, both to make
+ long ones with lots of values easier to write, and to allow for ones with
+ multi-line quoted values.
- -- Joey Hess <joeyh@debian.org> Tue, 22 Aug 2006 12:53:05 -0400
+ -- Joey Hess <joeyh@debian.org> Tue, 22 Aug 2006 23:09:46 -0400
ikiwiki (1.21) unstable; urgency=low