Skip to content


Subversion checkout URL

You can clone with
Download ZIP
tree: f79f13f790
Fetching contributors…

Cannot retrieve contributors at this time

90 lines (67 sloc) 4.12 kB
Molly, a MO-dule for LI-terate programming is a tool for enhanced Literate
Programing which creates autogenerated rich "folding HTML" file out of plain
raw literate source marked in the simplest and most popular "noweb" notation.
Molly can generate it on the fly as you work on the file , an extra step for
"weaving" docs or "tangling" code can be skipped in "Quick Mode" running
under CGI.
Folding HTML format, a marriage of HTML with the idea of outlining, noticeably
reduces load on a programmer's memory and allows a number of techniques of source
management not available before in Literate Programming, such as "virtual views"
on the code, and greatly improves scalability encouraging the programmer to keep
all files in one Literate Source Project file.
Currently Molly includes both a weaver and a tangler and is a standalone tool
in core perl. Generated folding HTML operation has been tested on Unix and
Windows for Firefox and Opera.
Autogeneration of rich html format with Molly can be applied to simple
pre-existing html files, such as documentation or even books, and used for
non-programming tasks.
MOLLY also can directly use MathML (a great LGPLed third-party javascript
library), i.e. mathematical expressions typed in a simple ASCII notation
with LaTeX constants will be turned into MathML output to get displayed by
Firefox, Opera (or other MathML-aware browsers) on the fly.
* creates folding documents on the fly from Literate Source files..
* ..based on rawHTML or dotHTML markup in document sections
/i.e. either creates new docs or displays some existing HTML in folding fmt/
* and generates dynamically TOC and code chunks index;
* ties collapsing/expandind of sections with TOC highlighting.
* Provides pass-through tangling with "noweb" and
* provides built-in fully-fledged tangler
* provides a (trivial) tie to ASCIIMathML.js library for inclusion of
mathematical expressions in your documents.
* can tangle and weave from command line like traditiona lit prog tools
* allows for the project to be split into several files or reassembled
at will: the tangler can process many LitSrc files on command line.
* has options to print all roots in your progect, autodetects cycles
(not checked fully)
* can print comments with line numbers referring to the Lit Source in
the tangled output
* further enhances traditional LitProg with "Virtual Views" with
LINKED_CHUNKs, which are like unix soft links to code chunks
from any place in your document.
* improved navigation in the folding document with FLINKs,
"folding hyperlinks"
* "forestry" submode to move section trees in the folding document
This script is a test of the concept (LitProg+folding+dynamic web formatting)
"MOLLY.html" is the extracted folding html documentation for the project.
Get and read it first. Make sure JavaScript is enabled in your browser.
"eeerotate.jpg" is an illustration for the file.
"MOLLY.weave" is a literate source file for the project, one main project file
which includes all documentation and code, tests, todo and bugs subsections etc.
"MOLLY.tangle" is a link to main lit. source file, "MOLLY.weave", for Quick Mode
"" is the pre-extracted perl module (i.e. weaver and tangler)
"ASCIIMathML.js" is an excellent LGPLed JavaScript library that enables
MathML inside a weaved HTML file. If you wish to use MathML in the project,
get it as well AND enable the switches in the header of your template file.
"new_project_template.weave" is a skeleton file to copy and use when you
start a new project. Rename it preserving the file extension (or set a new
file extension in config at the top of it -- see MOLLY documentation)
It can be solf-linked to another name, "new_project_template.tangle" if
you also wish to tangle through MOLLY for speed during development
Please, get MOLLY.html first and read it. Again, make sure JavaScript is
enabled in your browser.
The script is licensed under GPL version 3
Jump to Line
Something went wrong with that request. Please try again.