XMLLiterate is framework for literate programming using XML. XMLLiterate uses the STL and patterns extensively and runs on all platforms supported by Boost.
Most of the current programming systems allow you to use an IDE to generate all of the different parts of your code, and then you generate documentation, re-factor the code etc.
XMLLiterate works differently. In your project directory you have a folder called "literate" which contains all the files necessary to represent your program at a very high level. You are basically working directly on the "story" (or Web) of your program in XML.
When you want to study documentation of your work so far, you "Weave" your story into some type of documentation. We create DocBook XML files, and then from that we also generate HTML files. But you could get all the DocBook stuff and easily make PDF's etc.
When you have some type of design of your program, you can "Tangle" your story into actual program code, build files, data files or whatever.
The story of your program is built using an XML file format that we call "schema" which is simply a bunch of definitions for code in XML format.
When you have a good build, you can install the tangle program and the weave script as "tangle" and "weave" by running simple scripts that make aliases in the correct place on your system. You will be asked for your password, so type it.
Although tangle is a real program that we provide (since we have our own scripting tool), weave actually uses XSLT so you won't find a "weave" program. Check sbin/weave.sh to see how we weave.
The last step is to setup the location of your root xmlliterate folder so that you can place other projects in different folders. Edit "files.xml" in the root and change "[change to your cppliterate path]" entry to the full path of your cppliterate folder. On my machine, the entry looks like:
< xmlliterateroot >/usr/src/cppliterate< xmlliterateroot >
What's New in This Release:
· A huge speed up of tangle by doing delayed loading of files.
· Only needed xi:includes are actually imported.
· This release generates Java code correctly, so you can use this for Java development.
· There are many other bugfixes and changes.
· The project now uses Subversion instead of CVS.