Lightweight markup language

From Wikipedia, the free encyclopedia

Jump to: navigation, search

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.

Lightweight markup languages are used in applications where people might be expected to read the document source as well as the rendered output. For instance, a person downloading a software library might prefer to read the documentation in a text editor rather than a browser.

Another application is for entry in web-based publishing, such as weblogs and wikis, where the input interface is a simple text box. The server software converts the input to a common document markup language like HTML or XHTML.

Contents

[edit] History

Lightweight markup languages were originally used on text-only displays which could not display characters in italics or bold, so informal methods to convey this information had to be developed. This formatting choice was naturally carried forth to plain-text email communications.

[edit] List of lightweight markup languages

The following is a partial list of lightweight markup languages.

[edit] Presentation oriented


[edit] Data serialization oriented


[edit] Comparison of lightweight markup language syntax

[edit] Text/font-face formatting

Comparing text formatting syntax
Language Bold Italic Monospace (teletype) Notes
BBCode [b]bold text[/b] [i]italic text[/i] [code]monospace text[/code] Formatting works across line breaks.
Creole **bold text** //italic text// {{{monospace text}}} Triple curly braces are for nowiki which is optionally monospace in Creole (the choice of the implementor). Future Creole additions may introduce double hash marks (##) for monospace.
Markdown **bold text**

or
__bold text__

*italic text*

or
_italic text_

Non-monospace text

    monospace text
    more monospace text
Inline `monospaced` text.

Markdown doesn't use bold and italic tags, but rather em (typically italic) and strong (typically bold) tags.

Monospace text is created by indenting that line 4 spaces or one tab character, or enclosing text in backticks: `monospaces`.

MediaWiki '''bold text''' ''italic text'' <code>monospace text</code>
PmWiki '''bold text''' ''italic text'' @@monospace text@@
POD B<bold text> I<italic text> C<monospace text> Indented text is also shown as monospaced code.
reStructuredText **bold text** *italic text* ``monospace text``
Textile *bold text*

or
**bold text**

_italic text_

or
__italic text__

@monospace text@ Textile uses em (typically italic) and strong (typically bold) tags

on single symbols (and code tag), and i and b tags on double symbols.

Texy! **bold text** *italic text*
or

//italic text//

`monospace text` Texy uses by default em (typically italic) and strong (typically bold) tags. It is possible to configure library to use another tags.
txt2tags **bold text** //italic text// ``monospace text``

[edit] Section headers

Comparing section header formatting
Language Format Notes
BBCode Does not support section headers
Creole = Level 1 Header

== Level 2 Header ==
=== Level 3 Header

Close equals signs are optional (ignored if present).
Markdown # Level 1 Header

## Level 2 Header
or
Level 1 Header
==============

Level 2 Header
--------------

You can optionally "close" the #-style headers with an equal number of #'s. The #-style headers support up to 6 levels. The = and - style headers support only the two shown.
MediaWiki == Level 2 Header ==

=== Level 3 Header ===

= is available for level 1 header, but its use is discouraged in Wikipedia (reserved for page title). More = are possible, up to 6.
PmWiki !! Level 2 Header

!!! Level 3 Header

 ! is available for level 1 header, but its use is discouraged in PmWiki (used for the page title). More ! are possible, up to 6.
POD =head1 Level 1 heading

=head2 Level 2 heading

reStructuredText Chapter 1 Title

===============

Section 1.1 Title
-----------------

Subsection 1.1.1 Title
~~~~~~~~~~~~~~~~~~~~~~

Section 1.2 Title
-----------------

Chapter 2 Title
===============

