Lightweight markup language: Difference between revisions

Content deleted Content added
Comparison of language features: remove blank "Release date" column
Emphasis syntax: fix table
 
(307 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|Markup language with simple, unobtrusive syntax}}
{{primary sources|date=December 2007}}
A '''lightweight markup language''' ('''LML'''), also termed a '''simple''' or '''humane markup language''', is a [[markup language]] with simple, unobtrusive [[syntax (programming languages)|syntax]]. It is designed to be easy to create using any generic [[text editor]], as well as 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.
 
{{Split|date=March 2025|part=yes|discuss=Talk:Lightweight markup language#Proposal to split to comparison page}}
For instance, a person downloading a software library might prefer to read the documentation in a text editor rather than a web browser. Another application for such languages is to provide for data entry in [[web publishing|web-based publishing]], such as [[weblog]]s and [[wiki]]s, where the input interface is a simple [[text box]]. The server software then converts the input into a common [[document markup language]] like [[HTML]].
 
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.
 
For instance, a person downloading a software library might prefer to read the documentation in a text editor rather than a web browser. Another application for such languages is to provide for data entry in web-based publishing, such as [[blog]]s and [[wiki]]s, where the input interface is a simple [[text box]]. The server software then converts the input into a common [[document markup language]] like [[HTML]].
 
== History ==
Lightweight markup languages were originally used on text-only displays which could not display characters in [[italics]] or [[Emphasis (typography)|bold]], so informal methods to convey this information had to be developed. This formatting choice was naturally carried forth to plain-text email communications. [[text-based web browser|Console browsers]] may also resort to similar display conventions.
 
In 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. However, no SGML [[Document type definition|document type definition (DTD)]] for any of the languages listed below is known.
 
== Types ==
Lightweight markup languages can be categorized by their tag types. Like HTML (<code>&lt;b>'''bold'''&lt;/b></code>), some languages use named elements that share a common format for start and end tags (e.g. [[BBCode]] <code>[Bb]'''bold'''[/Bb]</code>), whereas proper lightweight markup languages are restricted to [[ASCII]]-only punctuation marks and other non-letter symbols for tags, but some also mix both styles (e.g. [[Textile (markup language)|Textile]] <code>bq. </code>) or allow embedded HTML (e.g. [[Markdown]]), possibly extended with custom elements (e.g. Wikitext[[MediaWiki#Markup|MediaWiki]] <codesyntaxhighlight lang="mediawiki" inline>&lt;<ref>'''source&lt;'''</ref></codesyntaxhighlight>).
 
Most languages distinguish between markup for lines or blocks and for shorter spans of texts, but some only support inline markup.
 
Some markup languages are tailored for a specific purpose, such as documenting computer code (e.g. [[Plain Old Documentation|POD]], [[reStructuredText|reST]], [[Ruby Document format|RD]]) or being converted to a certain output format (usually HTML or [[LaTeX]]) and nothing else, others are more general in application. This includes whether they are oriented on textual presentation or on data serialization.{{clarify|date=June 2014}}
This includes whether they are oriented on textual presentation or on data serialization.{{clarify|date=June 2014}}
 
Presentation oriented languages include [[AsciiDoc]], [[Almost Free Text|AFT]], [[atx (markup language)|atx]], [[BBCode]], [[Creole (markup)|Creole]], [[Crossmark]], [[Deplate]]Djot, [[Epytext]], [[EtText]], [[Haml]], [[JsonML]], [[MakeDoc]], [[Markdown]], [[Org-mode]], [[Plain Old Documentation|POD (Perl)]], [[reStructuredText|reST (Python)]], [[Ruby Document format| RD (Ruby)]], [[Setext]], [[SiSU]], [[SPIP]], [[Xupl]], [[Texy!]], [[Textile (markup language)|Textile]], [[txt2tags]], [[UDO (markup language)|UDO]] and [[Wikitext]].
 
Data serialization oriented languages include [[Curl (programming language)|Curl]] ([[homoiconic]], but also reads JSON; every object serializes), [[JSON]], [[OGDL]], [[Simple Declarative Language|SDL]] and [[YAML]].
<!-- to do: make{{expand section|with=comparison table with types of languages explained above; could be integrated into other high-->level tables|date=June 2014}}
 
== Comparison of language features ==
 
{| class="wikitable sortable" style="text-align:center"
<!-- TODO: add "Release date" column (please don't just add a blank column) -->
 
{| class="wikitable" style="text-align:center"
|+ Comparing language features
|-
Line 36:
! <code>class</code> attribute
! <code>id</code> attribute
! Release date
|-
! {{rh}} | [[AsciiDoc]]
Line 42 ⟶ 43:
| {{yes}}
| {{yes}}
| {{no}}
| {{no}}
|-
! {{rh}} | [[Almost Free Text|AFT]]
| {{yes}}
| {{no}}
| {{yes}}
| {{yes}}
| 2002-11-25<ref>{{cite web|url=http://asciidoc.org/CHANGELOG.html |title=AsciiDoc ChangeLog |access-date=2017-02-24}}</ref>
| {{no}}
| {{no}}
|-
! {{rh}} | [[BBCode]]
Line 60 ⟶ 54:
| {{no}}
| {{no}}
| 1998
|-
! {{rh}} | [[Creole (markup)|Creole]]
Line 68 ⟶ 63:
| {{no}}
| {{no}}
| 2007-07-04<ref>{{cite web|url=http://www.wikicreole.org/wiki/Versions |title=WikiCreole Versions |access-date=2017-02-24}}</ref>
|-
! {{rh}} | [[deplate]]Djot
| {{yes}}
| {{yes}}<ref name="djot">{{cite web|url=https://djot.net/ |title=djot |access-date=2023-08-26}}</ref>
| {{yes}}
| {{no}}
| {{yes}}
| {{no}}
| {{yes}}
| {{yes}}
| 2022-07-30<ref>{{cite web|url=https://github.com/jgm/djot/releases/tag/0.1.0 |title=djot 0.1.0 |website=[[GitHub]] |access-date=2023-08-26}}</ref>
|-
! {{rh}} | [[GitHub Flavored MarkdownDokuWiki]]
| {{yes}}
| {{yes-no}}
| {{yes}}
| {{yes}}
| {{yes-no}}
| {{yes-no}}
| 2004-07-04<ref name="DokuWiki old_changes">{{cite web |url=https://www.dokuwiki.org/old_changes#release_2004-07-04 |title=DokuWiki old_changes |access-date=2024-11-26}}</ref>
|-
! {{rh}} | [[Gemtext]]
| {{yes}}
| {{dunno}}
| {{no}}
| {{yes}}
| {{no}}
| {{no}}
| 2020
|-
! {{rh}} | [[Jemdoc]]<refGitHub name="jemdoc"Flavored />Markdown]]
| {{yes}}
| {{no}}
Line 92 ⟶ 99:
| {{no}}
| {{no}}
| 2011-04-28+
|-
! {{rh}} | [[KARASJira (computer languagesoftware)|KARASJira Formatting Notation]]
| {{yes}}
| {{no}}
| {{yes}}
| {{yes}}
| {{yes-no}}
| {{yes-no}}
| 2002+<ref name="jira">{{cite web|url=https://jira.atlassian.com/secure/WikiRendererHelpAction.jspa?section=all |title=Text Formatting Notation Help|publisher=Atlassian|subject=Jira|access-date=2020-12-22}}</ref>
|-
! {{rh}} | [[Markdown]]
| {{yes}}
| {{yes}}
| {{yes-no}}
| {{yes}}
| {{yes-no}}
| {{yes-no}}
| 2004-03-19<ref name="markdown-swartz">{{cite web |url=http://www.aaronsw.com/weblog/001189 |title=Markdown |date=2004-03-19 |work=Aaron Swartz: The Weblog}}</ref><ref name="gruber-2004-release">{{cite web |url=http://daringfireball.net/projects/markdown/ |archive-url=https://web.archive.org/web/20040402182332/http://daringfireball.net/projects/markdown/ |archive-date=2004-04-02 |title=Daring Fireball: Markdown |access-date=2014-04-25}}</ref>
|-
! {{rh}} | [[Markdown Extra]]
| {{yes}}
| {{yes}}
| {{yes}}<ref>{{cite web|url=http://michelf.com/projects/php-markdown/extra/#table |title=PHP Markdown Extra |publisher=Michelf.comMichel Fortin |access-date= |accessdate=2013-10-08}}</ref>
| {{yes}}
| {{yes}}
| {{yes}}
| 2013-04-11<ref name="mme">{{cite web|url=https://michelf.ca/projects/php-markdown/version-history/ |title=PHP Markdown: History|publisher=Michel Fortin |access-date=2020-12-23}}</ref>
|-
! {{rh}} | [[MediaWiki#Markup|MediaWiki]]
Line 124 ⟶ 135:
| {{yes}}
| {{yes}}
| 2002<ref>{{cite web|url=https://www.mediawiki.org/wiki/MediaWiki_history |title=MediaWiki history |access-date=2017-02-24}}</ref>
|-
! {{rh}} | [[MultiMarkdown]]
Line 132 ⟶ 144:
| {{no}}
| {{no}}
| 2009-07-13
|-
! {{rh}} | [[Org-mode]]
| {{yes}}
| {{yes}}<ref name="pandoc">[http://johnmacfarlane.net/pandoc/ Pandoc], which is written in [[Haskell (programming language)|Haskell]], parses Markdown (in two forms) and [[ReStructuredText]], as well as HTML and LaTeX; it writes from any of these formats to [[HTML]], [[Rich Text Format|RTF]], [[LaTeX]], [[ConTeXt]], [[OpenDocument]], [[EPUB]] and several other formats, including (via LaTeX) PDF.</ref>
| {{yes}}
| {{yes}}
| {{yes}}
| {{yes}}
| 2003<ref>{{cite web |url=http://orgmode.org/ |title=Org mode for Emacs – Your Life in Plain Text |website=orgmode.org |publisher=OrgMode team |access-date=2016-12-09}}</ref>
|-
! {{rh}} | [[PmWiki]]
| {{yes}}<ref>{{cite web|url=http://www.pmwiki.org/wiki/PmWiki/Cookbook?action=search&q=name%3DXmlExport%2CBackupHTMLZip%2CExportHTML*%2CPrintGroup+list%3Dmain|title=PmWiki Cookbook - Export addons|access-date=7 January 2018}}</ref>
| {{no}}
| {{yes}}
| {{yes}}
Line 148 ⟶ 162:
| {{yes}}
| {{yes}}
| 2002-01
|-
! {{rh}} | [[Plain Old Documentation|POD]]
Line 156 ⟶ 171:
| {{dunno}}
| {{dunno}}
| 1994
|-
! {{rh}} | [[reStructuredText]]
Line 164 ⟶ 180:
| {{yes}}
| {{yes-No|auto}}
| 2002-04-02<ref>{{cite web|url=https://docutils.sourceforge.net/docs/ref/rst/introduction.html#history |title=An Introduction to reStructuredText |access-date=2017-02-24}}</ref>
|-
! {{rh}} | [[setext]]<!--Note: setext is the direct or indirect progenitor of (nearly?) all languages on this page, created in 1991 and introduced in 1992 - it should probably stay in this table, regardless of current usage, to provide context when the table is sorted by date -->
| {{yes}}
| {{yes}}
| {{no}}
| {{yes}}
| {{no}}
| {{no}}
| 1992<!-- 1992-01-06 was the actual date first published use--><ref name=tidbits100>{{Cite web |date=1992-01-06 |title=TidBITS in new format |url=https://tidbits.com/1992/01/06/tidbits-in-new-format/ |access-date=2022-07-01 |website=TidBITS |language=en}}</ref>
|-
! {{rh}} | [[Slack (software)|Slack]]
| {{no}}
| {{no}}
| {{no}}
| {{yes}}
| {{no}}
| {{no}}
| 2013+<ref name="slack">{{cite web|url=https://get.slack.help/hc/en-us/articles/202288908 |title= Slack Help Center > Using Slack > Send messages > Format your messages |access-date=2018-08-07}}</ref><ref name="slack-api">{{cite web|url=https://api.slack.com/docs/message-formatting |title= Slack API documentation: Basic message formatting |access-date=2018-08-07}}</ref>
|-
! {{rh}} | [[Textile (markup language)|Textile]]
Line 172 ⟶ 207:
| {{yes}}
| {{yes}}
| 2002-12-26<ref name="textism.com">{{cite web|url=http://textism.com/tools/textile/|archive-url=https://web.archive.org/web/20021226035527/http://textism.com/tools/textile/|title=Textism › Tools › Textile|archive-date=26 December 2002|work=textism.com}}</ref>
|-
! {{rh}} | [[Texy!]]
| {{yes}}
| {{yes}}
Line 180 ⟶ 216:
| {{yes}}
| {{yes}}
| 2004<ref>{{cite web|url=https://texy.info/en/ |title=What is Texy |access-date=2017-02-24}}</ref>
|-
! {{rh}} | [[TiddlyWiki]]
| {{yes}}
| {{no}}
| {{yes}}
| {{yes}}
| {{yes}}
| {{no}}
| 2004-09<ref name="tiddlywiki.com">{{cite web|url=https://tiddlywiki.com/#History%20of%20TiddlyWiki|title=History of TiddlyWiki|work=tiddlywiki.com}}</ref>
|-
! {{rh}} | [[txt2tags]]
| {{yes}}
| {{yes}}<ref>{{cite web|url=https://metacpan.org/pod/HTML::WikiConverter::Txt2tags |title=Html2wiki txt2tags module|publisher=cpan.org |access-date= |accessdate=2014-01-30}}</ref>
| {{yes}}<ref>{{cite web|url=http://txt2tags.sourceforge.netorg/userguide/Table.html#6_14 |title=Txt2tags User Guide | publisher=Txt2tags.sourceforge.netorg |access-date= |accessdate=20132017-1002-0824}}</ref>
| {{yes}}
| {{dunnoyes-no}}
| {{dunnoyes-no}}
| 2001-07-26<ref>{{cite web|url=http://txt2tags.org/changelog.html |title=txt2tags changelog |access-date=2017-02-24}}</ref>
|-
! {{rh}} | [[WhatsApp]]
| {{no}}
| {{no}}
| {{no}}
| {{no}}
| {{no}}
| {{no}}
| 2016-03-16<ref name="whatsapp">{{cite web|url=https://faq.whatsapp.com/en/android/26000002/ |title=WhatsApp FAQ: Formatting your messages|access-date=2017-11-21}}</ref><!-- v2.12.535 -->
|}
 
Markdown's own syntax does not support class attributes or id attributes; however, since Markdown supports the inclusion of native HTML code, these features can be implemented using direct HTML. (Some extensions may support these features.)
<!-- TODO: add "Release date" column (please don't just add a blank column) -->
 
Markdowntxt2tags's own syntax does not support tables, class attributes, or id attributes; however, since Markdowntxt2tags supports inclusion of native HTML code in tagged areas, these features can be implemented using direct HTML. (Notewhen thatsaving someto extensionsan mayHTML supporttarget.<ref>{{cite theseweb|url=http://txt2tags.org/userguide/TaggedTaggedLineTaggedArea.html#6_16 features|title=Txt2tags User Guide | publisher=Txt2tags.)org |access-date=2017-02-24}}</ref>
 
DokuWiki does not support HTML import natively, but HTML to DokuWiki converters and importers exist and are mentioned in the official documentation.<ref name="DokuWiki Tips htmltowiki">{{cite web |url=https://www.dokuwiki.org/tips:htmltowiki |title=DokuWiki Tips htmltowiki |access-date=2024-11-26}}</ref> DokuWiki does not support class or id attributes, but can be set up to support HTML code, which does support both features. HTML code support was built-in before release 2023-04-04.<ref name="DokuWiki FAQ html">{{cite web |url=https://www.dokuwiki.org/faq:html |title=DokuWiki FAQ html |access-date=2024-11-26}}</ref> In later versions, HTML code support can be achieved through plugins, though it is discouraged.<ref name="DokuWiki FAQ html"></ref>
== Comparison of implementation features ==
 
== Comparison of implementation features ==
{| class="wikitable sortable"
<div class="overflowbugx" style="overflow-x:auto;">
{{sort-under}}
{| class="wikitable sortable sort-under"
|+ Comparing implementations, especially output formats
! Language !! Implementations
! [[XHTML|X]][[HTML]] || [[ConTeXt|Con]]/[[LaTeX|La]][[TeX]] || [[PDF]] || [[DocBook]] || [[OpenDocument|ODF]] || [[EPUB]] || [[Microsoft Word|DOC]][[Microsoft Office Open XML|(X)]]
! {{abbr|LMLs|Lightweight Markup Languages}} || Other
! License
|-
! {{rh}} | [[AsciiDoc]]
| [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[JavaScript]], [[Java (programming language)|Java]]
| {{yes|XHTML}} || {{yes|LaTeX}} || {{yes|PDF}} || {{yes|DocBook}} || {{yes|ODF}} || {{yes|EPUB}} || {{no}}
|&nbsp;— {{n/a}} || [[Man page]], etc.
| GNU GPL, MIT
|-
! {{rh}} | [[Almost Free Text|AFT]]
| [[Perl (programming language)|Perl]]
| {{yes|HTML}} || {{yes|LaTeX}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes|RTF}}
| — || ''extensible''
| ''not stated''<ref>{{cite web|url=http://www.maplefish.com/todd/aft-refman.html|title=Almost Free Text (AFT) Reference Manual|author=Todd A. Coram|version=5.98|date=2010-09-09}}</ref>
|-
! {{rh}} | [[BBCode]]
| [[Perl]], [[PHP]], [[C Sharp (programming language)|C#]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]]
| {{yes|(X)HTML}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{n/a}} || {{n/a}}
| [[Public Domain]]
|-
! {{rh}} | [[Creole (markup)|Creole]]
| [[PHP]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[JavaScript]] <ref>{{cite web|url=http://www.wikicreole.org/wiki/Converters |title=Converters |publisher=WikiCreole |access-date= |accessdate=2013-10-08}}</ref>
|colspan="9|" {{varies|Depends on implementation}}
| [[CC BY-SA|CC_BY-SA 1.0]]
|-
! {{rh}} | [[deplate]]Djot
| [[RubyLua (programming language)|RubyLua]] (originally), [[JavaScript]], [[Prolog]], [[Rust (programming language)|Rust]]<ref name="djot" />
| {{yes|HTML}} || {{yes-No|LaTeX, ConTeXt}} || {{noyes-No|PDF}} || {{yes-No|DocBook}} || {{noyes-No|ODF}} || {{noyes-No|EPUB}} || {{noyes-No|RTF}}
| {{yes-No|MediaWiki, reST}} || Man page, S5 etc.
| — || plain text
| [[GPL]]MIT
|-
! {{rh}} rowspan=2| [[GitHub Flavored Markdown]]
Line 238 ⟶ 291:
| GPL
|-
| [[Java (programming language)|Java]],<ref name="pegdown">[https://github.com/sirthias/pegdown pegdown] : A Java library for Markdown processing</ref> [[JavaScript]],<ref name="gfms">[https://github.com/ypocat/gfms gfms] : Github Flavored Markdown Server</ref><ref name="marked">[https://github.com/chjj/marked marked] : A full-featured markdown parser and compiler, written in JavaScript. Built for speed.</ref><ref name="node-gfm">[https://github.com/gagle/Node-GFM node-gfm] : GitHub flavored markdown to htmlHTML converter</ref> [[PHP]],<ref name="parsedown">[http://parsedown.org/ Parsedown] : Markdown parser written in PHP</ref><ref name="ciconia">[https://github.com/kzykhys/Ciconia Ciconia] : Markdown parser written in PHP</ref> [[Python (programming language)|Python]],<ref name="grip">[https://github.com/joeyespo/grip Grip] : GitHub Readme Instant Preview</ref> [[Ruby (programming language)|Ruby]]<ref name="github-markdown">[https://rubygems.org/gems/github-markdown github-markdown] : Self-contained Markdown parser for GitHub</ref>
| {{yes|HTML}}<ref name="gfms" /><ref name="marked" /><ref name="node-gfm" /><ref name="ciconia" /><ref name="grip" /> || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{n/a}} || {{n/a}}
| Proprietary
|-
! {{rh}} | [[Jemdoc]]<ref name="jemdoc" />
| [[Python (programming language)|Python]]
| {{yes|XHTML 1.1}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| — || —
| GPL
|-
! {{rh}} | [[KARAS (computer language)|KARAS]]
| [[PHP]], [[C Sharp (programming language)|C#]], [[JavaScript]], [[Ruby (programming language)|Ruby]]
| {{yes|(X)HTML5}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| — || —
| BSD-style
|-
! {{rh}} | [[Markdown]]
| [[Perl]] (originally), [[C (programming language)|C]],<ref>[https://github.com/jgm/peg-markdown peg-markdown] is an implementation of [[markdown]] in [[C (programming language)|C]].</ref><ref>[http://www.pell.portland.or.us/~orc/Code/discount/ Discount] is also an implementation of [[markdown]] in [[C (programming language)|C]].</ref> [[Python (programming language)|Python]],<ref>{{cite web|url=https://github.com/waylan/Python-Markdown |title=Python-Markdown |publisher=Github.com |access-date= |accessdate=2013-10-08}}</ref> [[JavaScript]], [[Haskell (programming language)|Haskell]],<ref name="pandoc" /> [[Ruby (programming language)|Ruby]],<ref>{{cite web|author=Bruce Williams <http://codefluency.com>, for Ruby Central <http://rubycentral.org> |url=https://rubyforge.org/projects/kramdown/ |title=kramdown: Project Info |publisher=RubyForge |access-date=2013-10-08 |accessdateurl-status=2013dead |archive-10url=https://web.archive.org/web/20130807011316/http://rubyforge.org/projects/kramdown |archive-date=2013-08-07 }}</ref> [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[PHP]]
| {{yes|HTML}} || {{yes-No|LaTeX, ConTeXt}} || {{yes-No|PDF}} || {{yes-No|DocBook}} || {{yes-No|ODF}} || {{yes-No|EPUB}} || {{yes-No|[[Rich Text Format|RTF]]}}
| {{yes-No|[[MediaWiki#Markup|MediaWiki]], [[ReStructuredText|reST]]}} || {{yes-No|[[Man page]], [[S5 (file format)|S5]] etc.}}
| BSD-style & GPL (both)
|-
Line 264 ⟶ 305:
| [[PHP]] (originally), [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]]
| {{yes|XHTML}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{n/a}} || {{n/a}}
| BSD-style & GPL (both)
|-
! {{rh}} | [[MediaWiki#Markup|MediaWiki]]
| [[Perl]], [[PHP]], [[Haskell (programming language)|Haskell]], [[Python (programming language)|Python]]
| {{yes|XHTML}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{n/a}} || {{n/a}}
| GNU GPL
|-
Line 276 ⟶ 317:
| [[C (programming language)|C]], [[Perl]]
| {{yes|(X)HTML}} || {{yes|LaTeX}} || {{no|PDF}} || {{no}} || {{yes|ODF}} || {{no}} || {{yes|DOC, RTF}}
| {{n/a}} || [[OPML]]
| [[GNU GPL|GPL]], [[MIT License|MIT]]
|-
! {{rh}} | [[Org-mode]]
| [[Emacs Lisp]], [[Ruby (programming language)|Ruby]] (parser only), [[Perl]], [[OCaml]]
| {{yes|XHTML}} || {{yes|LaTeX}} || {{yes|PDF}} || {{yes|DocBook}} || {{yes|ODF}} || {{yes|EPUB}}<ref name="Via ox-pandoc and pandoc itself">{{cite web|url=https://github.com/kawabata/ox-pandoc#description |title=Via ox-pandoc and pandoc itself|website=[[GitHub]] }}</ref> || {{yes|DOCX}} <ref name="Via ox-pandoc and pandoc itself"/>
| Markdown || [[plain text|TXT]], [[XOXO (microformat)|XOXO]], [[iCalendar]], [[Texinfo]], [[Man page|man]], contrib: [[groff (software)|groff]], [[S5 (file format)|s5]], deck.js, Confluence Wiki Markup,<ref>{{cite web | last=Atlassian | title=Confluence 4.0 Editor - What's Changed for Wiki Markup Users (Confluence Wiki Markup is dead) | url=https://confluence.atlassian.com/display/CONF40/Confluence+4+Editor+-+What%27s+Changed+for+Wiki+Markup+Users | access-date=2018-03-28}}</ref> [[TaskJuggler]], [[RSS]], [[FreeMind]]
| [[GPL]]
|-
! {{rh}} | [[PmWiki]]
| [[PHP]]
| {{yes|XHTML 1.0 Transitional, HTML5}} || {{no}} || {{noyes|PDF export addons}} || {{no}} || {{no}} || {{noyes|EPUB export addon}} || {{no}}
| {{n/a}} || {{n/a}}
| GNU GPL
|-
! {{rh}} | [[Plain Old Documentation|POD]]
| [[Perl]]
| {{yes|(X)HTML, XML}} || {{yes|LaTeX}} || {{noyes|PDF}} || {{yes|DocBook}} || {{no}} || {{no}} || {{yes|RTF}}
| {{n/a}} || [[Man page]], [[plain text]]
| [[Artistic License]], Perl's license
|-
! {{rh}} | [[reStructuredText]]
| [[Python (programming language)|Python]],<ref>[httphttps://docutils.sourceforge.net/docs/index.html Docutils] is an implementation of [[ReStructuredText]] in [[Python (programming language)|Python]]</ref><ref>[[Sphinx (documentation generator)|Sphinx]] is an implementation of [[ReStructuredText]] in [[Python (programming language)|Python]] and [http://docutils.sourceforge.net/docs/index.html Docutils] with a number of output format [http://sphinx.pocoo.org/latest/builders.html Builders]</ref> [[Pandoc|Haskell (programming languagePandoc)|Haskell]], [[Java (programming language)|Java]],
| {{yes|HTML, XML}} || {{yes|LaTeX}} || {{yes|PDF}} || {{noyes|DocBook}} || {{yes|ODF}} || {{yes|EPUB}} || {{noyes|DOC}}
| {{n/a}} || [[Man page|man]], [[S5 (file format)|S5]], [[Devhelp]], [[Qt (framework)|QT Help]], [[Microsoft Compiled HTML Help|CHM]], [[JSON]]
| [[Public Domain]]
|-
! {{rh}} | [[Textile (markup language)|Textile]]
| [[PHP]], [[JavascriptJavaScript]], [[Java (programming language)|Java]], [[Perl]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Active Server Pages|ASP]], [[C Sharp (programming language)|C#]], [[Haskell (programming language)|Haskell]]
| {{yes|XHTML}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{n/a}} || {{n/a}}
| Textile License
|-
! {{rh}} | [[Texy!]]
| [[PHP]], [[C Sharp (programming language)|C#]]<!--;, [[Java (programming language)|Java]] in{{efn|group=texy|JTexy has full compatibility with ''Texy!'' 1.0 syntax and some compatibility with progress-->2.0+.}}
| {{yes|(X)HTML}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{n/a}} || {{n/a}}
| GNU GPL v2 License
 
|-
! {{rh}} | [[txt2tags]]
| [[Python (programming language)|Python]],<ref>{{cite web|author=Aurelio Jargas www.aurelio.net |url=http://txt2tags.org/ |title=txt2tags |publisher=txt2tags |date=2012-01-11 |accessdateaccess-date=2013-10-08}}</ref> [[PHP]]<ref>{{cite web|url=http://txt2tags.org/txt2tags.form.php |title=txt2tags.class.php - online convertor &#91;sic&#93; |publisher=Txt2tags.org |access-date= |accessdate=2013-10-08}}</ref>
| {{yes|(X)HTML, SGML}} || {{yes|LaTeX}} || {{no|PDF}} || {{yes|DocBook}} || {{no|ODF}} || {{no|EPUB}} || {{no|DOC}} || [[Creole (markup)|Creole]], [[AsciiDoc]], [[MediaWiki namespace|MediaWiki]], [[MoinMoin]], [[PmWiki]], [[DokuWiki]], [[Google Code|Google Code Wiki]] || [[roff (computer program)|roff]], [[Man page|man]], [[MagicPoint]], [[Lout (software)|Lout]], [[PageMaker]], [[ASCII Art]], [[plain text|TXT]]
| GPL
|}
</div>
 
== Comparison of lightweight markup language syntax ==
=== Inline span syntax ===
 
=== Text formatting ===
Although usually documented as yielding italic and bold text, most lightweight markup processors output semantic HTML elements <code>em</code> and <code>strong</code> instead. Monospaced text may either result in semantic <code>code</code> or presentational <code>tt</code> elements. Few languages make a distinction, e.g. Textile, or allow the user to configure the output easily, e.g. Texy.
 
Line 329 ⟶ 371:
Some languages require a single character as prefix and suffix, other need doubled or even tripled ones or support both with slightly different meaning, e.g. different levels of emphasis.
 
{| class="wikitable sortable"
|+ ComparingComparison of text formatting syntax
|-
!rowspan=2 {{rh}} | HTML output
! Language
!width="20%"| <code>&lt;strong>strongly emphasized&lt;/strong></code>
! width="25%" | Bold
! width="20%" | Italic<code>&lt;em>emphasized text&lt;/em></code>
!width="20%"| <code>&lt;code>code&lt;/code></code>
! width="25%" | Monospace
! semantic
! Notes
|-
! <code>&lt;b>bold text&lt;/b></code>
! <code>&lt;i>italic text&lt;/i></code>
! <code>&lt;tt>monospace text&lt;/tt></code>
! presentational
|-
|rowspan=2 {{rh}} | [[AsciiDoc]]
|rowspan=2| <code><nowiki>*bold&nbsp;text*</nowiki></code>
| <code><nowiki>'italic text'</nowiki></code>
| <code><nowiki>+monospace&nbsp;text+</nowiki></code>
|rowspan=2| Can double operators to apply formatting where there is no word boundary (for example <code><nowiki>**b**old t**ex**t</nowiki></code> yields '''b'''old t'''ex'''t).
|-
|
| <code><nowiki>_italic&nbsp;text_</nowiki></code>
| <code><nowiki>`monospace&nbsp;text`</nowiki></code>
|rowspan=2| Can double operators to apply formatting where there is no word boundary (for example <code><nowiki>**b**old t**ex**t</nowiki></code> yields '''b'''old t'''ex'''t).
|-
| {{varies|<code><nowiki>'italic&nbsp;text'</nowiki></code>{{efn|name=asciidoctor-deprecation|Deprecated in Asciidoctor 2.0; versions after this represent the current rendition of the language and are aligned to the standard which is still being produced as of April 2025. This syntax [https://docs.asciidoctor.org/asciidoctor/latest/migrate/upgrade/ remains available through a compatibility mode].|group=asciidoc}}}}
| {{rh}} | [[Almost Free Text|AFT]]
| {{varies|<code><nowiki>_bold+monospace&nbsp;text_text+</nowiki></code>{{efn|name=asciidoctor-deprecation}}}}
|-
| <code><nowiki>''italic text''</nowiki></code>
! {{rh}} | [[BBCode]]
| <code><nowiki>|monospace&nbsp;text|</nowiki></code>
| <code><nowiki>~small[b]bold&nbsp;text~[/b]</nowiki></code>
| <code><nowiki>[i]italic&nbsp;text[/i]</nowiki></code>
| <code><nowiki>[code]monospace&nbsp;text[/code]</nowiki></code>
| Formatting works across line breaks.
|-
! {{rh}} | [[Creole (markup)|Creole]]
Line 358 ⟶ 404:
| <code><nowiki>//italic text//</nowiki></code>
| <code><nowiki>{{{monospace text}}}</nowiki></code>
| Triple curly braces are for ''nowiki'' which is optionally monospace in Creole (the choice of the implementor).
|-
! {{rh}} | [[Deplate]]Djot
| <code><nowiki>{text style=bold: *bold &nbsp;text}*</nowiki></code>
| <code><nowiki>__emphasized_italic text__text_</nowiki></code>
| <code><nowiki>''`monospace text''`</nowiki></code>
|
| [[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]]).
|-
!rowspan=2 {{rh}} | [[DokuWiki]]
! {{rh}} | [[Jemdoc]]<ref name="jemdoc">{{cite web |url=http://jemdoc.jaboc.net/cheatsheet.html |title=jemdoc – cheatsheet |last1=Mattingley |first1=Jacob |date=2012-11-27 |website=jemdoc.jaboc.net |accessdate=2015-01-27}}</ref>
|rowspan=2 | <code><nowiki>**bold &nbsp;text**</nowiki></code>
|rowspan=2 | <code><nowiki>//italic &nbsp;text//</nowiki></code>
| <code><nowiki>+monospace text+<code>code</code></nowiki></code>
|rowspan=2 |
| Supports inline [[LaTeX]] equations, such as <source lang="latex" inline>$ f(x) = \frac{1}{x} $</source>
|-
| <code><nowiki>''monospace&nbsp;text''</nowiki></code>
! {{rh}} | [[KARAS (computer language)|KARAS]]
|-
| <code><nowiki>**bold text**</nowiki></code>
! {{rh}} | [[Gemtext]]
| <code><nowiki>//italic text//</nowiki></code>
| {{N/A}}
| <code><nowiki>```monospace text```</nowiki></code>
| {{N/A}}
| <code><nowiki>***strong text***</nowiki></code>, <code><nowiki>///em text///</nowiki></code>, <code><nowiki>__ u text__</nowiki></code>, <code><nowiki>___ ins text___</nowiki></code> and the others.
| <code><nowiki>```</nowiki>alt text<br/>monospace text<br/><nowiki>```</nowiki></code>
| Text immediately following the first three backticks is alt-text.
|-
! {{rh}} | [[Jira (software)|Jira Formatting Notation]]
| <code><nowiki>*bold&nbsp;text*</nowiki></code>
| <code><nowiki>_italic text_</nowiki></code>
| <code><nowiki>{{monospace&nbsp;text}}</nowiki></code>
|
|-
!rowspan=2 {{rh}} | [[Markdown]]<ref name="markdown_syntax">{{cite web|url=http://daringfireball.net/projects/markdown/syntax |title=Markdown Syntax |publisher=Daringfireball.net |access-date= |accessdate=2013-10-08}}</ref>
| <code><nowiki>**bold&nbsp;text**</nowiki></code>
| <code><nowiki>*italic&nbsp;text*</nowiki></code>
|rowspan=2| <code><nowiki>`monospace text`</nowiki></code>
|rowspan=2| semantic HTML tags
|rowspan=2| Markdown doesn't use bold and italic tags, but rather <code>em</code> (typically italic) and <code>strong</code> (typically bold) tags.
|-
| <code><nowiki>__bold&nbsp;text__</nowiki></code>
| <code><nowiki>_italic&nbsp;text_</nowiki></code>
| <code><nowiki>`monospace text`</nowiki></code>
|-
! {{rh}} | [[MediaWiki#Markup|MediaWiki]]
Line 392 ⟶ 445:
| <code><nowiki>''italic text''</nowiki></code>
| <code><nowiki><code>monospace text</code></nowiki></code>
| MediaWiki mostly resorts to inline HTML
|-
!rowspan=2 {{rh}} | [[Org-mode]]
Line 398 ⟶ 451:
|rowspan=2| <code><nowiki>/italic text/</nowiki></code>
| <code><nowiki>=code=</nowiki></code>
|rowspan=2|
| <code><nowiki>_underlined_</nowiki></code>
|-
| <code><nowiki>~verbatim~</nowiki></code>
| <code><nowiki>+strike-through+</nowiki></code>
|-
! {{rh}} | [[PmWiki]]
Line 407 ⟶ 459:
| <code><nowiki>''italic text''</nowiki></code>
| <code><nowiki>@@monospace text@@</nowiki></code>
|
|-
! {{rh}} | [[reStructuredTextPlain Old Documentation|reSTPOD]]
| <code><nowiki>B<bold text></nowiki></code>
| <code><nowiki>I<italic text></nowiki></code>
| <code><nowiki>C<monospace text></nowiki></code>
| Indented text is also shown as monospaced code.
|-
! {{rh}} | [[reStructuredText]]
| <code><nowiki>**bold text**</nowiki></code>
| <code><nowiki>*italic text*</nowiki></code>
Line 418 ⟶ 476:
| <code><nowiki>**bold text**</nowiki></code>
| <code><nowiki>~italic text~</nowiki></code>
| <code><nowiki>`monospace text`</nowiki></code>
|
| <code><nowiki>_underlined_text_</nowiki></code>
|-
! {{rh}} | [[Slack (software)|Slack]]
| <code><nowiki>*bold&nbsp;text*</nowiki></code>
| <code><nowiki>_italic text_</nowiki></code>
| <code><nowiki>`monospace&nbsp;text`</nowiki></code>
| <code><nowiki>```block of monospaced text```</nowiki></code>
|-
!rowspan=2 {{rh}} | [[Textile (markup language)|Textile]]<ref name="textile_syntax">[http://textile.thresholdstate.com/ Textile Syntax] {{webarchive|url=https://web.archive.org/web/20100812131431/http://textile.thresholdstate.com/ |date=2010-08-12 }}</ref>
| <code><nowiki>*strong*</nowiki></code>
| <code><nowiki>_emphasis_</nowiki></code>
|rowspan=2| <code><nowiki>@monospace text@</nowiki></code>
| semantic HTML tags
| Semantic <code>strong</code> and <code>em</code> HTML tags
|-
| <code><nowiki>**bold&nbsp;text**</nowiki></code>
| <code><nowiki>__italic&nbsp;text__</nowiki></code>
| presentational HTML tags
| Presentational <code>b</code> and <code>i</code> HTML tags
|-
!rowspan=2 {{rh}} | [[Texy!]]
Line 435 ⟶ 499:
| <code><nowiki>*italic text*</nowiki></code>
|rowspan=2|<code><nowiki>`monospace text`</nowiki></code>
|rowspan=2| Texysemantic uses semanticHTML tags by default, but can be configuredoptional tosupport usefor presentational tags.
|-
| <code><nowiki>//italic text//</nowiki></code>
|-
!rowspan=2 {{rh}} | [[TiddlyWiki]]
|rowspan=2|<code><nowiki>''bold text''</nowiki></code>
|rowspan=2|<code><nowiki>//italic text//</nowiki></code>
| <code><nowiki>`monospace text`</nowiki></code>
|
|-
| <code><nowiki>``monospace text``</nowiki></code>
|-
! {{rh}} | [[txt2tags]]
Line 443 ⟶ 515:
| <code><nowiki>//italic text//</nowiki></code>
| <code><nowiki>``monospace text``</nowiki></code>
|
| <code><nowiki>__underlined__</nowiki></code> <code><nowiki>--strike-through--</nowiki></code>
|-
! {{rh}} | [[Plain Old Documentation|PODWhatsApp]]
| <code><nowiki>B<*bold &nbsp;text>*</nowiki></code>
| <code><nowiki>I<italic_italic text>text_</nowiki></code>
| <code><nowiki>C<```monospace &nbsp;text>```</nowiki></code>
|
| Indented text is also shown as monospaced code.
|}
 
Gemtext does not have any inline formatting, monospaced text (called preformatted text in the context of Gemtext) must have the opening and closing <code><nowiki>```</nowiki></code> on their own lines.
 
==== Emphasis syntax ====
 
In HTML, text is emphasized with the <code>&lt;em&gt;</code> and <code>&lt;strong&gt;</code> element types, whereas <code>&lt;i&gt;</code> and <code>&lt;b&gt;</code> traditionally mark up text to be italicized or bold-faced, respectively.
 
Microsoft Word and Outlook, and accordingly other word processors and mail clients that strive for a similar user experience, support the basic convention of using asterisks for boldface and underscores for italic style. While Word removes the characters, Outlook retains them.
 
<!-- This table is getting very wide, interfering with the Wikipedia sidebar. Maybe this table could be transposed? -->
{| class="wikitable sortable"
|+ Italic type or normal emphasis
|-
| Code
! {{rh}} | [[BBCode]]
! {{verth|AsciiDoc}} !! {{verth|ATX}} !! {{verth|Creole,<br/>DokuWiki}} !! {{verth|Jira}} !! {{verth|Markdown}} !! {{verth|MediaWiki}} !! {{verth|Org-mode}} !! {{verth|PmWiki}} !! {{verth|{{abbr|reST|reStructuredText}}}} !! {{verth|Setext}} !! {{verth|Slack}} !! {{verth|Textile}} !! {{verth|Texy!}} !! {{verth|TiddlyWiki}} !! {{verth|txt2tags}} !! {{verth|WhatsApp}}
| <code><nowiki>[b]bold&nbsp;text[/b]</nowiki></code>
|-
| <code><nowiki>[i]italic&nbsp;text[/i]</nowiki></code>
|! <code><nowiki>[code]monospace&nbsp;text[/code]</nowiki>*italic*</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}}
| Formatting works across line breaks.
|-
! <code>**italic**</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>_italic_</code>
| {{yes}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}}
|-
! <code>__italic__</code>
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code><nowiki>'italic'</nowiki></code>
| {{yes-no}}{{efn|name=asciidoctor-deprecation}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code><nowiki>''italic''</nowiki></code>
| {{yes-no}}{{efn|name=asciidoctor-deprecation}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>/italic/</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>//italic//</code>
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{yes}} || {{no}}
|-
! <code>~italic~</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|}
 
{| class="wikitable sortable"
|+ <h5>Bold face or strong emphasis</h5>
|-
| Code
! {{verth|AsciiDoc}} !! {{verth|ATX}} !! {{verth|Creole,<br/>DokuWiki}} !! {{verth|Jira}} !! {{verth|Markdown}} !! {{verth|MediaWiki}} !! {{verth|Org-mode}} !! {{verth|PmWiki}} !! {{verth|{{abbr|reST|reStructuredText}}}} !! {{verth|Setext}} !! {{verth|Slack}} !! {{verth|Textile}} !! {{verth|Texy!}} !! {{verth|TiddlyWiki}} !! {{verth|txt2tags}} !! {{verth|WhatsApp}}
|-
! <code>*bold*</code>
| {{yes}} || {{yes}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}}
|-
! <code>**bold**</code>
| {{yes}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{no}}
|-
! <code>__bold__</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code><nowiki>''bold''</nowiki></code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}}
|-
! <code><nowiki>'''bold'''</nowiki></code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|}
 
==== Editorial syntax ====
 
In HTML, removed or deleted and inserted text is marked up with the <code>&lt;del&gt;</code> and <code>&lt;ins&gt;</code> element types, respectively. However, legacy element types <code>&lt;s&gt;</code> or <code>&lt;strike&gt;</code> and <code>&lt;u&gt;</code> are still also available for stricken and underlined spans of text.
 
{| class="wikitable sortable"
|+ <h5>Underlined or inserted text</h5>
|-
! {{diagonal split header|Code|Language}}
! DokuWiki !! Jira !! Markdown !! Org-mode !! Setext !! TiddlyWiki !! txt2tags
|-
! <code>_underline_</code>
| {{no}} || {{no}} || {{optional}} || {{yes}} || {{yes}} || {{no}} || {{no}}
|-
! <code>__underline__</code>
| {{yes}} || {{no}} || {{optional}} || {{no}} || {{no}} || {{yes}} || {{yes}}
|-
! <code>+underline+</code>
| {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|}
 
AsciiDoc, ATX, Creole, MediaWiki, PmWiki, reST, Slack, Textile, Texy! and WhatsApp do not support dedicated markup for underlining text. Textile does, however, support insertion via the <code>+inserted+</code> syntax.
 
{| class="wikitable sortable"
|+ <h5>Strike-through or deleted text</h5>
|-
! {{diagonal split header|Code|Language}}
! Jira !! Markdown !! Org-mode !! Slack !! Textile !! TiddlyWiki !! txt2tags !! WhatsApp
|-
! <code>~stricken~</code>
| {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}}
|-
! <code>~~stricken~~</code>
| {{no}} || {{yes-no|GFM}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}}
|-
! <code>+stricken+</code>
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>-stricken-</code>
| {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}}
|-
! <code>--stricken--</code>
| {{no}} || {{no}} ||{{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}}
|}
 
ATX, Creole, MediaWiki, PmWiki, reST, Setext and Texy! do not support dedicated markup for striking through text.
 
DokuWiki supports HTML-like <code><nowiki><del>stricken</del></nowiki></code> syntax, even with embedded HTML disabled. <!-- I would have added it to the table, but that would make it confusing for languages that do support the syntax but who interpret it as raw HTML instead of native syntax, making the syntax not 'dedicated' -->
 
AsciiDoc supports stricken text through a built-in ''text span''{{efn|''Text spans'' in AsciiDoc are termed ''quoted text attributes'' in legacy implementations.|group=asciidoc}} prefix: <code><nowiki>[.line-through]#stricken#</nowiki></code>.
 
==== Programming syntax ====
 
Quoted computer code is traditionally presented in typewriter-like fonts where each character occupies the same fixed width. HTML offers the semantic <code>&lt;code&gt;</code> and the deprecated, presentational <code>&lt;tt&gt;</code> element types for this task.
 
{| class="wikitable sortable"
|+ <h5>Monospaced font, teletype text or code</h5>
|-
| Code
! {{verth|AsciiDoc}} !! {{verth|ATX}} !! {{verth|Creole}} !! {{verth|Gemtext}} !! {{verth|Jira}} !! {{verth|Markdown}} !! {{verth|Org-mode}} !! {{verth|PmWiki}} !! {{verth|{{abbr|reST|reStructuredText}}}} !! {{verth|Slack}} !! {{verth|Textile}} !! {{verth|Texy!}} !! {{verth|TiddlyWiki}} !! {{verth|txt2tags}} !! {{verth|WhatsApp}}
|-
! <code>@code@</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>@@code@@</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>`code`</code>
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{yes}}
|-
! <code>``code``</code>
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}}
|-
! <code>```code```</code>
| {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{yes-no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}}
|-
! <code>=code=</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>~code~</code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>+code+</code>
| {{yes-no}}{{efn|name=asciidoctor-deprecation}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code>++code++</code>
| {{yes-no}}{{efn|name=asciidoctor-deprecation}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code><nowiki>{{code}}</nowiki></code>
| {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code><nowiki>{{{code}}}</nowiki></code>
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
! <code><nowiki>|code|</nowiki></code>
| {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}
|-
!<code>;;code;;</code>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|}
 
Mediawiki and Gemtext do not provide lightweight markup for inline code spans.
 
=== Heading syntax ===
 
Headings are usually available in up to six levels, but the top one is often reserved to contain the same as the document title, which may be set externally. Some documentation may associate levels with divisional types, e.g. part, chapter, section, article or paragraph. This article uses ''1'' as the top level, but index of heading levels may begin at ''1'' or ''0'' in official documentation.
 
Most LMLs follow one of two styles for headings, either [[Setext]]-like underlines or [[ATXatx (markup language)|atx]]-like<ref>[http://www.aaronsw.com/2002/atx/intro "atx, the true structured text format" by Aaron Swartz (2002)]</ref> line markers, or they support both.
 
==== Underlined headings ====
 
<pre>Level 1 Heading
===============
Line 473 ⟶ 721:
Level 3 Heading
~~~~~~~~~~~~~~~</pre>
 
The first style uses underlines, i.e. repeated characters (e.g. equals <code>=</code>, hyphen <code>-</code> or tilde <code>~</code>, usually at least two or four times) in the line below the heading text.
 
{| class="wikitable"
{| class="wikitable sortable"
|+ Underlined heading levels
! {{diagonal split header|Language|Character}}
! Chars:
! <code><nowiki>=</nowiki></code>
! <code><nowiki>-</nowiki></code>
Line 486 ⟶ 736:
! <code><nowiki>_</nowiki></code>
! <code><nowiki>:</nowiki></code>
! <code><nowiki>"</nowiki></code>
! <code><nowiki>'</nowiki></code>
! <code><nowiki>`</nowiki></code>
! <code><nowiki><.</nowiki></code>
!title="Minimum of characters"| Min. length
! <code><nowiki>></nowiki></code>
!title=“Minimum of characters”| min
<!--! mix-->
|-
! {{rh}} | [[AsciiDoc]]{{efn|name=asciidoctor-deprecation}}
| {{yes-no|1}} || {{yes-no|2}} || {{yes-no|3}} || {{no}} || {{no}} || {{yes-no|5}} || {{yes-no|4}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 2{{efn|Width of title ± 2 characters|group=asciidoc}}
|-
! {{rh}} | [[Markdown]]
| {{yes|1}} || {{yes|2}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} 1
|| {{dunno}}-
! {{rh}} | [[reStructuredText]]
| colspan="13" {{yes|Heading structure is determined dynamically from the succession of headings}} || ''heading width''
|-
! {{rh}} | [[Setext]]
| {{yes|1}} || {{yes|2}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{dunno}}
|-
! {{rh}} | [[AsciiDoc]]
| {{yes|1}} || {{yes|2}} || {{yes|3}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{dunno}}
|-
! {{rh}} | [[Texy!]]
| {{yes|3}} || {{yes|4}} || {{no}} || {{yes|2}} || {{yes}} || {{no1}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{dunno}}3
|-
! {{rh}} | [[reStructuredText]]
| {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{dunno}}
|-
|}
 
RST and Texy determine heading levels dynamically, which makes authoring more individual on the one hand, but complicates merges from external sources on the other hand.
Headings may optionally be overline in [[reStructuredText]], in addition to being underlined.
 
==== Prefixed headings ====
 
<pre># Level 1 Heading
## Level 2 Heading ##
### Level 3 Heading ###</pre>
The second style is based on repeated markers (e.g. hash <code>#</code>, equals <code>=</code> or asterisk <code>*</code>) at the start of the heading itself, where the number of repetitions indicates the (sometimes inverse) heading level. Most languages also support the reduplication of the markers at the end of the line, but whereas some make them mandatory, others do not even expect their numbers to match.
 
{| class="wikitable"
{| class="wikitable sortable"
|+ Line prefix (and suffix) headings
! {{diagonal split header|Language|Character}}
! Char:
! <code><nowiki>=</nowiki></code>
! <code><nowiki>#</nowiki></code>
Line 526 ⟶ 778:
! <code><nowiki>+</nowiki></code>
! Suffix
! Levels <!--i.e. more chars mean higher level, including smaller letters.-->
! Indentation <!-- possible either additional to or instead of repetition or not at all -->
|-
! {{rh}} | [[Jemdoc]]<ref name="jemdoc" />
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}}
| {{no}} || 1–6 || {{no}}
|-
! {{rh}} | [[AsciiDoc]]
Line 541 ⟶ 789:
| {{optional}} || 1–6 || {{no}}
|-
! {{rh}} | [[MediaWiki#Markup|MediaWikiDokuWiki]]
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || 6-1 || {{no}}
| {{yes}} || 1–6 || {{no}}
|-
! {{rh}} | [[txt2tagsGemtext]]
| {{yesno}} || {{noyes}} || {{no}} || {{no}} || {{yesno}}
| {{dunno}} || 1–3 || {{no}}
| {{yes}} || 1–6 || {{no}} <!--Using <code>+</code> characters instead of <code>=</code> characters creates numbered headers (the default being unnumbered).-->
|-
! {{rh}} | [[Markdown]]
Line 553 ⟶ 800:
| {{optional}} || 1–6 || {{no}}
|-
! {{rh}} | [[Texy!MediaWiki#Markup|MediaWiki]]
| {{noyes}} || {{yesno}} || {{no}} || {{no}} || {{no}}
| {{optionalyes}} || 6–1 or 1–6, dynamic || {{no}}
|-
! {{rh}} | [[Almost Free Text|AFT]]
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}}
| {{no}} || 1–7 || {{no}}
|-
! {{rh}} | [[deplate]]
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}}
| {{no}} || 1–6 || {{no}}
|-
! {{rh}} | [[Org-mode]]
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}}
| {{no}} || 1– +∞ || {{yes|alternative}}<ref>{{cite web |title=The Org Manual: section "A Cleaner Outline View" |url=https://orgmode.org/org.html#Clean-View |access-date=14 June 2020 |ref=orgmanual-cleaner-outline-view}}</ref><ref>{{cite web|url=http://lists.gnu.org/archive/html/emacs-orgmode/2009-07/msg00651.html |title=using org-adapt-indentation}}</ref><ref>{{cite web|url=http://emacs.stackexchange.com/questions/3786/indented-multi-tiered-lists-and-headings-with-org-indent-mode |title=using org-indent-mode or org-indent}}</ref>
|-
! {{rh}} | [[PmWiki]]
| {{no}} || {{no}} || {{no}} || {{yes}} || {{no}}
| {{optional}} || 1–6 || {{no}}
|-
! {{rh}} | [[Texy!]]
| {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}}
| {{optional}} || 6–1, dynamic || {{no}}
|-
! {{rh}} | [[TiddlyWiki]]
| {{no}} || {{no}} || {{no}} || {{yes}} || {{no}}
| {{no}} || 1–6 || {{no}}
|-
! {{rh}} | [[txt2tags]]
| {{yes}} || {{no}} || {{no}} || {{no}} || {{yes}}
| {{yes}} || 1–6 || {{no}} <!--Using <code>+</code> characters instead of <code>=</code> characters creates numbered headers (the default being unnumbered).-->
|-
|}
 
POD and Textile choose the HTML convention of numbered heading levels instead.
Org-mode supports indentation as a means of indicating the level.
 
[[BBCode]] does not support section headings at all.
 
{| class="wikitable"
POD and Textile choose the HTML convention of numbered heading levels instead.
 
{| class="wikitable sortable"
|+ Other heading formats
|-
Line 588 ⟶ 842:
=head2 Level 2 Heading</pre>
|-
! {{rh}} | [[Textile (markup language)|Textile]],<ref name="textile_syntax"/> [[Jira_(software)|Jira]]<ref name="jira"/>
|<pre>h1. Level 1 Heading
h2. Level 2 Heading
Line 596 ⟶ 850:
h6. Level 6 Heading</pre>
|}
 
Microsoft Word supports auto-formatting paragraphs as headings if they do not contain more than a handful of words, no period at the end and the user hits the enter key twice. For lower levels, the user may press the tabulator key the according number of times before entering the text, i.e. one through eight tabs for heading levels two through nine.
 
=== Link syntax ===
Line 605 ⟶ 861:
Most languages employ (double) square or angular brackets to surround links, but hardly any two languages are completely compatible. Many can automatically recognize and parse absolute URLs inside the text without further markup.
 
{| class="wikitable sortable"
|+ Inline hyperlink<h5>Hyperlink syntax</h5>
! Languages
! Basic syntax !! Text syntax !! Title syntax
|-
! AsciiDoc
! AFT, BBCode<!-- some implementations only -->, Creole, Deplate, MediaWiki, PmWiki
|rowspan=45| <code><nowiki>http://example.com[Text]</nowiki></code>
|<code><nowiki>http://example.com</nowiki></code>
|
|
<!--single square brackets-->
|-
! BBCode<!-- some implementations only -->, Creole, MediaWiki, PmWiki
|
|-
! Slack
| <code><nowiki><http://example.com|Text></nowiki></code> ||
|-
! Textile
Line 623 ⟶ 885:
| <code><nowiki>"Text .(Title)":http://example.com</nowiki></code>
|-
! Jira
!AsciiDoc
|rowspan=3| <code><nowiki>[http://example.com[Text]</nowiki></code>
| <code><nowiki>[Text|http://example.com]</nowiki></code>
|
|-
! txt2tags
|rowspan=2| <code><nowiki>[http://example.com]</nowiki></code>
| <code><nowiki>[Text http://example.com]</nowiki></code>
|
|-
! Jemdoc, MediaWiki
| <code><nowiki>[http://example.com Text]</nowiki></code>
|
|-
! txt2tags
! rowspan="2" | AFT
|rowspan=2| <code><nowiki>[NameText http://example.com]</nowiki></code>
| <code><nowiki>[Text (Name)]</nowiki></code>
|
|-
! Creole, MediaWiki, PmWiki, DokuWiki
| <code><nowiki>[Text (http://example.com)]</nowiki></code>
|rowspan=3| <code><nowiki>[[Name]]</nowiki></code>
|
<!--double square brackets-->
|-
! Creole, MediaWiki, PmWiki
|rowspan=2| <code><nowiki>[[Name]]</nowiki></code>
| <code><nowiki>[[Name|Text]]</nowiki></code>
|
|-
! Deplate, Org-mode
| <code><nowiki>[[Name][Text]]</nowiki></code>
|
|-
! TiddlyWiki
| <code><nowiki>[[Text|Name]]</nowiki></code>
|
|-
Line 659 ⟶ 916:
|
|-
! Deplate, Org-mode
| <code><nowiki>[[Namespace:Name][Text]]</nowiki></code>
|
|-
! Creole, PmWiki
|rowspan=2| <code><nowiki>[[http://example.com]]</nowiki></code>
| <code><nowiki>[[http://example.com|Text]]</nowiki></code>
|
|-
! Deplate, Org-mode
| <code><nowiki>[[http://example.com][Text]]</nowiki></code>
|
<!--square bracket named tags-->
|-
! BBCode
Line 687 ⟶ 939:
| <code><nowiki>`Text <http://example.com/>`_</nowiki></code>
|
|-
! Gemtext
| <code><nowiki>=> gemini://example.com</nowiki></code>
|colspan=2| <code><nowiki>=> gemini://example.com Text</nowiki></code>
|-
! POD
| <code><nowiki>L<http://example.com/></nowiki></code>
| <code><nowiki>L</Name></nowiki></code>
|
|
|-
! PODsetext
| <code><nowiki>L<http://example.com/></nowiki></code>
|
| <code><nowiki>^.. _Link_name URL</nowiki></code>
|
|-
|}
 
Gemtext and setext links must be on a line by themselves, they cannot be used inline.
{| class="wikitable"
 
|+ Reference syntax
{| class="wikitable sortable"
|+ <h5>Reference syntax</h5>
! Languages
! Text syntax !! Title syntax
<!--reference line-->
|-
!rowspan=2| AsciiDoc
| <syntaxhighlight lang="md">… [[id]] …
<<id>></syntaxhighlight>
| <syntaxhighlight lang="md">… [[id]] …
<<id,Text>></syntaxhighlight>
|-
| <syntaxhighlight lang="md">… anchor:id …
xref:id</syntaxhighlight>
| <syntaxhighlight lang="md">… anchor:id …
xref:id[Text]</syntaxhighlight>
|-
 
!rowspan=3| Markdown
| <syntaxhighlight lang="md">… [Text][id] …
[id]: http://example.com</syntaxhighlight>
| <syntaxhighlight lang="md">… [Text][id] …
[id]: http://example.com "Title"</syntaxhighlight>
|-
| <syntaxhighlight lang="md">… [Text][] …
[Text]: http://example.com</syntaxhighlight>
| <syntaxhighlight lang="md">… [Text][] …
[Text]: http://example.com "Title"</syntaxhighlight>
|-
| <syntaxhighlight lang="md">… [Text] …
[Text]: http://example.com</syntaxhighlight>
| <syntaxhighlight lang="md">… [Text] …
[Text]: http://example.com "Title"</syntaxhighlight>
|-
! reStructuredText
| <sourcesyntaxhighlight lang="rest">... Name_ ...
.. _Name: http://example.com</sourcesyntaxhighlight>
|
|-
! setext
! Markdown
| <pre>... [Text][id]Link_name_ ...
^.. _Link_name URL</pre>
[id]: http://example.com</pre>
|
| <pre>... [Text][id] ...
[id]: http://example.com "Title"</pre>
|-
! Textile
| <pre>... "Text":alias ...
[alias]http://example.com</pre>
| <pre>... "Text":alias ...
[alias (Title)]http://example.com</pre>
|-
! Texy!
| <pre>... "Text":alias ...
[alias]: http://example.com</pre>
| <pre>... "Text":alias ...
[alias]: http://example.com .(Title)</pre>
|}
 
Org-mode's normal link syntax does a text search of the file. You can also put in dedicated targets with <code><<id>></code>.
<!-- TO DO:
=== Image syntax ===
also embedded audio and video
-->
 
=== ListMedia and external resource syntax ===
{{expand section|with=comparison table featuring how languages handle embedded images, audio, video and other types of media (e.g. social media links)|date=June 2014}}
 
=== List syntax ===
HTML requires an explicit element for the list, specifying its type, and one for each list item, but most lightweight markup languages need only different line prefixes for the bullet points or enumerated items. Some languages rely on indentation for nested lists, others use repeated parent list markers.
 
{{sort-under}}
{| class="wikitable"
{| class="wikitable sortable sort-under"
|+ Unordered, bullet list items
|+ <h5>Unordered, bullet list items</h5>
! Chars:
! {{diagonal split header|Language|Character}}
! <code><nowiki>*</nowiki></code>
! <code><nowiki>-</nowiki></code>
Line 747 ⟶ 1,032:
! <code><nowiki>#</nowiki></code>
! <code><nowiki>.</nowiki></code>
!title{{tooltip|2="middle dot"| <code><nowiki>·</nowiki></code>}}
!title{{tooltip|2="bullet"| <code><nowiki>•</nowiki></code>}}
! <code><nowiki>_</nowiki></code>
! <code><nowiki>:</nowiki></code>
!title{{tooltip|2="en-dash"| <code><nowiki>–</nowiki></code>}}
!title{{tooltip|2="em-dash"| <code><nowiki>—</nowiki></code>}}
!title{{tooltip|2=“numbernumber of whitespace characters before the line prefix”prefix| indent}}
!title{{tooltip|2=“numbernumber of whitespace characters after the line prefix”prefix| skip}}
! nest
|-
! {{rh}} | [[AsciiDoc]]
| {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0{{efn|name=asciidoc-indentation|Indenting by a single whitepace in AsciiDoc will preformat the text of that line.|group=asciidoc}} || {{dunno}} || repeat ''or'' alternate the marker
|-
! {{rh}} | [[DokuWiki]]
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 2+ || 0+ || indent
|-
! {{rh}} | [[Gemtext]]
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0 || 1+ || {{n/a}}
|-
! {{rh}} | [[Jira (software)|Jira]]
| {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0 || 1+ || repeat
|-
! {{rh}} | [[Markdown]]
| {{yes}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0–3 || 1–3 || indent
|-
! {{rh}} | [[MediaWiki]], [[TiddlyWiki]]
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0 || 1+ || repeat
|-
! {{rh}} | [[Org-mode]]
| {{yes-no|Yes<ref>[https://orgmode.org/org.html#FOOT9 Footnote in official manual] "When using ‘*’ as a bullet, lines must be indented so that they are not interpreted as headlines. Also, when you are hiding leading stars to get a clean outline view, plain list items starting with a star may be hard to distinguish from true headlines. In short: even though ‘*’ is supported, it may be better to not use it for plain list items."</ref>}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0+ || || indent
|-
! {{rh}} | [[Textile (markup language)|Textile]]
| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0 || 1+ || repeat
|-
! {{rh}} | [[Texy!]]
| {{yes}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 2+ || {{dunno}} || indent
|}
 
Microsoft Word automatically converts paragraphs that start with an asterisk <code>*</code>, hyphen-minus <code>-</code> or greater-than bracket <code>&gt;</code> followed by a space or horizontal tabulator as bullet list items. It will also start an enumerated list for the digit ''1'' and the case-insensitive letters ''a'' (for alphabetic lists) or ''i'' (for roman numerals), if they are followed by a period <code>.</code>, a closing round parenthesis <code>)</code>, a greater-than sign <code>&gt;</code> or a hyphen-minus <code>-</code> and a space or tab; in case of the round parenthesis an optional opening one <code>(</code> before the list marker is also supported.
Languages differ on whether they support optional or mandatory digits in numbered list items, which kinds of enumerators they understand (e.g. decimal digit ''1'', roman numerals ''i'' or ''I'', alphabetic letters ''a'' or ''A'') and whether they support to keep explicit values in the output format. Some Markdown dialects, for instance, will honor a start value other than 1, but ignore any other explicit value.
 
Languages differ on whether they support optional or mandatory digits in numbered list items, which kinds of enumerators they understand (e.g. decimal digit ''1'', roman numerals ''i'' or ''I'', alphabetic letters ''a'' or ''A'') and whether they support to keep explicit values in the output format. Some Markdown dialects, for instance, will respect a start value other than 1, but ignore any other explicit value.
{| class="wikitable"
 
|+ Ordered, enumerated list items
{{sort-under}}
! Chars:
{| class="wikitable sortable sort-under"
|+ <h5>Ordered, enumerated list items</h5>
! {{diagonal split header|Language|Character}}
! <code><nowiki>+</nowiki></code>
! <code><nowiki>#</nowiki></code>
! <code><nowiki>-</nowiki></code>
! <code><nowiki>.</nowiki></code>
! <code><nowiki>#1</nowiki></code>
! <code><nowiki>1.</nowiki></code>
Line 778 ⟶ 1,090:
! <code><nowiki>[1]</nowiki></code>
! <code><nowiki>{1}</nowiki></code>
! {{tooltip|2=Lower-case letters as alternative to digits (with punctuation as for digits)|<code><nowiki>a.</nowiki></code>}}
!title=“number of whitespace characters before the line prefix”| indent
! {{tooltip|2=Upper-case letters as alternative to digits (with punctuation as for digits)|<code><nowiki>A.</nowiki></code>}}
!title=“number of whitespace characters after the line prefix”| skip
! {{tooltip|2=Lower-case Roman numerals (with punctuation as for digits)|<code><nowiki>i.</nowiki></code>}}
! {{tooltip|2=Upper-case Roman numerals (with punctuation as for digits)|<code><nowiki>I.</nowiki></code>}}
!{{tooltip|2=number of whitespace characters before the line prefix|indent}}
!{{tooltip|2=number of whitespace characters after the line prefix|skip}}
! nest
|-
! {{rh}} | [[AsciiDoc]]
| {{no}} || {{no}} || {{no}} || {{yes}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}}|| {{no}} || colspan="4" {{yes}}{{efn|The modern language specification only supports a full stop as a delimiter for any ordered list. In the legacy AsciiDoc.py syntax, only a right parenthesis was acceptable for either lower alpha or Roman numerals.|group=asciidoc}} || 0{{efn|name=asciidoc-indentation}} || {{dunno}} || repeat ''or'' alternate the marker
|-
! {{rh}} | [[DokuWiki]]
| {{no}} || {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no }} || {{no}} || {{no}} || {{no}} || 2+ || 0+ || indent
|-
! {{rh}} | [[Jira (software)|Jira]], [[MediaWiki]], [[Textile (markup language)|Textile]], [[TiddlyWiki]]
| {{no}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || 0 || 1+ || repeat
|-
! {{rh}} | [[Markdown]]
| {{no}} || {{yesno}} |1| {{no}} || {{no}} || {{no}} || {{yes}} |1| {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no }} || {{no}} || {{no}} || {{no}} || 0–3 || 1–3 || indent
|-
! {{rh}} | [[MediaWikiOrg-mode]]
| {{yes-Nono}} |#| {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || 0{{no}} || 1colspan="2" {{optional}} || {{no}} || {{no}} || 0+ || repeat|| indent
|-
! {{rh}} | [[Texy!]]
| {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || colspan="2" {{yes-no|Only with <code><nowiki>)</nowiki></code> delimiter}} || {{no}} || {{yes-no|Only with <code><nowiki>)</nowiki></code> delimiter}} || 2+ || {{dunno}} || indent
|-
|}
 
Slack assists the user in entering enumerated and bullet lists, but does not actually format them as such, i.e. it just includes a leading digit followed by a period and a space or a bullet character <code>•</code> in front of a line.
<!-- TO DO:
 
{| class="wikitable"
{| class="wikitable sortable"
|+ Labeled, glossary, definition list syntax
|+ <h5>Labeled, glossary, [[definition list|description/definition list]] syntax</h5>
! Languages
! Term being defined !! Definition of the term
|-
! rowspan="3"| [[AsciiDoc]]
|<code><nowiki>Term::</nowiki></code>
| rowspan="3" |No specific requirements; may be mixed with ordered or unordered lists, with nesting optional
|-
|<code><nowiki>Term::::</nowiki></code>
|-
|<code><nowiki>Term;;</nowiki></code>
 
|-
! [[MediaWiki]]
|rowspan=3| <code><nowiki>; Term</nowiki></code>
|rowspan=3| <code><nowiki>: Definition</nowiki></code>
|-
! [[Textile (markup language)|Textile]]
|-
![[TiddlyWiki]]
|-
![[Texy!]]
|colspan="2" | <pre><nowiki>Term:
- Definition</nowiki></pre>
|-
! [[Org-mode]]
|colspan="2" | <code><nowiki>- Term :: Definition </nowiki></code>
|-
 
|}
 
-->
<!-- TO DO:
=== Quotation syntax ===
{{expand section|with=differentiation between in-line and block quotes, as well as any handling for attribution|date=June 2014}}
> Foo
 
=== Table syntax ===
{{expand section|with=Cell, Row, Column, Header, Caption|date=June 2014}}
 
-->
 
== Historical formats ==
The following lightweight markup languages, while similar to some of those already mentioned, have not yet been added to the comparison tables in this article:
 
* [[EtText]]:{{r |name="ettext" |reference={{Cite web |title=EtText: Documentation: Using EtText |url=http://ettext.taint.org/doc/ettext.html |access-date=2022-06-30 |website=ettext.taint.org}} originally from the [[WebMake]][http://webmake.taint.org] project. }} circa 2000.
* [[Grutatext]]:{{r |name="grutatext" |reference={{Cite web |title=Un naufragio personal: The Grutatxt markup |url=https://triptico.com/docs/grutatxt_markup.html |access-date=2022-06-30 |website=triptico.com }} Public ___domain format (since version 2.20); originally used in the [[GrutaCMS|Gruta]] [[Content Management System|CMS]] system.}} circa 2002.
 
== See also ==
* [[Comparison of document -markup languages]]
* [[Comparison of documentation generators]]
* [[Lightweight programming language]]
 
== Notes ==
{{Notelist}}
 
== References ==
Line 811 ⟶ 1,177:
 
== External links ==
* {{wikibooksWikibooks inline|Curl}}
* [http://c2.com/cgi/wiki?TextFilter C2's list]
* [http://developers.curl.com/userdocs/docs/en/dguide/markup.html Curl Markup to replace HTML+CSS+JS]
* [http://micans.org/zoem/ecosphere.html Inhabitants of the authoring ecosphere]
* [http://outl.sourceforge.net/lightweight.html List at otl website]
* [http://bluebones.net/2005/02/humane-text-formats/ Humane Text Formats - A comparison] (obsolete)
* [http://johnmacfarlane.net/pandoc/ Pandoc: a versatile inter-format converter]
 
{{Markup languages}}
 
[[Category:Lightweight markup languages| ]]
[[Category:Markup languages]]
[[Category:Data serialization formats]]
[[Category:Computing-related lists]]
[[Category:Data serialization formats]]
[[Category:Markup language comparisons]]
[[Category:Markup languages]]
 
[[de:Auszeichnungssprache#Lightweight Markup Language]]