My main rationale for using XML for this is that
1. It was designed for it. (extensible markup!) 2. It has built-in considerations for things that could otherwise cause a more naive approach to have problems (for example, CDATA tag) 3. Other interesting features for this specific use case.
I don't love it, but it works OK. I might end up making a little less-verbose DSL which makes writing it a bit nicer, but actually converts to XML on a pass-through.
Anyway, shoot me an email if you want to compare notes on the topic. It seems like so many people are happy with markdown as an authoring format that its rare to meet people who see the problems.
the only thing I know about Tcl is that git uses the tcl language to generate the git gui and gitk programs.
Outside of Tk, Tcl pops up in a couple of odd places, usually as part of some testing system (expect(1) and SQLite use it) or build system, though use has fallen off quite a bit since the 1990s.
Placing somewhere between a lisp and shell, it's incredibly effective as a language for gluing things together and creating DSLs, and is fairly easy to embed in a manner similar to Lua.
Definitely not a perfect language, but one that I find extremely comfortable to work in and iterate quickly for certain projects.
Antirez's blog has a pretty concise explanation of Tcl's features and what makes it special:
Like you mention, it's used as glue in lots of places, for instance in my Electrical Engineering classes to glue together VHDL/Verilog and program FGPAs.
if you haven't found it already, the tclers wiki is a font of wisdom about the language and so many other cool topics. https://wiki.tcl-lang.org/
Recently rewrote my old site after feeling limited by markdown and decided to start from a clean slate and write a blog engine in TCL.
Though I don't have a post up yet that uses any new features, it supports LaTeX without requiring client side JS, as well as collapsible elements.
It's also easy to add new types of content (such as a graphviz element), since an article is just a TCL script, for example:
https://github.com/wooosh/blog/blob/master/pages/articles/fr...
I intend to replace utteranc.es for comments with a self-hosted solution, as I'm not super happy with relying on an external resource without subresource-integrity, especially for something that requires login (making it a great target for phishing).