MakeDoc
Encyclopedia
MakeDoc is a lightweight markup language
created in 2000 by Carl Sassenrath
for creating documentation and web pages using simple text notations. The language is used extensively in the REBOL
community for documentation, websites, and wikis.
, PDF, or ordinary text.
An additional goal of MakeDoc was that the text input format itself should be readable -- uncluttered with markup notations commonly found in the SGML-based markup languages such as HTML
and XML
. This was done to enable distribution of documentation for software packages, where often such documents are being viewed (or even created) in text-only command shells.
and Emacs
.
Command Lines
Bullets, numeric lists, definitions, and other special document formats are notated by beginning a line with a special character.
For example:
Other command lines begin with an equal (=) followed by the command itself.
For example, to include an image:
Lightweight markup language
A lightweight markup language is a markup language with a simple syntax, designed to be easy for a human to enter with a simple text editor, and easy to read in its raw form....
created in 2000 by Carl Sassenrath
Carl Sassenrath
Carl Sassenrath is an architect of operating systems and computer languages. He brought multitasking to personal computers in 1985 with the creation of the Amiga Computer operating system kernel, and he is currently the designer of the REBOL computer language as well as the CTO of REBOL...
for creating documentation and web pages using simple text notations. The language is used extensively in the REBOL
REBOL
REBOL is a cross-platform data exchange language and a multi-paradigm dynamic programming language originally designed by Carl Sassenrath for network communications and distributed computing. The language and its official implementation, which is a proprietary freely redistributable software are...
community for documentation, websites, and wikis.
Overview
MakeDoc was originally designed to allow authors to create formatted documentation without the need for word processing software. Any ordinary text editor, including web input forms can be used for input, and the output can be HTMLHTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
, PDF, or ordinary text.
An additional goal of MakeDoc was that the text input format itself should be readable -- uncluttered with markup notations commonly found in the SGML-based markup languages such as HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
and XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
. This was done to enable distribution of documentation for software packages, where often such documents are being viewed (or even created) in text-only command shells.
Basic Format
The format of MakeDoc is intended for input and editing from any text editor, including those often used in shell-environments, such as viVi
vi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.The original code for vi...
and Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
.
Titles, headings, and paragraphs
Title of document
Optional boiler plate
Such as author name, date, etc.
Primary headings
This is an example paragraph. All this text will remain in
the same paragraph until a blank line is reached.
This is a separate paragraph.
--- Subheading
Text continues from here...
Command Lines
Bullets, numeric lists, definitions, and other special document formats are notated by beginning a line with a special character.
For example:
- Bullet item
- Another
- Numbered item
- Another numbered item
Other command lines begin with an equal (=) followed by the command itself.
For example, to include an image:
Special Commands
The language also allows the evaluation (execution) of code sections in order to produce the results for example or output images. This make it possible to accurately generate code sections that contain accurate results.
For example, if the command:
=view
follows a code example, the processor will automatically generate an image of whatever the code displayed in its window.
Processing the Language
The MakeDoc language is processed using a free script under an open BSD license. Its source code is written in the REBOL language and is only about 17KB.
The processor is divided into a text-input scanner and a output generator. The scanner output is in REBOL block format and can be input in to one of several output formatters.
The output generator for HTML is included in the standard MakeDoc script. Output generators for PDF are separate.
See also
- Lightweight markup languageLightweight markup languageA lightweight markup language is a markup language with a simple syntax, designed to be easy for a human to enter with a simple text editor, and easy to read in its raw form....
- MakeDoc Pro (free extensions to MakeDoc)