1 - XSLT
Since the syntax is XML (like the extensions tags) and XPath
(vaguely
similar to template syntax, although it's XML that calls XPath, the opposite of what we have) It would be reasonably consistent with current syntax. It also should also already be fairly well locked down, and the interface seems fairly clear - present template parameters as stylesheet parameters, and other magic words as an input document. We may just need a few simplifications to make it easier to use.
XSLT itself is a way too much locked down - even simple things like substrings manipulation and loops aren't so easy to perform. Well, maybe I am too stupid for XSLT but from my experience bringing tag syntax in programming language make the code poorly readable and bloated. I've used XSLT for just one of my projects.
2- lisp/scheme
Should be easy to write a parser for if needed, since the grammer is
so
simple, and it should be relatively simple to lock down or extend as needed.
Deeply nested braces of lisp remind me of current MediaWiki parser.
Of course, those are both a bit more esoteric than your
recommendations.
Perl is nice for getting useful results from short code, if we're not bothered by one parser with no grammer specification calling another one. Tcl may be a reasonable compromise; a less esoteric, imperative language which is often used as an extension language.
Lua was highly valued here at computer lab, also Ocaml (not sure of proper spelling). Dmitriy