Any of the following characters can be used as the "underline": = - ` : ' " ~ ^ _ * + # < >. The same character must be used for the same indentation level and may not be used for a new indentation level.
Textile h1. Level 1 Header

h2. Level 2 Header

Up to 6 levels
Texy! ### Level 1 Header

## Level 2 Header
or
Level 1 Header
==============

Level 2 Header
--------------

You can optionally "close" the #-style headers with an equal number of #'s. The #-style headers support up to 6 levels. The underlined style headers support four levels (### *** === ----). Real levels are calculated dynamically.
txt2tags = Level 1 Header =

== Level 2 Header ==
=== Level 3 Header ===

Up to 6 levels. Using + characters instead of = characters creates numbered headers (the default being unnumbered).

[edit] Link Syntax

Comparing link syntax
Language Syntax Notes
BBCode [url]http://www.example.com[/url]

[url=http://www.example.com]Link text[/url]

Some BBCode implementations can auto-parse URLs as well and convert them to a elements.
Creole [[Internal Page]]

[[Internal Page|Display Text]]
[[http://www.example.com|Link text]] [[WikiCreole:Creole1.0|InterWiki Link]]

Free standing URL's are also detected.
Markdown [Link text](http://www.example.com "optional title attribute")

or
[Link text][id]
and elsewhere
[id]: http://www.example.com "optional title attribute"

Allows for an optional title attribute.
MediaWiki [[Internal page]]

[[Internal page|Displayed text]]
[http://www.example.com]
[http://www.example.com External link]

Wikitext can auto-parse URLs as well and convert them to a elements.
PmWiki [[Internal page]]

[[Internal page|Displayed text]]
[[http://www.pmwiki.org]]
[[http://www.Pmwiki.org|External link]]

Wikitext can auto-parse URLs without spaces in them as well and convert them to a elements.
POD L</Internal Link>

L<Perl::Module::Link>
L<http://example.com/external_link>

The core POD standard does not support external links with titles.
reStructuredText `Link text <http://www.example.com/>`_ Can also be done in a non-embedded format which may be seen as more readable.
Textile "Link text (optional title attribute)":http://www.example.com

or
"Link text":alias
and elsewhere
[alias (optional title attribute)]http://www.example.com

Allows for an optional title attribute.
Texy! "Link text .(optional title)[opt. class or ID]{opt. style}":http://www.example.com

or
"Link text":alias
and elsewhere
[alias]: http://www.example.com .(optional title)[opt. class or ID]{opt. style}

Texy! modifiers allows for an optional title attribute, CSS classes, ID, inline style and HTML element attributes. Example: "Link .(title)[class#id]{color: blue;rel:nofollow}"
txt2tags [Link text www.example.com] Txt2tags can auto-parse URLs as well and convert them to a elements. Also has support for targeting references within the same text, not just URLs.

[edit] Comparison of language features

A lot of this was taken from http://bluebones.net/2005/02/humane-text-formats/

Comparing language features
Language HTML export tool HTML import tool Tables Link titles class attribute id attribute Exportable formats License
BBCode No No No No No No HTML, XHTML Public Domain
Creole ? ? Yes No No No Depends on impl. CC-by-SA 1.0
Markdown Yes Yes No Yes No No XHTML BSD-style & GPL (both)
Markdown Extra Yes Yes Yes[1] Yes No No XHTML BSD-style & GPL (both)
MediaWiki Yes Yes Yes Yes Yes Yes XHTML GNU GPL
PmWiki No Yes Yes Yes Yes Yes XHTML 1.0 Transitional GNU GPL
POD Yes  ? No Yes  ?  ? HTML, XHTML, XML, UNIX man, LaTeX, plain text, RTF, DocBook Artistic License, Perl's license
reStructuredText Yes No Yes No Yes auto Latex, XML, PseudoXML, HTML (w3c valid), PDF Python License
Textile Yes No Yes Yes Yes Yes XHTML Textile License
Texy! Yes Yes Yes Yes Yes Yes XHTML or HTML (always valid well formed code) GNU GPL v2 License
txt2tags Yes  ? Yes[2] Yes  ?  ? HTML, XHTML, SGML, LaTeX, Lout, UNIX man, Wikipedia, Google Code Wiki, DokuWiki, MoinMoin, MagicPoint, PageMaker GPL

[edit] References

[edit] See also

[edit] External links


Personal tools