MakeDoc

Last updated

MakeDoc is a lightweight markup language created in 2000 by Carl Sassenrath for creating documentation and web pages using simple text notations. [1] The language is used extensively in the REBOL community for documentation, websites, and wikis.

A lightweight markup language (LML), also termed a simple or humane markup language, is a markup language with simple, unobtrusive syntax. It is designed to be easy to write using any generic text editor and easy to read in its raw form. Lightweight markup languages are used in applications where it may be necessary to read the raw document as well as the final rendered output.

Carl Sassenrath computer scientist

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 the designer of the REBOL computer language, REBOL/IOS collaboration environment, the Safeworlds AltME private messaging system, and other products. Carl is currently a Principal Engineer at Roku, Inc.

Contents

Overview

MakeDoc was originally designed to allow authors to create formatted documentation without the need for word processing software. [2] Any ordinary text editor, including web input forms can be used for input, and the output can be HTML, PDF, or ordinary text. [2]

HTML Hypertext Markup Language

Hypertext Markup Language (HTML) is the standard markup language for creating web pages and web applications. With Cascading Style Sheets (CSS) and JavaScript, it forms a triad of cornerstone technologies for the World Wide Web.

The Portable Document Format (PDF) is a file format developed by Adobe in the 1990s to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. Based on the PostScript language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, vector graphics, raster images and other information needed to display it. PDF was standardized as an open format, ISO 32000, in 2008, and no longer requires any royalties for its implementation.

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.

XML Markup language developed by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The W3C's XML 1.0 Specification and several other related specifications—all of them free open standards—define XML.

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 vi and Emacs.

vi Keyboard-oriented text editor

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.

Emacs Family of text editors

Emacsor EMACS is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, continues actively as of 2019.

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:

=image nyc.jpg 

Many other commands are also provided. See the reference links below.

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. [3] Its source code is written in the REBOL language and is only about 17KB.

The processor is divided into a text-input scanner and an output generator. The scanner output is in REBOL block format and can be input into one of several output formatters.

The output generator for HTML is included in the standard MakeDoc script. Output generators for PDF are separate.

Related Research Articles

LaTeX is a document preparation system. When writing, the writer uses plain text as opposed to the formatted text found in WYSIWYG word processors like Microsoft Word, LibreOffice Writer and Apple Pages. The writer uses markup tagging conventions to define the general structure of a document, to stylise text throughout a document, and to add citations and cross-references. A TeX distribution such as TeX Live or MikTeX is used to produce an output file suitable for printing or digital distribution. Within the typesetting system, its name is stylised as LaTeX.

Markup language modern system for annotating a document

In computer text processing, a markup language is a system for annotating a document in a way that is syntactically distinguishable from the text. The idea and terminology evolved from the "marking up" of paper manuscripts, i.e., the revision instructions by editors, traditionally written with a red or blue pencil on authors' manuscripts. In digital media this "blue pencil instruction text" was replaced by tags, which indicate what the parts of the document are, rather than details of how they might be shown on some display. This lets authors avoid formatting every instance of the same kind of thing redundantly. It also avoids the specification of fonts and dimensions, which may not apply to many users.

Text editor Software to modify text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software, following the naming of Microsoft Notepad. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software but it can be used for any other sort of documentation.

In typography, a bullet is a typographical symbol or glyph used to introduce items in a list. For example:

In computing, the diff utility is a data comparison tool that calculates and displays the differences between two files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but it is like Levenshtein distance in that it tries to determine the smallest set of deletions and insertions to create one file from the other. The diff command displays the changes made in a standard format, such that both humans and machines can understand the changes and apply them: given one file and the changes, the other file can be created.

Doxygen is a documentation generator, a tool for writing software reference documentation. The documentation is written within code, and is thus relatively easy to keep up to date. Doxygen can cross reference documentation and code, so that the reader of a document can easily refer to the actual code.

reStructuredText is a file format for textual data used primarily in the Python programming language community for technical documentation.

Plain Old Documentation (pod) is a lightweight markup language used to document the Perl programming language.

Javadoc is a documentation generator created by Sun Microsystems for the Java language for generating API documentation in HTML format from Java source code. The HTML format is used for adding the convenience of being able to hyperlink related documents together.

The following tables compare general and technical information for a number of documentation generators. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

PHPDoc is an adaptation of Javadoc for the PHP programming language. It is still an informal standard for commenting PHP code, but it is in the process of being formalized. It allows external document generators like phpDocumentor, which is the de facto standard implementation, to generate documentation of APIs and helps some IDEs such as Zend Studio, NetBeans, JetBrains PhpStorm, ActiveState Komodo Edit and IDE, PHPEdit and Aptana Studio to interpret variable types and other ambiguities in the loosely typed language and to provide improved code completion, type hinting and debugging.

Textile is a lightweight markup language that uses a text formatting syntax to convert plain text into structured HTML markup. Textile is used for writing articles, forum posts, readme documentation, and any other type of written content published online.

Markdown is a lightweight markup language with plain text formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

Sandcastle is a documentation generator from Microsoft. It automatically produces MSDN-style code documentation out of reflection information of .NET assemblies and XML documentation comments found in the source code of these assemblies. It can also be used to produce user documentation from Microsoft Assistance Markup Language (MAML) with the same look and feel as reference documentation.

AsciiDoc is a human-readable document format, semantically equivalent to DocBook XML, but using plain-text mark-up conventions. AsciiDoc documents can be created using any text editor and read “as-is”, or rendered to HTML or any other format supported by a DocBook tool-chain, i.e. PDF, TeX, Unix manpages, e-books, slide presentations, etc.

JSDoc is a markup language used to annotate JavaScript source code files. Using comments containing JSDoc, programmers can add documentation describing the application programming interface of the code they're creating. This is then processed, by various tools, to produce documentation in accessible formats like HTML and Rich Text Format. JSDoc is free software under the Apache License 2.0.

References

  1. REBOL MakeDoc Page
  2. 1 2 Origins of MakeDoc
  3. MakeDoc source (BSD open source)

See also