Literate A Flexible Literate Programming System

View the literate source code for Literate!

View the literate source code for this website!

See the Github page.

What is Literate Programming?

Literate programming is a style of programming invented by Donald Knuth, where the main idea is that a program's source code is made primarily to be read and understood by other people, and secondarily to be executed by the computer.

This frees the programmer from the structure of a program imposed by the computer and means that the programmer can develop programs in the order of the flow of their thoughts.

A Literate program consists of explanation of the code in a natural language such as English, interspersed with snippets of code to be executed. This means that Literate programs are very easy to understand and share, as all the code is well explained.

Literate, a tool for literate programming, will allow you to take a literate source file ( *.lit ) and either tangle the source file which will create a file with executable code, or weave the source file, which will generate an HTML document to be read as formatted documentation.

Features of this tool

Supports any language including syntax highlighting and pretty printing in HTML

Generates HTML as output

Generates readable code and commented in the target language

Reports syntax errors back from the compiler to the right line in the literate source

Runs fast -- wc.lit compiled for me in 7ms for both code and html output

Markdown based -- very easy to read and write Literate source.

Automatically generates hyperlinks between code sections

Formatted output similar to CWEB

Creates an index with identifiers used (you need to have exuberant or universal ctags installed to use this feature)

Supports TeX equations with $ notation

notation Compatible with Vim (literate.vim)

Highly customizable

Literate works with any programming language, generates HTML as output ( which can be converted to pdf ), and generates readable code. The code that is generated is indented properly and is automatically commented using the titles you have written for the code blocks.Here is the full list of features:You can get started by taking a look at the manual . In addition, this website is made with Literate, and the source can be read here