Lightweight markup language

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.

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

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.

1986 international standard SGML provided facilities to define and parse lightweight markup languages using grammars and tag implication. The 1998 W3C XML is a profile of SGML that omits these facilities.

Types

Presentation oriented languages include AsciiDoc, BBCode, Creole, Crossmark, deplate, Epytext, EtText, Haml, JsonML, MakeDoc, Markdown, Org-mode, POD, reStructuredText, Ruby Document format, Setext, SiSU, SPIP, Struxt, Texy!, Textile, txt2tags, UDO and Wikitext.

Data serialization oriented languages include Curl (programming language) (homoiconic, but also reads JSON; every object serializes), JSON, OGDL, Simple Declarative Language and YAML.

Comparison of language features

Comparing language features
Language Implementation language or platf. HTML export tool HTML import tool Tables Link titles class attribute id attribute Exportable formats License
Asciidoc Python Yes Yes Yes Yes Yes Yes XHTML, LaTeX, PDF, DocBook, EPUB, Man page, etc. GNU GPL
BBCode Perl, PHP, C# No No No No No No HTML, XHTML Public Domain
Creole PHP, Python, Ruby, JavaScript [1] No No Yes No No No Depends on impl. CC-by-SA 1.0
deplate Ruby Yes No Yes No Yes Yes HTML, LaTeX, DocBook, plain text GPL
Markdown Perl (originally), C,[2][3] Python, JavaScript, Haskell,[4] Ruby,[5] C#, Java, PHP.
Features are implementation dependent.
Yes Yes Yes Yes Yes Yes HTML originally; depending on the implementation, also LaTeX, RTF, PDF, OpenDocument, DocBook, EPUB, MediaWiki, ReStructuredText, Man page, S5 (file format), etc. BSD-style & GPL (both)
Markdown Extra PHP (originally), Python, Ruby Yes Yes Yes[6] Yes No No XHTML BSD-style & GPL (both)
MediaWiki Perl, PHP Yes Yes Yes Yes Yes Yes XHTML GNU GPL
Org-mode Emacs Lisp, Ruby (parser only), Perl Yes  ? Yes Yes  ?  ? Plain text, HTML, LaTeX, PDF, DocBook, TaskJuggler, Freemind, XOXO, iCalendar GPL
PmWiki PHP No Yes Yes Yes Yes Yes XHTML 1.0 Transitional GNU GPL
POD Perl Yes  ? No Yes  ?  ? HTML, XHTML, XML, Man page, LaTeX, plain text, RTF, DocBook Artistic License, Perl's license
reStructuredText Python, Haskell, Java, Yes No Yes Yes Yes auto LaTeX, XML, Man page, HTML (w3c valid), PDF, S5 (file format), ODF Public Domain
Textile PHP, Java, Perl, Python, Ruby, ASP, C# Yes No Yes Yes Yes Yes XHTML Textile License
Texy! PHP, C#; Java in progress Yes Yes Yes Yes Yes Yes XHTML or HTML GNU GPL v2 License
txt2tags Python Yes  ? Yes[7] Yes  ?  ? HTML, XHTML, SGML, LaTeX, Lout, Man page, Wikipedia, Google Code Wiki, DokuWiki, MoinMoin, MagicPoint, PageMaker GPL

Comparison of lightweight markup language syntax

Text/font-face formatting

Comparing text formatting syntax
Language Bold Italic Monospace (teletype) Notes
AsciiDoc *bold text* _italic text_ +monospace text+ Can double operators to ignore special characters (for example **bold _text** yields bold _text).
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.
deplate {text style=bold: bold text} __emphasized text__ ''monospace text'' deplate discourages visual formatting. Users who want to format text in a particular style have to define style classes in the given output format (CSS, LaTeX). By default, emphasized text is formatted in italics.
Markdown [8] **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>
Org-mode *bold text* /italic text/ =code= or ~verbatim~ _underlined_ +strike-through+
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``
Setext **bold text** ~italic text~
Textile[9] *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`` __underlined__ --strike-through--

Section headers

Comparing section header formatting
Language Format Notes
AsciiDoc = Level 1 Header

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

or

Level 1 Header
==============

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

Level 3 Header
~~~~~~~~~~~~~~
Close equals signs are optional (ignored if present). Level 1 is document/page title.
BBCode Does not support section headers
Creole = Level 1 Header

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

Close equals signs are optional (ignored if present).
deplate * Level 1 Header

