mod_virgule 1.1 review
Downloadmod_virgule is the Apache C module that powers the Advogato web site. XML Virgule Language is an XML data-driven scripting languag
|
|
mod_virgule is the Apache C module that powers the Advogato web site.
XML Virgule Language is an XML data-driven scripting language. Conceptually similar to Lisp and Scheme, at its simplest it is just an HTML parser. Anything that does not have a plug-in module to activate on a tagname in the input is just passed
straight to the output.
xvl, a command-line implementation of the script language, has dynamically loadable modules in c-code that are activated when a tagname in the input is reached. This effectively turns data into code, with the tag's properties and child nodes as input.
Some of the tags are very simple, and are implemented in tens of lines of c code. Others activate file or socket I/O operations that can be nested recursively, providing
the means to write XML data-driven client and server applications [I still can't get used to not having to recompile].
This documentation is therefore written as a guide to this fledgling scripting language, and also as an aid to its designer to understand what is really going on.
lsect(intro-example)
(Example Test Tag)
The module can decide what to do with its input. For example, the simple code(< test:tag/ >) in HOWTO-add-new-tags will output a Header "I am a test tag!" at any point in the data stream where code(< test:tag/ >) is placed. If the tag has a property testprop, for example code(< test:tag testprop="brown cows are fun!"/ >) then
it will place the string of the testprop property in the output as well. Additionally, if there is em(not) a property named stop, with any string, then any child nodes of code(< test:tag/ >) will also be processed.
mod_virgule 1.1 keywords