News for ikiwiki 2.40: 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.40 and newer, regardless of the value of prefix\_directives. This allows the underlay to work with all ikiwikis. ikiwiki 2.40 released with [[toggle text="these changes"]] [[toggleable text=""" * [ 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. * [ Joey Hess ] * Danish translation update from Jonas Smedegaard. Closes: #[465152](http://bugs.debian.org/465152) * Generate XML RPC messages with the encoding set to utf-8 instead of XML::RPC's default of us-ascii. Allows interoperation with python's xmlrpc library, which threw invalid encoding exceptions and caused the rst plugin to hang. * Add the linkify and scan hooks. These hooks can be used to implement custom, first-class types of wikilinks. * Move standard wikilink implementation to a new link plugin, which will of course be enabled by default. * camelcase: Convert to use new linkify and scan hooks rather than the old hack. * Setting NOTAINT=1 had no effect when building ikiwiki itself, fix this. * Depend on HTML::Scrubber, since the scrubber is enabled by default and dies if its can't be loaded. * The search plugin needs to override <base> to point to the directory containing ikiwiki.cgi, but this should not change the urls to the style sheets etc. Add a new forcebareurl parameter to misctemplate to allow it to do that. * Preview limits the page dropdown to what's selected previously (as preserving the full list across preview would be tricky). Userdirs were still being offered as an option there, remove them. * Fix a bug where user A created a page concurrently with user B, and when B previewed it would redirect B to A's new page, losing B's work. Instead, don't redirect and let conflict handling resolve it. * monotone: Add code to default mergerc file to run \_MTN/ikiwiki-netsync-hook when a commit is merged in from the net. * tla: Remove call to escapeHTML when constructing recentchanges message; the html is escaped at a different level. Closes: #[466495](http://bugs.debian.org/466495) * bzr, mercurial: Remove unused import of escapeHTML. * Fix another preview will\_render bug. This one involved inline, which forced a scan of the page to make available metadata that appeared after the inline directive. Problem is that scan made it forget about any other files rendered due to the page. The scan also turns out to be unnecessary now, since meta persistently stores state and it's always available. So it was just removed. * Disable taint checking for all builds as people keep complaining about it, and since all versions of perl seem to be hopelessly broken. * Fix links generated by preprocessor directives when previewing. * inline: When forcing urls absolute for rss feeds, skip mailto and other such urls. * ikiwiki-makerepo: Don't fail if the third argument ends in a slash. * Allow colons in URLs after the first slash. (Adeodato Simó)"""]]