Zoem is an interpretive macro language with substantial facilities for
programming. It supports a two-stage process, consisting of macro
interpretation (featuring inside-out evaluation if needed), followed
by a simple and powerful application of stream character filtering.

Its syntax is remindful of \it{TeX}'s, it has dictionary stacks like
\it{PostScript}, and various resemblances to \it{m4} and \it{info}.
It has interfaces to modules making life easy \- counters, references,
arithmetic, multi-dimensional data storage, input/output operations,
regular expressions, and system commands.

Zoem is used for creating extendible dummy mark-up languages and
mapping those to real mark-up languages.  The dummy languages have all
the power of the zoem primitives available to them.  A prime
application is the creation of little mark-up languages that allow
easy preparation of documents for use with different devices.
Examples are the PUD \bf{faq} language and the PUD \bf{man} language,
both of which can be used to generate troff output and html
output. PUD stands for Portable Unix Documentation and is shipped with
Aephea.  Aephea itself is an abstraction layer for creating concise
and maintainable HTML documents.

Homepage:
https://www.micans.org/zoem/
