The source code can be found on github.
I wrote Worgle as a follow-up to my initial experiences with literate programming using org-mode While org and org-mode have the potential to be great modern-day tools for Knuthian-style literate programming, I found their current implementations to be inferior to CWEB Tangling org-code with emacs is painfully slow, to the point of being unusable. Tangled C/C++ code does not export line declaration macros, making debugging a terribly impractical experience.
Worgle is written in itself, and is bootstrapped using a minimalist ANSI C org tangler called Orgle.
In addition to tangling code, some initially steps have been taken to produce an HTML exporter, a process classically referred to as weaving code. This weaver, called Sorg, is also written in ANSI C using Worgle. While incomplete, it is quite usable. Examples of Sorg being used to generate HTML have been posted for Sorg and Worgle. In order to match the CSS of this website, these pages with sorg via a shell script.
TODO A 5 minute introduction
A fly-by tutorial for how to use Worgle.
Will get to this soon!
Worgle is itself a literate program written in Org, and can be tangled using itself. To do this, a bootstrapping process is derived.
First, a very primitive org tangler witten in ANSI C called orgle is compiled. This is written as a C file and does not need to be tangled.
Orgle is then used to create worglite, a limited version of
worgle that is somewhere in between orgle and worgle. This
is done by tangling
worgle.org with orgle, and then
compiling it with
-DWORGLITE. The main
written in such a way that it can be parsed and compiled
by itself with the original orgle program.
Finally, worglite is used to retangle worgle into the full version, where it can then be compiled into worgle. From there, all extra tools/components can use the full Worgle tangler.
TODO Org Subset
To keep the implementation lightweight, worgle uses a small subset of Org code.
Will write more on this later.