X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/0de2f1fb8fda945481281957ea485af92b331363..60bacd9db2d8ebc8a8778f7fcb93806a36085b05:/doc/todo/simple_text_parsing_or_regex_in_template_or_shortcut.mdwn diff --git a/doc/todo/simple_text_parsing_or_regex_in_template_or_shortcut.mdwn b/doc/todo/simple_text_parsing_or_regex_in_template_or_shortcut.mdwn index a8702b375..0f8badae8 100644 --- a/doc/todo/simple_text_parsing_or_regex_in_template_or_shortcut.mdwn +++ b/doc/todo/simple_text_parsing_or_regex_in_template_or_shortcut.mdwn @@ -1 +1,23 @@ -Either [[plugins/template]] or [[plugins/shortcut]] should support some form of very simple text parsing or regex application, to make it possible to write something like `\[[mmlist listname@lists.example.org]]` and have this become ([mailman page](http://lists.example.org/mailman/listinfo/listname)). \ No newline at end of file +Either [[plugins/template]] or [[plugins/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]] -> ([mailman page] (http://lists.example.org/mailman/listinfo/listname) + [[debchangelog 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. + +--[[JoshTriplett]] + +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. + +--[[Joey]]