]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge branch 'master' into prefix-directives
authorJosh Triplett <josh@freedesktop.org>
Sun, 10 Feb 2008 07:02:52 +0000 (23:02 -0800)
committerJosh Triplett <josh@freedesktop.org>
Sun, 10 Feb 2008 07:02:52 +0000 (23:02 -0800)
Conflicts:

debian/changelog
templates/change.tmpl

33 files changed:
IkiWiki.pm
IkiWiki/Plugin/poll.pm
Makefile.PL
debian/NEWS
debian/changelog
doc/ikiwiki-transition.mdwn [new file with mode: 0644]
doc/ikiwiki.mdwn
doc/ikiwiki.setup
doc/ikiwiki/blog.mdwn
doc/ikiwiki/formatting.mdwn
doc/ikiwiki/openid.mdwn
doc/ikiwiki/preprocessordirective.mdwn
doc/ikiwiki/wikilink.mdwn
doc/recentchanges.mdwn
doc/roadmap.mdwn
doc/shortcuts.mdwn
doc/templates.mdwn
doc/todo/New_preprocessor_directive_syntax.mdwn
doc/usage.mdwn
ikiwiki-transition [new file with mode: 0755]
ikiwiki.in
t/linkify.t
t/preprocess.t
templates/aggregatepost.tmpl
templates/change.tmpl
underlays/basewiki/blog.mdwn
underlays/basewiki/helponformatting.mdwn
underlays/basewiki/markdown.mdwn
underlays/basewiki/openid.mdwn
underlays/basewiki/pagespec.mdwn
underlays/basewiki/preprocessordirective.mdwn
underlays/basewiki/subpage.mdwn
underlays/basewiki/wikilink.mdwn

index 0c05bb0d377c8622b2e0ea3ff6a21abea14a6322..1091ca8728ee94af5378247a409a9d6e0c45e552 100644 (file)
@@ -38,13 +38,13 @@ sub defaultconfig () { #{{{
                qr/(^|\/)_MTN\//,
                qr/\.dpkg-tmp$/],
        wiki_link_regexp => qr{
-               \[\[                    # beginning of link
+               \[\[(?=[^!])            # beginning of link
                (?:
-                       ([^\]\|\n\s]+)  # 1: link text
+                       ([^\]\|]+)      # 1: link text
                        \|              # followed by '|'
                )?                      # optional
                
-               ([^\s\]#]+)             # 2: page to link to
+               ([^\n\r\]#]+)           # 2: page to link to
                (?:
                        \#              # '#', beginning of anchor
                        ([^\s\]]+)      # 3: anchor text
@@ -100,6 +100,7 @@ sub defaultconfig () { #{{{
        usedirs => 1,
        numbacklinks => 10,
        account_creation_password => "",
+       prefix_directives => 0,
 } #}}}
 
 sub checkconfig () { #{{{
@@ -146,6 +147,24 @@ sub checkconfig () { #{{{
                umask(possibly_foolish_untaint($config{umask}));
        }
 
+       if (!$config{prefix_directives}) {
+               $config{wiki_link_regexp} = qr{
+                       \[\[                    # beginning of link
+                       (?:
+                               ([^\]\|\n\s]+)  # 1: link text
+                               \|              # followed by '|'
+                       )?                      # optional
+
+                       ([^\s\]#]+)             # 2: page to link to
+                       (?:
+                               \#              # '#', beginning of anchor
+                               ([^\s\]]+)      # 3: anchor text
+                       )?                      # optional
+
+                       \]\]                    # end of link
+               }x,
+       }
+
        run_hooks(checkconfig => sub { shift->() });
 
        return 1;
@@ -699,10 +718,11 @@ sub preprocess ($$$;$$) { #{{{
 
        my $handle=sub {
                my $escape=shift;
+               my $prefix=shift;
                my $command=shift;
                my $params=shift;
                if (length $escape) {
-                       return "[[$command $params]]";
+                       return "[[$prefix$command $params]]";
                }
                elsif (exists $hooks{preprocess}{$command}) {
                        return "" if $scan && ! $hooks{preprocess}{$command}{scan};
@@ -776,31 +796,58 @@ sub preprocess ($$$;$$) { #{{{
                        return $ret;
                }
                else {
-                       return "[[$command $params]]";
+                       return "[[$prefix$command $params]]";
                }
        };
        
-       $content =~ s{
-               (\\?)           # 1: escape?
-               \[\[            # directive open
-               ([-\w]+)        # 2: command
-               \s+
-               (               # 3: the parameters..
-                       (?:
-                               (?:[-\w]+=)?            # named parameter key?
+       my $regex;
+       if ($config{prefix_directives}) {
+               $regex = qr{
+                       (\\?)           # 1: escape?
+                       \[\[(!)         # directive open; 2: prefix
+                       ([-\w]+)        # 3: command
+                       (               # 4: the parameters..
+                               \s+     # Must have space if parameters present
+                               (?:
+                                       (?:[-\w]+=)?            # named parameter key?
+                                       (?:
+                                               """.*?"""       # triple-quoted value
+                                               |
+                                               "[^"]+"         # single-quoted value
+                                               |
+                                               [^\s\]]+        # unquoted value
+                                       )
+                                       \s*                     # whitespace or end
+                                                               # of directive
+                               )
+                       *)?             # 0 or more parameters
+                       \]\]            # directive closed
+               }sx;
+       } else {
+               $regex = qr{
+                       (\\?)           # 1: escape?
+                       \[\[(!?)        # directive open; 2: optional prefix
+                       ([-\w]+)        # 3: command
+                       \s+
+                       (               # 4: the parameters..
                                (?:
-                                       """.*?"""       # triple-quoted value
-                                       |
-                                       "[^"]+"         # single-quoted value
-                                       |
-                                       [^\s\]]+        # unquoted value
+                                       (?:[-\w]+=)?            # named parameter key?
+                                       (?:
+                                               """.*?"""       # triple-quoted value
+                                               |
+                                               "[^"]+"         # single-quoted value
+                                               |
+                                               [^\s\]]+        # unquoted value
+                                       )
+                                       \s*                     # whitespace or end
+                                                               # of directive
                                )
-                               \s*                     # whitespace or end
-                                                       # of directive
-                       )
-               *)              # 0 or more parameters
-               \]\]            # directive closed
-       }{$handle->($1, $2, $3)}sexg;
+                       *)              # 0 or more parameters
+                       \]\]            # directive closed
+               }sx;
+       }
+
+       $content =~ s{$regex}{$handle->($1, $2, $3, $4)}eg;
        return $content;
 } #}}}
 