** Level 2 Header
*** Level 3 Header

deplate's default markup is historically based on EmacsWiki, which in turn is the base for Org-mode.
Markdown [8] # 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.
Org-mode Default:
* Level 1 Header
** Level 2 Header
*** Level 3 Header
Cleaner view using org-indent-view
* Level 1 Header
 * Level 2 Header
  * Level 3 Header
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[9] 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 (### *** === ----). Resulting absolute levels numbers are calculated dynamically. Optionally, less chars can denote higher header level.
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).

Link syntax

Comparing link syntax
Language Syntax Notes
AsciiDoc http://www.example.com

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

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.
deplate [[Internal Page]]

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

Free standing URL's are also detected. The format is close to Org-mode -- see below.
Markdown[8] <http://www.example.com> or

[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.
Org-mode link format: [[link][description]] or [[link]]

[[My Target][Find my target]] - text search in current file
[[#my-custom-id]] - link to custom id
[[http://orgmode.org]] - external link
[[http://orgmode.org][Org Mode]] - external link with description [[file:/path/to/some/file]] or [[/path/to/some/file]] or [[./some/file]] - file system links

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/>`_

or
Linkname_
and elsewhere
.. _Linkname: http://example.com

Textile[9] "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.

See also

References

  1. ^ WikiCreole: Converters
  2. ^ peg-markdown is an implementation of markdown in C.
  3. ^ Discount is also an implementation of markdown in C.
  4. ^ Pandoc, which is written in Haskell, parses Markdown (in two forms) and ReStructuredText, as well as HTML and LaTeX; it writes from any of these formats to HTML, RTF, LaTeX, OpenDocument, EPUB and several other formats, including (via LaTeX) PDF.
  5. ^ https://rubyforge.org/projects/kramdown/
  6. ^ PHP Markdown Extra
  7. ^ Txt2tags User Guide
  8. ^ a b c Markdown Syntax
  9. ^ a b c Textile Syntax

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Markup language — Example of RecipeBook, a simple markup language based on XML for creating recipes. The markup can be converted to HTML, PDF and Rich Text Format using a programming language or XSL. A markup language is a modern system for annotating a text in a… …   Wikipedia

  • Textile (markup language) — Textile is a lightweight markup language originally developed by [http://textism.com Dean Allen] and billed as a humane Web text generator . Textile converts its marked up text input to valid, well formed XHTML and also inserts character entity… …   Wikipedia

  • UDO (markup language) — UDO is a markup language. It requires the installation of a special UDO converter program that can convert UDO documents to Apple QuickView, ASCII, HTML, Texinfo, Linuxdoc SGML, Manualpage, Pure C Help, Rich Text Format, ST Guide, LaTeX, Turbo… …   Wikipedia

  • Standard Generalized Markup Language — Infobox file format name = Standard Generalized Markup Language icon = logo = extension = mime = application/sgml, text/sgml type code = uniform type = public.xml magic = owner = ISO genre = metalanguage container for = contained by = extended… …   Wikipedia

  • Security Assertion Markup Language — (SAML) is an XML based standard for exchanging authentication and authorization data between security domains, that is, between an identity provider (a producer of assertions) and a service provider (a consumer of assertions). SAML is a product… …   Wikipedia

  • Security Assertion Markup Language — (SAML) est un standard informatique définissant un protocole pour échanger des informations liées à la sécurité. Basé sur le langage XML, SAML a été développé par OASIS. Le problème le plus important que SAML tente de résoudre est celui de l… …   Wikipédia en Français

  • Security assertion markup language — (SAML) est un standard informatique définissant un protocole pour échanger des informations liées à la sécurité. Basé sur le langage XML, SAML a été développé par OASIS. Le problème le plus important que SAML tente de résoudre est celui de l… …   Wikipédia en Français

  • Digital Novel Markup Language — Original author(s) Karin (Internet name) Developer(s) J. Miguel Initial release 1998 Stable release 2.24 / 2000 Developm …   Wikipedia

  • Content syndication markup language — A Content syndication markup language is a markup language that allows for syndication of media across the internet (also known as web feeds). The majority of content syndication markup languages are based upon the XML standard, and are… …   Wikipedia

  • Lightweight Directory Access Protocol — (LDAP) est à l origine un protocole permettant l interrogation et la modification des services d annuaire. Ce protocole repose sur TCP/IP. Il a cependant évolué pour représenter une norme pour les systèmes d annuaires, incluant un modèle de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”