I ported a WML based university department website to a custom python based stack in 2012, after having worked with the WML pages for 4 years. It was quite a relief, even though I hadn't had clear plans how to make the new system.
If I had to describe WML in a word, I'd say it's cruft. If I remember correctly it is up to 9 languages that you can use at once. (Lots of escaping!) With the exception of embedded Perl, which is about last in the parsing order, I don't remember any other of them to have even remotely usable datatypes. They have at most an ad-hoc macro system where HTML tags serve as function calls.
This seems remarkably complex static site generator. I mean 100kloc of C code in addition to some 12kloc of Perl seems quite a lot to me? Although, poking around, it seems like significant amount of the code might be vendored code from various places.
What a nice classic Perl code. Actually the Perl ecosystem has a number of classic mature libraries for making HTML easy, such as the TT (http://www.template-toolkit.org/) or the old CGI module (http://perldoc.perl.org/CGI.html). From my feeling the community moved on and I know nobody an more who writes modern web applications in Perl, unfortunately.
Text::Template [0] was a favorite of mine, no new language to learn, just embedded Perl. Config::General [1] was another classic, super-flexible markup language for data.
Cpanel uses perl, but their code and QA is universally shit, almost as bad as how they respond to a 101 xss vunerability. not a good advertisement for perl.
I don't know, but in my system I have, let's see: 1) read sources, 2) select the subset I want to publish, 3-4) resolve references (two steps), 5-6) assign XHTML IDs to references (two steps), 7) transform to XHTML, 8) update files. I don't see how I can make it smaller, that is, maybe I can cram everything into a single pass, but this will be much more complex than small steps in the pipeline.
And this is the minimum; it's pretty easy to add more passes for various extras.
These 9 passes have only text interfaces. And that means the 9 languages have crude syntax. That's not comparable to your ordinary language's compiler.
If I had to describe WML in a word, I'd say it's cruft. If I remember correctly it is up to 9 languages that you can use at once. (Lots of escaping!) With the exception of embedded Perl, which is about last in the parsing order, I don't remember any other of them to have even remotely usable datatypes. They have at most an ad-hoc macro system where HTML tags serve as function calls.