Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
a literate programming "weaver" which can run as CGI to produce folding HTML-formatted documentation and runs with "noweb" tools of Norman Ramsey
JavaScript Perl
branch: master

README

WHAT IS MOLLY?

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.


CURRENT VERSION: 0.69

CURRENT VERSION FEATURES:

    * 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)


FILES IN THE PROJECT:

"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
operation.

"MOLLY.pl" 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
Something went wrong with that request. Please try again.