Either template or shortcut should support some form of very simple text parsing or regex application, to make it possible to write shortcuts like these:

[[!mmlist  listname@lists.example.org]] -> <listname@example.org> ([mailman page] (http://lists.example.org/mailman/listinfo/listname)
[[!debcl  packagename]] -> [packagename changelog](http://packages.debian.org/changelogs/pool/main/p/packagename/current/changelog)

For shortcut definitions, a match parameter could supply a regex, and then the url and desc parameters could make use of the named or numbered groups from the match.


I'm not comfortable with exposing regexps to web editing. At the very least it's trivial to construct regexps that take indefinitely long to match certain strings, which could be used to DOS ikiwiki. At worst, perl code can be embedded in regexps in a variety of ways that are painful to filter out, and perl's regexp engine could also potentially have bugs that could be exploited by user-supplied regexps.

It seems that a better place to put this kind of text munging is in special-purpose plugins. It should be very simple to write plugins for the above two examples, that look identical to the user as what you described.


Fair enough. I only proposed regexes for the purposes of generality.

That said, some simple text substitution mechanisms might handle many of these cases without the need for a specialized plugin beyond shortcut. For instance, substring extraction would suffice for the debcl shortcut, and something like a split function would work for the mmlist shortcut.