index 41ebd74a00763f2bff17e952c2d72047061d7216..82e862c59b92b8162e1684cd6ff4badbd8d37486 100644 (file)
@@ -101,6 +101,8 @@ sub sessioncgi ($$) { #{{{
                        exit;
                }
 
+               my $prefix=$config{prefix_directives} ? "!poll" : "poll";
+
                my $content=readfile(srcfile($pagesources{$page}));
                # Now parse the content, find the right poll,
                # and find the choice within it, and increment its number.
@@ -108,16 +110,16 @@ sub sessioncgi ($$) { #{{{
                my $edit=sub {
                        my $escape=shift;
                        my $params=shift;
-                       return "\\[[poll $params]]" if $escape;
+                       return "\\[[$prefix $params]]" if $escape;
                        if (--$num == 0) {
                                $params=~s/(^|\s+)(\d+)\s+"?\Q$choice\E"?(\s+|$)/$1.($2+1)." \"$choice\"".$3/se;
                                if (defined $oldchoice) {
                                        $params=~s/(^|\s+)(\d+)\s+"?\Q$oldchoice\E"?(\s+|$)/$1.($2-1 >=0 ? $2-1 : 0)." \"$oldchoice\"".$3/se;
                                }
                        }
-                       return "[[poll $params]]";
+                       return "[[$prefix $params]]";
                };
-               $content =~ s{(\\?)\[\[poll\s+([^]]+)\s*\]\]}{$edit->($1, $2)}seg;
+               $content =~ s{(\\?)\[\[\Q$prefix\E\s+([^]]+)\s*\]\]}{$edit->($1, $2)}seg;
 
                # Store their vote, update the page, and redirect to it.
                writefile($pagesources{$page}, $config{srcdir}, $content);
index 49fac1adecbfa1e57ac85414bd7b661366568e53..7608d373c8e6623ad2fcffc546f25fd11f491092 100755 (executable)
@@ -35,6 +35,7 @@ extra_build: ikiwiki.out
        ./mdwn2man ikiwiki 1 doc/usage.mdwn > ikiwiki.man
        ./mdwn2man ikiwiki-mass-rebuild 8 doc/ikiwiki-mass-rebuild.mdwn > ikiwiki-mass-rebuild.man
        ./mdwn2man ikiwiki-makerepo 1 doc/ikiwiki-makerepo.mdwn > ikiwiki-makerepo.man
+       ./mdwn2man ikiwiki-transition 1 doc/ikiwiki-transition.mdwn > ikiwiki-transition.man
        ./mdwn2man ikiwiki-update-wikilist 1 doc/ikiwiki-update-wikilist.mdwn > ikiwiki-update-wikilist.man
        $(MAKE) -C po
        if [ "$$PROFILE" = 1 ]; then dprofpp; fi
@@ -67,6 +68,7 @@ extra_install:
        install -d $(DESTDIR)$(PREFIX)/share/man/man1
        install -m 644 ikiwiki.man $(DESTDIR)$(PREFIX)/share/man/man1/ikiwiki.1
        install -m 644 ikiwiki-makerepo.man $(DESTDIR)$(PREFIX)/share/man/man1/ikiwiki-makerepo.1
+       install -m 644 ikiwiki-transition.man $(DESTDIR)$(PREFIX)/share/man/man1/ikiwiki-transition.1
        install -m 644 ikiwiki-update-wikilist.man $(DESTDIR)$(PREFIX)/share/man/man1/ikiwiki-update-wikilist.1
        
        install -d $(DESTDIR)$(PREFIX)/share/man/man8
@@ -80,7 +82,7 @@ extra_install:
 
        install -d $(DESTDIR)$(PREFIX)/bin
        install ikiwiki.out $(DESTDIR)$(PREFIX)/bin/ikiwiki
-       install ikiwiki-makerepo ikiwiki-update-wikilist $(DESTDIR)$(PREFIX)/bin/
+       install ikiwiki-makerepo ikiwiki-transition ikiwiki-update-wikilist $(DESTDIR)$(PREFIX)/bin/
 
        $(MAKE) -C po install DESTDIR=$(DESTDIR) PREFIX=$(PREFIX)
 }
index c3ed55c03842f18556760c36c61d3ad3907e7a30..908cfdb1534db3e0180eade62f49f43465c6a6eb 100644 (file)
@@ -1,3 +1,36 @@
+ikiwiki (2.31) unstable; urgency=low
+
+  ikiwiki now has an new syntax for preprocessor directives, using the
+  prefix '!':
+
+  [[!directive ...]]
+
+  This new syntax no longer relies on spaces to distinguish between
+  wikilinks and preprocessor directives.  Thus, wikilinks can use spaces
+  in their link text, and preprocessor directives without arguments (such
+  as "toc") need not use a trailing space.
+
+  To enable the new syntax, set prefix_directives to true in your ikiwiki
+  config.  For backward compatibility with existing wikis,
+  prefix_directives currently defaults to false.  In ikiwiki 3.0,
+  prefix_directives will default to true, and wikis which have not yet
+  converted to the new syntax will need to set prefix_directives to false
+  in their setup files.
+
+  To convert your wiki to the new syntax, ikiwiki provides a new script
+  ikiwiki-transition.  It will convert preprocessor directives in
+  all files given on the command line.  To convert an entire wiki:
+
+  find wikidir/ -type f -name '*.mdwn' -print0 | xargs -0 ikiwiki-transition prefix_directives
+
+  Even with prefix_directives disabled, ikiwiki now allows an optional '!'
+  prefix on preprocessor directives (but still requires a space).  Thus, a
+  directive which uses a '!' prefix and contains a space will work with
+  ikiwiki 2.21 and newer, regardless of the value of prefix_directives.
+  This allows the underlay to work with all ikiwikis.
+
+ -- Josh Triplett <josh@freedesktop.org>  Sat, 26 Jan 2008 16:26:47 -0800
+
 ikiwiki (2.30) unstable; urgency=low
 
   Ever feel that ikiwiki's handling of RecentChanges wasn't truely in the
@@ -11,7 +44,7 @@ ikiwiki (2.30) unstable; urgency=low
   Debian package is upgraded. Or use ikiwiki-mass-rebuild to force a rebuild.
 
   With this excellent new RecentChanges support, the mail notification system
-  is showing its age (and known to be variously buggy and underimplemented for
+  is its age (and known to be variously buggy and underimplemented for
   various VCSes), and so ikiwiki's support for sending commit mails is REMOVED
   from this version. If you were subscribed to commit mails, you should be
   able to accomplish the same thing by subscribing to a RecentChanges feed.
index b21cdb4419905119277620d732a7937e98a5d417..420cef5ad9e0e3a440936f756b4b78c9fc693fdd 100644 (file)
@@ -1,3 +1,15 @@
+ikiwiki (2.40) UNRELEASED; urgency=low
+
+  [ Josh Triplett ]
+  * Add new preprocessor directive syntax¸ using a '!' prefix.  Add a
+    prefix_directives option to the setup file to turn this syntax on;
+    currently defaults to false, for backward compatibility.  Support
+    optional '!' prefix even with prefix_directives off, and use that in
+    the underlay to support either setting of prefix_directives.  Add NEWS
+    entry with migration information.
+
+ -- Josh Triplett <josh@freedesktop.org>  Sat, 09 Feb 2008 23:01:19 -0800
+
 ikiwiki (2.31) unstable; urgency=low
 
   [ Joey Hess ]
diff --git a/doc/ikiwiki-transition.mdwn b/doc/ikiwiki-transition.mdwn
new file mode 100644 (file)
index 0000000..118050a
--- /dev/null
@@ -0,0 +1,29 @@
+# NAME
+
+ikiwiki-transition - transition ikiwiki pages to new syntaxes
+
+# SYNOPSIS
+
+ikiwiki-transition prefix_directives page.mdwn...
+
+# DESCRIPTION
+
+`ikiwiki-transition` aids in converting ikiwiki pages when
+there's a major change in ikiwiki syntax.
+
+Currently only one such transition is handled, the `prefix_directives` mode
+converts an ikiwiki page from the old preprocessor directive syntax,
+requiring a space, to the new syntax, prefixed by '!'.
+
+Preprocessor directives which already use the new syntax will remain
+unchanged.
+
+Note that if the page contains wiki links with spaces, which some
+older versions of ikiwiki accepted, the prefix_directives transition will
+treat these as preprocessor directives and convert them.
+
+# AUTHOR
+
+Josh Triplett <josh@freedesktop.org>
+
+Warning: this page is automatically made into ikiwiki-transition's man page, edit with care
index c3773ed3a627babb20d726bfe545d9f411d69edb..9f8693ec4a0c04c5d27cd4325734867303c9cc38 100644 (file)
@@ -1,6 +1,6 @@
 This wiki is powered by [ikiwiki](http://ikiwiki.info/).
-[[if test="enabled(version)"
-     then="(Currently running version [[version ]].)"
+[[!if test="enabled(version)"
+     then="(Currently running version [[!version ]].)"
 ]]
 
 Some documentation on using ikiwiki:
index c96a45f78d091a23a905d82e5dfd33f3d7e27a14..0094bcb2acf3f4b796807b8c1e5a1fa3f8d38470 100644 (file)
@@ -128,6 +128,8 @@ use IkiWiki::Setup::Standard {
        # Default settings for the recentchanges page.
        #recentchangespage => "recentchanges",
        #recentchangesnum => 100,
+       # Use new '!'-prefixed preprocessor directive syntax
+       #prefix_directives => 0,
 
        # To add plugins, list them here.
        #add_plugins => [qw{goodstuff search wikitext camelcase
index 80a3d20b396f0d418b52b3e77de7415ea357e845..1a816dceb4a9ff768ad0eef09b57acdce76f35bd 100644 (file)
@@ -1,14 +1,14 @@
-[[if test="enabled(inline)"
+[[!if test="enabled(inline)"
      then="This wiki has the inline plugin **enabled**."
      else="This wiki has the inline plugin **disabled**."]]
 
-[[if test="enabled(inline)"
+[[!if test="enabled(inline)"
      then="You can"
      else="If this wiki had the inline plugin enabled, you could"]]
 turn any page on this wiki into a weblog by using the `inline`
 [[PreProcessorDirective]]. For example:
 
-       \[[inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]
+       \[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]
 
 Any pages that match the specified [[PageSpec]] (in the example, any
 [[SubPage]] of "blog") will be part of the blog, and the newest 10
@@ -23,23 +23,23 @@ top of the blog that can be used to add new items.
 If you want your blog to have an archive page listing every post ever made
 to it, you can accomplish that like this:
 
-       \[[inline pages="blog/* and !*/Discussion" archive="yes"]]
+       \[[!inline pages="blog/* and !*/Discussion" archive="yes"]]
 
 You can even create an automatically generated list of all the pages on the
 wiki, with the most recently added at the top, like this:
 
-       \[[inline pages="* and !*/Discussion" archive="yes"]]
+       \[[!inline pages="* and !*/Discussion" archive="yes"]]
 
 If you want to be able to add pages to a given blog feed by tagging them,
 you can do that too. To tag a page, just make it link to a page or pages 
 that represent its tags. Then use the special `link()` [[PageSpec]] to match
 all pages that have a given tag:
 
-       \[[inline pages="link(life)"]]
+       \[[!inline pages="link(life)"]]
 
 Or include some tags and exclude others:
 
-       \[[inline pages="link(debian) and !link(social)"]]
+       \[[!inline pages="link(debian) and !link(social)"]]
 
 ## usage
 
index 69e28913f3a96d4c035ca9ad4d0b5ae93269a778..dc1fa77fd7d2e0706cb3e7b45c8549d32f6d62c7 100644 (file)
@@ -1,4 +1,4 @@
-[[meta title="Formatting wiki pages"]]
+[[!meta title="Formatting wiki pages"]]
 
 Text on this wiki is, by default, written in a form very close to how you
 might write text for an email message. This style of text formatting is
@@ -59,36 +59,36 @@ you use the following additional features:
 * To link to another page on the wiki, place the page's name inside double
   square brackets. So you would use `\[[WikiLink]]` to link to [[WikiLink]].
 
-[[if test="enabled(smiley) and smileys" then="""
+[[!if test="enabled(smiley) and smileys" then="""
 * Insert [[smileys]] and some other useful symbols. :-)
 """]]
 
-[[if test="enabled(shortcut) and shortcuts" then="""
+[[!if test="enabled(shortcut) and shortcuts" then="""
 * Use [[shortcuts]] to link to common resources.
 
-       \[[wikipedia War\_of\_1812]]
+       \[[!wikipedia War\_of\_1812]]
 """]]
 
-[[if test="enabled(toc)" then="""
+[[!if test="enabled(toc)" then="""
 * Add a table of contents to a page:
 
-       \[[toc ]]
+       \[[!toc ]]
 """]]
 
 
-[[if test="enabled(meta)" then="""
+[[!if test="enabled(meta)" then="""
 * Change the title of a page:
 
-       \[[meta title="full page title"]]
+       \[[!meta title="full page title"]]
 """]]
 
-[[if test="enabled(inline) and blog" then="""
+[[!if test="enabled(inline) and blog" then="""
 * Create a [[blog]] by inlining a set of pages:
 
-       \[[inline pages="blog/*"]]
+       \[[!inline pages="blog/*"]]
 """]]
 
-[[if test="enabled(template) and templates" then="""
+[[!if test="enabled(template) and templates" then="""
 * Create and fill out [[templates]] for repeated chunks of
   parameterized wiki text.
 """]]
index f02a0a62ccbceb1909cbd5c8179d82daa9448b29..d0f93a8a9a16c5617b22d09e618585c8a72d03a8 100644 (file)
@@ -1,6 +1,6 @@
-[[meta title="OpenID"]]
+[[!meta title="OpenID"]]
 
-[[if test="enabled(openid)"
+[[!if test="enabled(openid)"
      then="This wiki has OpenID **enabled**."
      else="This wiki has OpenID **disabled**."]]
 
@@ -17,7 +17,7 @@ To sign up for an OpenID, visit one of the following identity providers:
 * or any of the [many others out there](http://openiddirectory.com/index.php?dir=1)..
 
 Your OpenID is the URL that you are given when you sign up.
-[[if test="enabled(openid)" then="""
+[[!if test="enabled(openid)" then="""
 To sign in to this wiki using OpenID, just enter it in the OpenID field in the
 signin form. You do not need to give this wiki a password or go through any
 registration process when using OpenID.
@@ -28,5 +28,5 @@ registration process when using OpenID.
 It's also possible to make a page in the wiki usable as an OpenID url,
 by delegating it to an openid server. Here's an example of how to do that:
 
-       \[[meta openid="http://yourid.myopenid.com/"
+       \[[!meta openid="http://yourid.myopenid.com/"
               server="http://www.myopenid.com/server"]]
index 1e2332c091b48386c2f164b2de2c2bfc5f5106cc..e8bf783a9cba1e179fd922e80eb0d85b064cdb69 100644 (file)
@@ -1,7 +1,7 @@
 Preprocessor directives are similar to a [[WikiLink]] in form, except they
-contain spaces and parameters. The general form is:
+begin with `!` and may contain parameters. The general form is:
 
-       \[[directive param="value" param="value"]]
+       \[[!directive param="value" param="value"]]
 
 This gets expanded before the rest of the page is processed, and can be used
 to transform the page in various ways.
@@ -9,25 +9,31 @@ to transform the page in various ways.
 The quotes around values can be omitted if the value is a simple word.
 Also, some directives may use parameters without values, for example:
 
-       \[[tag foo]]
-
-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 ]]
+       \[[!tag foo]]
 
 A preprocessor directive does not need to all be on one line, it can be
 wrapped to multiple lines if you like:
        
-       \[[directive foo="baldersnatch"
+       \[[!directive foo="baldersnatch"
        bar="supercalifragalisticexpealadocious" baz=11]]
 
 Also, multiple lines of *quoted* text can be used for a value.
 To allow quote marks inside the quoted text, delimit the block
 of text with triple-quotes:
 
-       \[[directive text="""
+       \[[!directive text="""
        1. "foo"
        2. "bar"
        3. "baz"
        """]]
+
+ikiwiki also has an older syntax for preprocessor directives, which requires a
+space in directives to distinguish them from [[wikilinks|wikilink]].  This
+syntax has several disadvantages: it requires a space after directives with no
+parameters (such as `\[[!pagecount ]]`), and it prohibits spaces in
+[[wikilinks|wikilink]].  ikiwiki now provides the `!`-prefixed syntax shown
+above as the preferred alternative.  However, ikiwiki still supports wikis
+using the older syntax, if their setup files disable the `prefix_directives`
+option.  For backward compatibility with existing wikis, this option currently
+defaults to off, so ikiwiki uses the old directive syntax; however, future
+versions of ikiwiki will turn this on by default.
index 38df00f86ea42b3c57da07c414e02f8387e330b9..debbe7305a8b109e37f6c3a57c7f024b7657b765 100644 (file)
@@ -22,6 +22,14 @@ page, but the link will appear like this: [[foo_bar|SandBox]].
 To link to an anchor inside a page, you can use something like
 `\[[WikiLink#foo]]`
 
-**Note that you cannot use spaces in WikiLinks**. Replace spaces with
-underscores. The presence of spaces is used to distinguish between a
-[[PreprocessorDirective]] and a WikiLink.
+## Preprocessor directives and wikilinks
+
+ikiwiki has two syntaxes for
+[[preprocessor_directives|PreprocessorDirective]].  The older syntax
+used spaces to distinguish between preprocessor directives and
+wikilinks; as a result, with that syntax in use, you cannot use spaces
+in WikiLinks, and must replace spaces with underscores.  The newer
+syntax, enabled with the `prefix_directives` option in an ikiwiki
+setup file, prefixes directives with `!`, and thus does not prevent
+links with spaces.  Future versions of ikiwiki will turn this option
+on by default.
\ No newline at end of file
index f832981876699827da37bcdfd72edc42b08615fb..d22a8f30e4541e73ee2b10b4a39a55d1b051edc4 100644 (file)
@@ -1,5 +1,5 @@
-[[meta title="RecentChanges"]]
+[[!meta title="RecentChanges"]]
 Recent changes to this wiki:
 
-[[inline pages="internal(recentchanges/change_*) and !*/Discussion" 
+[[!inline pages="internal(recentchanges/change_*) and !*/Discussion" 
 template=recentchanges show=0]]
index e869c6b151edb077d6993724ec766ef6ef439aa5..af46e162be7f89ab3efb33dc5dc96f1c0b3343ce 100644 (file)
@@ -37,6 +37,15 @@ backwards compatability.
 
 ----
 
+# 3.0
+
+Still in the early planning stages, version 3.0 will be an opportunity to
+make significant transitions.
+
+* Default to using prefix_directives.
+
+----
+
 # future goals
 
 * Improved [[todo/html]] stylesheets and templates.
index 62e06614b7195b617a60fef8c125fb4211357647..e4e7408970f4b96933666c12c81212da3cc2a84d 100644 (file)
@@ -1,58 +1,58 @@
-[[if test="enabled(shortcut)"
+[[!if test="enabled(shortcut)"
      then="This wiki has shortcuts **enabled**."
      else="This wiki has shortcuts **disabled**."]]
 
 Some examples of using shortcuts include:
 
-       \[[google foo]]
-       \[[wikipedia War_of_1812]]
-       \[[debbug 12345]]
+       \[[!google foo]]
+       \[[!wikipedia War_of_1812]]
+       \[[!debbug 12345]]
 
 This page controls what shortcut links the wiki supports.
 
-* [[shortcut name=google url="http://www.google.com/search?q=%s"]]
-* [[shortcut name=archive url="http://web.archive.org/*/%S"]]
-* [[shortcut name=gmap url="http://maps.google.com/maps?q=%s"]]
-* [[shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
-* [[shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
-* [[shortcut name=wikitravel url="http://wikitravel.org/en/%s"]]
-* [[shortcut name=debbug url="http://bugs.debian.org/%s" desc="bug #%s"]]
-* [[shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
-* [[shortcut name=debpkg url="http://packages.debian.org/%s"]]
-* [[shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
-* [[shortcut name=debmsg url="http://lists.debian.org/msgid-search/%s"]]
-* [[shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
-* [[shortcut name=debss url="http://snapshot.debian.net/package/%s"]]
-  * Usage: `\[[debss package]]`, `\[[debss package#version]]`, or `\[[debss package/version]]`.  See http://snapshot.debian.net for details.
-* [[shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
-* [[shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
-* [[shortcut name=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
-* [[shortcut name=linuxbug url="http://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
-* [[shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
-* [[shortcut name=gnulist url="http://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
-* [[shortcut name=marcmsg url="http://marc.info/?i=%s"]]
-* [[shortcut name=marclist url="http://marc.info/?l=%s"]]
-* [[shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
-* [[shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
-* [[shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
-* [[shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
-* [[shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
-* [[shortcut name=iki url="http://ikiwiki.info/%S/"]]
-* [[shortcut name=ljuser url="http://%s.livejournal.com/"]]
-* [[shortcut name=rfc url="http://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
-* [[shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
-* [[shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
-* [[shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
-* [[shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
-* [[shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s"]]
-* [[shortcut name=imdb url="http://imdb.com/find?q=%s"]]
-* [[shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
-* [[shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
-* [[shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
-* [[shortcut name=cve url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
-* [[shortcut name=cia url="http://cia.vc/stats/project/%s"]]
-* [[shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
-* [[shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
+* [[!shortcut name=google url="http://www.google.com/search?q=%s"]]
+* [[!shortcut name=archive url="http://web.archive.org/*/%S"]]
+* [[!shortcut name=gmap url="http://maps.google.com/maps?q=%s"]]
+* [[!shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
+* [[!shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
+* [[!shortcut name=wikitravel url="http://wikitravel.org/en/%s"]]
+* [[!shortcut name=debbug url="http://bugs.debian.org/%s" desc="bug #%s"]]
+* [[!shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
+* [[!shortcut name=debpkg url="http://packages.debian.org/%s"]]
+* [[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
+* [[!shortcut name=debmsg url="http://lists.debian.org/msgid-search/%s"]]
+* [[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
+* [[!shortcut name=debss url="http://snapshot.debian.net/package/%s"]]
+  * Usage: `\[[!debss package]]`, `\[[!debss package#version]]`, or `\[[!debss package/version]]`.  See http://snapshot.debian.net for details.
+* [[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
+* [[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
+* [[!shortcut name=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
+* [[!shortcut name=linuxbug url="http://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
+* [[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
+* [[!shortcut name=gnulist url="http://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
+* [[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]
+* [[!shortcut name=marclist url="http://marc.info/?l=%s"]]
+* [[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
+* [[!shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
+* [[!shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
+* [[!shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
+* [[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
+* [[!shortcut name=iki url="http://ikiwiki.info/%S/"]]
+* [[!shortcut name=ljuser url="http://%s.livejournal.com/"]]
+* [[!shortcut name=rfc url="http://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
+* [[!shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
+* [[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
+* [[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
+* [[!shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
+* [[!shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s"]]
+* [[!shortcut name=imdb url="http://imdb.com/find?q=%s"]]
+* [[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
+* [[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
+* [[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
+* [[!shortcut name=cve url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
+* [[!shortcut name=cia url="http://cia.vc/stats/project/%s"]]
+* [[!shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
+* [[!shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
 
 To add a new shortcut, use the `shortcut`
 [[ikiwiki/PreprocessorDirective]]. In the url, "%s" is replaced with the
index 9ed9b838df4585bfd36b951e042b8e98e7d7c498..24da881c7a71e4af0741aba5065a5d833735144f 100644 (file)
@@ -1,4 +1,4 @@
-[[if test="enabled(template)"
+[[!if test="enabled(template)"
 then="This wiki has templates **enabled**."
 else="This wiki has templates **disabled**."
 ]]
@@ -6,14 +6,14 @@ else="This wiki has templates **disabled**."
 Templates are files that can be filled out and inserted into pages in the
 wiki.
 
-[[if test="enabled(template) and enabled(inline)" then="""
+[[!if test="enabled(template) and enabled(inline)" then="""
 
 ## Available templates
 
 These templates are available for inclusion onto other pages in this
 wiki:
 
-[[inline pages="templates/* and !*/discussion" feeds=no archive=yes
+[[!inline pages="templates/* and !*/discussion" feeds=no archive=yes
 sort=title template=titlepage]]
 """]]
 
@@ -21,7 +21,7 @@ sort=title template=titlepage]]
 
 Using a template works like this:
 
-       \[[template id=note text="""Here is the text to insert into my note."""]]
+       \[[!template id=note text="""Here is the text to insert into my note."""]]
 
 This fills out the [[note]] template, filling in the `text` field with
 the specified value, and inserts the result into the page.
@@ -31,7 +31,7 @@ page outside the template. Triple-quoting the value even allows quotes to
 be included in it. Combined with multi-line quoted values, this allows for
 large chunks of marked up text to be embedded into a template:
 
-        \[[template id=foo name="Sally" color="green" age=8 notes="""
+        \[[!template id=foo name="Sally" color="green" age=8 notes="""
         * \[[Charley]]'s sister.
         * "I want to be an astronaut when I grow up."
         * Really 8 and a half.
@@ -43,7 +43,7 @@ To create a template, simply add a template directive to a page, and page will
 provide a link that can be used to create the template. The template is a
 regular wiki page, located in the `templates/` directory.
 
-The template uses the syntax used by the [[cpan HTML::Template]] perl
+The template uses the syntax used by the [[!cpan HTML::Template]] perl
 module, which allows for some fairly complex things to be done. Consult its
 documentation for the full syntax, but all you really need to know are a
 few things:
index 0302c4e3805977eef9d6266a3aecfeec614e63b8..b3798599484f487f4fd73da62a784cf277dcec36 100644 (file)
@@ -17,3 +17,5 @@ Making this transition would fix two major warts:
   with no arguments, such as `\[[toc ]]`
 
 --[[JoshTriplett]]
+
+[[done]] in version 2.21, using the '!'-prefixed syntax. --[[JoshTriplett]]
\ No newline at end of file
index cd8f0542c6a8eb3b2623b37ce2f39dfc7fdf03c1..4c08c5b39cd554c8e5ce84bd1da916b0a224d8f5 100644 (file)
@@ -277,6 +277,11 @@ configuration options of their own.
 
   Toggle creating output files named page/index.html (default) instead of page.html.
 
+* --prefix-directives, --no-prefix-directives
+
+  Toggle new '!'-prefixed syntax for preprocessor directives.  ikiwiki currently
+  defaults to --no-prefix-directives.
+
 * --w3mmode, --no-w3mmode
 
   Enable [[w3mmode]], which allows w3m to use ikiwiki as a local CGI script,
diff --git a/ikiwiki-transition b/ikiwiki-transition
new file mode 100755 (executable)
index 0000000..1fd23ce
--- /dev/null
@@ -0,0 +1,66 @@
+#!/usr/bin/perl -i
+use warnings;
+use strict;
+
+my $regex = qr{
+       (\\?)           # 1: escape?
+       \[\[(!?)        # directive open; 2: optional prefix
+       ([-\w]+)        # 3: command
+       (               # 4: the parameters (including initial whitespace)
+       \s+
+               (?:
+                       (?:[-\w]+=)?            # named parameter key?
+                       (?:
+                               """.*?"""       # triple-quoted value
+                               |
+                               "[^"]+"         # single-quoted value
+                               |
+                               [^\s\]]+        # unquoted value
+                       )
+                       \s*                     # whitespace or end
+                                               # of directive
+               )
+       *)              # 0 or more parameters
+       \]\]            # directive closed
+}sx;
+
+sub handle_directive {
+       my $escape = shift;
+       my $prefix = shift;
+       my $directive = shift;
+       my $args = shift;
+
+       if (length $escape) {
+               return "${escape}[[${prefix}${directive}${args}]]"
+       }
+       if ($directive =~ m/^(if|more|table|template|toggleable)$/) {
+               $args =~ s{$regex}{handle_directive($1, $2, $3, $4)}eg;
+       }
+       return "[[!${directive}${args}]]"
+}
+
+sub prefix_directives {
+       $/=undef; # process whole files at once
+       
+       while (<>) {
+               s{$regex}{handle_directive($1, $2, $3, $4)}eg;
+               print;
+       }
+}
+
+sub usage {
+       print STDERR "Usage: ikiwiki-transition type file ...\n";
+       print STDERR "Currently supported transition types:\n";
+       print STDERR "  prefix_directives\n";
+       exit 1;
+}
+
+usage() unless @ARGV;
+
+my $mode=shift;
+if ($mode eq 'prefix_directives') {
+       prefix_directives(@ARGV);
+}
+else {
+       usage();
+}
index 1ce7e16887d3389620349ff357ca165a87deabca..e0a59182422ae0d2aaa1b69d15fa3463f144d9c8 100755 (executable)
@@ -29,6 +29,7 @@ sub getconfig () { #{{{
                        "render=s" => \$config{render},
                        "wrappers!" => \$config{wrappers},
                        "usedirs!" => \$config{usedirs},
+                       "prefix-directives!" => \$config{prefix_directives},
                        "getctime" => \$config{getctime},
                        "numbacklinks=i" => \$config{numbacklinks},
                        "rcs=s" => \$config{rcs},
index 59af7bd4d08395f8a37120bbe9e780a751bd5ce0..0510cd6dbb24c2acaa9f2e8dab82a0d9c50adfb1 100755 (executable)
@@ -1,10 +1,12 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
-use Test::More tests => 16;
+use Test::More tests => 32;
 
 BEGIN { use_ok("IkiWiki"); }
 
+my $prefix_directives;
+
 sub linkify ($$$$) {
        my $lpage=shift;
        my $page=shift;
@@ -22,10 +24,15 @@ sub linkify ($$$$) {
                $renderedfiles{"$page.mdwn"}=[$page];
                $destsources{$page}="$page.mdwn";
        }
+
        %config=IkiWiki::defaultconfig();
        $config{cgiurl}="http://somehost/ikiwiki.cgi";
+       $config{srcdir}=$config{destdir}="/dev/null"; # placate checkconfig
        # currently coded for non usedirs mode (TODO: check both)
        $config{usedirs}=0;
+       $config{prefix_directives}=$prefix_directives;
+
+       IkiWiki::checkconfig();
 
        return IkiWiki::linkify($lpage, $page, $content);
 }
@@ -69,19 +76,33 @@ sub links_text ($$) {
        }
 }
 
+# Tests that are the same for both styles of prefix directives.
+foreach $prefix_directives (0,1) {
+       ok(links_to("bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo", "bar"])), "ok link");
+       ok(links_to("bar_baz", linkify("foo", "foo", "link to [[bar_baz]] ok", ["foo", "bar_baz"])), "ok link");
+       ok(not_links_to("bar", linkify("foo", "foo", "link to \\[[bar]] ok", ["foo", "bar"])), "escaped link");
+       ok(links_to("page=bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo"])), "broken link");
+       ok(links_to("bar", linkify("foo", "foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
+       ok(links_to("baz", linkify("foo", "foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
+       ok(links_to("bar", linkify("foo", "foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link");
+       ok(links_text("some page", linkify("foo", "foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link text");
+       ok(links_text("0", linkify("foo", "foo", "link to [[0|bar]] ok", ["foo", "bar"])), "named link to 0");
+       ok(links_text("Some long, & complex page name.", linkify("foo", "foo", "link to [[Some_long,_&_complex_page_name.|bar]] ok, and this is not a link]] here", ["foo", "bar"])), "complex named link text");
+       ok(links_to("foo/bar", linkify("foo/item", "foo", "link to [[bar]] ok", ["foo", "foo/item", "foo/bar"])), "inline page link");
+       ok(links_to("bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo", "foo/item", "foo/bar"])), "same except not inline");
+       ok(links_to("bar#baz", linkify("foo", "foo", "link to [[bar#baz]] ok", ["foo", "bar"])), "anchor link");
+}
+
+$prefix_directives=0;
+ok(not_links_to("some_page", linkify("foo", "foo", "link to [[some page]] ok", ["foo", "bar", "some_page"])),
+       "link with whitespace, without prefix_directives");
+ok(not_links_to("bar", linkify("foo", "foo", "link to [[some page|bar]] ok", ["foo", "bar"])),
+       "named link, with whitespace, without prefix_directives");
 
-ok(links_to("bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo", "bar"])), "ok link");
-ok(links_to("bar_baz", linkify("foo", "foo", "link to [[bar_baz]] ok", ["foo", "bar_baz"])), "ok link");
-ok(not_links_to("bar", linkify("foo", "foo", "link to \\[[bar]] ok", ["foo", "bar"])), "escaped link");
-ok(links_to("page=bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo"])), "broken link");
-ok(links_to("bar", linkify("foo", "foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
-ok(links_to("baz", linkify("foo", "foo", "link to [[baz]] and [[bar]] ok", ["foo", "baz", "bar"])), "dual links");
-ok(links_to("bar", linkify("foo", "foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link");
-ok(links_text("some page", linkify("foo", "foo", "link to [[some_page|bar]] ok", ["foo", "bar"])), "named link text");
-ok(not_links_to("bar", linkify("foo", "foo", "link to [[some page|bar]] ok", ["foo", "bar"])), "named link, with whitespace");
-ok(not_links_to("bar", linkify("foo", "foo", "link to [[some page|bar]] ok", ["foo", "bar"])), "named link text, with whitespace");
-ok(links_text("0", linkify("foo", "foo", "link to [[0|bar]] ok", ["foo", "bar"])), "named link to 0");
-ok(links_text("Some long, & complex page name.", linkify("foo", "foo", "link to [[Some_long,_&_complex_page_name.|bar]] ok, and this is not a link]] here", ["foo", "bar"])), "complex named link text");
-ok(links_to("foo/bar", linkify("foo/item", "foo", "link to [[bar]] ok", ["foo", "foo/item", "foo/bar"])), "inline page link");
-ok(links_to("bar", linkify("foo", "foo", "link to [[bar]] ok", ["foo", "foo/item", "foo/bar"])), "same except not inline");
-ok(links_to("bar#baz", linkify("foo", "foo", "link to [[bar#baz]] ok", ["foo", "bar"])), "anchor link");
+$prefix_directives=1;
+ok(links_to("some_page", linkify("foo", "foo", "link to [[some page]] ok", ["foo", "bar", "some_page"])),
+       "link with whitespace");
+ok(links_to("bar", linkify("foo", "foo", "link to [[some page|bar]] ok", ["foo", "bar"])),
+       "named link, with whitespace");
+ok(links_text("some page", linkify("foo", "foo", "link to [[some page|bar]] ok", ["foo", "bar"])),
+       "named link text, with whitespace");
index 9b029281fd263cb8316a0a06f70c1f1004f7c322..7699f56baaa77737115fabe033e73e06383966e8 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
-use Test::More tests => 17;
+use Test::More tests => 19;
 
 BEGIN { use_ok("IkiWiki"); }
 
@@ -23,6 +23,8 @@ $IkiWiki::hooks{preprocess}{foo}{call}=sub {
 
 is(IkiWiki::preprocess("foo", "foo", "[[foo]]", 0, 0), "[[foo]]", "not wikilink");
 is(IkiWiki::preprocess("foo", "foo", "[[foo ]]", 0, 0), "foo()", "simple");
+is(IkiWiki::preprocess("foo", "foo", "[[!foo ]]", 0, 0), "foo()", "prefixed");
+is(IkiWiki::preprocess("foo", "foo", "[[!foo]]", 0, 0), "[[!foo]]", "prefixed, no space");
 is(IkiWiki::preprocess("foo", "foo", "[[foo a=1]]", 0, 0), "foo(a => 1)");
 is(IkiWiki::preprocess("foo", "foo", "[[foo a=\"1 2 3 4\"]]", 0, 0), "foo(a => 1 2 3 4)");
 is(IkiWiki::preprocess("foo", "foo", "[[foo ]] then [[foo a=2]]", 0, 0),
index 739a5762d24ef1c5eec37df577cace474f4f6103..8b893673323114e98a749b0b21a4a5b1afdd7da0 100644 (file)
@@ -1,15 +1,15 @@
 <TMPL_VAR CONTENT>
 <TMPL_LOOP NAME="TAGS">
-[[tag <TMPL_VAR TAG>]]
+[[!tag <TMPL_VAR TAG>]]
 </TMPL_LOOP>
 <TMPL_IF NAME="TITLE">
-[[meta title="<TMPL_VAR NAME="TITLE" ESCAPE=HTML>"]]
+[[!meta title="<TMPL_VAR NAME="TITLE" ESCAPE=HTML>"]]
 </TMPL_IF>
 <TMPL_IF NAME="PERMALINK">
-[[meta permalink="<TMPL_VAR NAME="PERMALINK" ESCAPE=HTML>"]]
+[[!meta permalink="<TMPL_VAR NAME="PERMALINK" ESCAPE=HTML>"]]
 </TMPL_IF>
 <TMPL_IF NAME="COPYRIGHT">
-[[meta copyright="<TMPL_VAR NAME="COPYRIGHT" ESCAPE=HTML>"]]
+[[!meta copyright="<TMPL_VAR NAME="COPYRIGHT" ESCAPE=HTML>"]]
 </TMPL_IF>
-[[meta author="<TMPL_VAR NAME="NAME" ESCAPE=HTML>"]]
-[[meta authorurl="<TMPL_VAR NAME="URL" ESCAPE=HTML>"]]
+[[!meta author="<TMPL_VAR NAME="NAME" ESCAPE=HTML>"]]
+[[!meta authorurl="<TMPL_VAR NAME="URL" ESCAPE=HTML>"]]
index 803e8130a39199cd5872c65ad57771e58282a210..e476a7439b65c20e0ee37e6fb9ddccf3ee2f5b0c 100644 (file)
@@ -1,8 +1,8 @@
-[[meta author="""<TMPL_VAR AUTHOR>"""]]
+[[!meta author="""<TMPL_VAR AUTHOR>"""]]
 <TMPL_IF AUTHORURL>
-[[meta authorurl="""<TMPL_VAR AUTHORURL>"""]]
+[[!meta authorurl="""<TMPL_VAR AUTHORURL>"""]]
 </TMPL_IF>
-[[meta title="""change to<TMPL_LOOP NAME="PAGES"> <TMPL_VAR PAGE></TMPL_LOOP> on <TMPL_VAR WIKINAME>"""]]
+[[!meta title="""change to<TMPL_LOOP NAME="PAGES"> <TMPL_VAR PAGE></TMPL_LOOP> on <TMPL_VAR WIKINAME>"""]]
 <div class="metadata">
 <span class="desc"><br />Changed pages:</span>
 <span class="pagelinks">
index b4f171c978b25e8c94c81c28cf97f6f4d4f3f986..c0c3ef5f261758c90f6f0eba39537cda9e61e3d4 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/blog delay=10]]
+[[!meta redir=ikiwiki/blog delay=10]]
 
 This page has moved to [[ikiwiki/blog|ikiwiki/blog]]. Please update your
 links, as this redirection page will be removed in a future ikiwiki
index ca8e919084eefda26234f4564477625a8c923f0f..437a2466d025adcc868a2d91fc2bbc7feb909792 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/formatting delay=10]]
+[[!meta redir=ikiwiki/formatting delay=10]]
 
 This page has moved to [[ikiwiki/formatting|ikiwiki/formatting]]. Please
 update your links, as this redirection page will be removed in a future
index 96eba217cb96fa0621136060a3bfe48305f9cb94..03ce257451e16889999c104c135bd21bb2c67319 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/markdown delay=10]]
+[[!meta redir=ikiwiki/markdown delay=10]]
 
 This page has moved to [[ikiwiki/markdown|ikiwiki/markdown]]. Please update
 your links, as this redirection page will be removed in a future ikiwiki
index 26496fe1a3dfe8160298288974df1413f881f553..7fe832e11bcad574c8ff9cb22372953dedce6b0e 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/openid delay=10]]
+[[!meta redir=ikiwiki/openid delay=10]]
 
 This page has moved to [[ikiwiki/openid|ikiwiki/openid]]. Please update your
 links, as this redirection page will be removed in a future ikiwiki
index f42f41742b8f6f5dcc6593fc65548de335e93a2a..4a82eff841ac4528def83c57ebebd4b8de32f8df 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/pagespec delay=10]]
+[[!meta redir=ikiwiki/pagespec delay=10]]
 
 This page has moved to [[ikiwiki/pagespec|ikiwiki/pagespec]]. Please update
 your links, as this redirection page will be removed in a future ikiwiki
index b0876ffe55431d36f0e9008b97b1d9e8c0b47fe7..7c5d0c3e06c789dc475b3dc2bdee84e0183c5ca2 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/preprocessordirective delay=10]]
+[[!meta redir=ikiwiki/preprocessordirective delay=10]]
 
 This page has moved to
 [[ikiwiki/preprocessordirective|ikiwiki/preprocessordirective]]. Please
index ac24a6fedd2cf4c0efda7725ad3489e4e585bfec..2de27a1ad6460f2fab2f8661198ade3dcc1e2f80 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/subpage delay=10]]
+[[!meta redir=ikiwiki/subpage delay=10]]
 
 This page has moved to [[ikiwiki/subpage|ikiwiki/subpage]]. Please update your
 links, as this redirection page will be removed in a future ikiwiki
index c0c22aeaede36d6a82d086dc3d3cc23a54c45fe7..ce5920a571aa6aa75bb22db4408f032dca1e775c 100644 (file)
@@ -1,4 +1,4 @@
-[[meta redir=ikiwiki/wikilink delay=10]]
+[[!meta redir=ikiwiki/wikilink delay=10]]
 
 This page has moved to [[ikiwiki/wikilink|ikiwiki/wikilink]]. Please update
 your links, as this redirection page will be removed in a future ikiwiki