markdown
This article is a stub. You can help the IndieWeb wiki by expanding it.
Markdown is a format for writing plain text with special punctuation that can be converted to more explicitly meaningful or richly styled text like HTML, and is used by many IndieWeb tools and sites for authoring posts.
Markdown is often used in GitHub, e.g. README files, and some online discussion forums.
Markdown is a lightweight markup language that is roughly in the middle of a spectrum between auto-linked plain text and more full-featured markup languages like HTML.
Principles
Readability
As readable as possible is the most important Markdown design goal.[1]
The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible.
IndieWeb Examples
Indieweb participants using markdown on their personal site, for authoring text posts (e.g. notes, articles), editing text, and sometimes publishing / syndicating text.
See and incorporate from storage#Markdown_plus_extensions
- User:Sandeep.io writes in markdown and publishes it directly in a hidden div. It is intended as lossless, plaintext content for comments and replies since 2013-06-11[2]
- Amy Guy uses markdown for post authoring and storage since 2013-10-13. E.g.
- Bret Comnes uses markdown for post authoring and storage since ????-??-?? E.g.
- https://raw.githubusercontent.com/bcomnes/bcomnes.github.io/master/_posts/quill.p3k.io/2015-03-28-173-of-unreleased-ap.md
- https://raw.githubusercontent.com/bcomnes/bcomnes.github.io/master/_posts/notes/2015-03-17-kilauea.md
- https://raw.githubusercontent.com/bcomnes/bcomnes.github.io/master/_posts/notes/2015-04-03-clbp.md
- bear uses markdown for articles, small notes and webmention's to keep his markdown "clean" each type of article is handled by a specific Jinja2 template. Since ????-??-?? (URL to MD source?)
- Aaron Parecki uses markdown for post authoring and storage since 2012 (source documents are not public)
- Mark Everitt has been authoring in markdown on his personal site since 2015. He uses a custom markdown dialect he calls marqdown for article and note authoring. It has added syntax for expressing language attributes, rubies, footnotes, mathematics, and more. E.g.
Alternatives
Lightweight markup alternatives to Markdown being used or considered by IndieWeb community members:
- MediaWiki syntax - just to edit our wiki
- (everyone)
- Tantek Çelik Thoughts on Markdown - analysis, alternate syntax proposals, and some implementation
- needs a name
Dialects
Markdown comes in many flavors...
- basic Gruber Markdown
- Github-Flavored Markdown
- StackOverflow Markdown
- MultiMarkdown
- Markaround
- kramdown (basic plus some extensions from PHP Markdown and Maruku)
- Markdown Extra ( also the base of many other flavor )
- ...
And has many extensions to the basic syntax:
Summaries of Markdown flavors and specifications:
There is a joint work on documenting expected behaviour and specification for extended features in an attempt called Commonmark. While at first it looks like yet another flavour, due to the extensive documentation, it may as well become a common ground.
Criticism
Not pretty
readable but not pretty - aaronpk in IRC
sometimes looks funny - bret in IRC
if it looks funny, it's failed as markdown [per its own overriding readability principle] - tantek in IRC
Underspecified
- Under-specified, leads to many implementations, fragmentation. e.g.,
GitHub-Flavored Markdown
```php
code sample
```
vs. kramdown
~~~~php
code sample
~~~~
vs. Python-Markdown with CodeHilite (though you can enable the fenced_code
extension to support all three syntaxes in Python-Markdown)
:::php
code sample
Not escapable
Markdown has no way specified way of escaping characters when used in a Markdown context.
For example, the Gitlab Slack integration uses Markdown to mark up messages, which breaks when the commit-message contains Markdown characters.
Example: Someone pushed *'remove all bla_* methods'*
Becomes: Someone pushed 'remove all bla_ methods'*
considered harmful
ugly enough to consider separate text plain
See: https://indiewebcamp.com/irc/2016-06-03#t1464937740573
Aaron Parecki it said i have to write the email in markdown. it didn't say it was going to send the markdown as the text/plain part of the email. the preview only showed it to me as html
Tantek Çelik well if markdown adhered to its principles it would work *just fine* as the text/plain part
And: https://indiewebcamp.com/irc/2016-06-03#t1464938023495
Aaron Parecki wait does that mean my hyperlinks came through in markdown format too?
Thus pointing out the particularly ugly / plain text unfriendly format of links in Markdown, that it would cause surprise/consternation that such formatting might be shown to other users.
Tools
Firefox Addon
Articles
Articles, blog posts, opinions about markdown (in particular from IndieWeb community members)
- 2016-04-27 You Should Probably Blog in Markdown
- 2014-11-09 hReview Microformats in Markdown. Please note that this article uses the older hReview microformat, it's listed here as an example of how a template language like Jinja2 can aid in generating html when using Mardown.
- 2010-10-16 Thoughts on Markdown by Dr. Drang (has some particular thoughts on tables, definition lists, footnotes)
Sessions
IndieWebCamp sessions that discussed markdown:
Tools
- Pandoc is a format converter which understands most dialects of Markdown
- Babelmark 2 is a behaviour/output tester for numerous implementations of Markdown parsers
Other Alternatives
Using a minimum amount of features to make your markup cross-compatible:
Comparison table of a few, relatively well-known alternatives:
- http://hyperpolyglot.org/lightweight-markup (comparison table)
See Wikipedia for more (no need to duplicate Wikipedia thoroughness here)
See Also
- text-first design
- link syntax
- http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown
- https://css-tricks.com/little-stuff-markdown-always-forget-google/
- https://simplystatistics.org/2017/06/13/the-future-of-education-is-plain-text/
- html2text
- http://ericholscher.com/blog/2016/mar/15/dont-use-markdown-for-technical-docs/
- https://twitter.com/0xabad1dea/status/1027345216297152513?s=19
- "markdown urls are the usb connectors of syntax" @0xabad1dea August 9, 2018
- https://twitter.com/pstuifzand/status/1029745657815420928
- "I would like to have a version of Markdown that allows me to add microformats classes to links and text. https://p83.nl/p/870" @pstuifzand August 15, 2018
- https://www.markdownguide.org/extended-syntax/
- Opinionated thread & discussion: https://twitter.com/taravancil/status/1119380292459028480
- "It's too soon to say for sure, but I think I'm anti-markdown" @taravancil April 19, 2019
- https://twitter.com/ow/status/1232131707085762561?s=20
- "*whispers*
ᴹᵃʳᵏᵈᵒʷⁿ ᶦˢ ᵒᵛᵉʳʳᵃᵗᵉᵈ ᵇᵉᶜᵃᵘˢᵉ ᶦᵗ ᵐᵃᵏᵉˢ ᶜᵒⁿᵗᵉⁿᵗ ᶦⁿᵃᶜᶜᵉˢˢᶦᵇˡᵉ ᵗᵒ ᵃⁿʸᵒⁿᵉ ᵇᵘᵗ ᵈᵉᵛᵉˡᵒᵖᵉʳˢ" @ow February 25, 2020
- "*whispers*
- Purpose per the creator: https://twitter.com/gruber/status/1232187113011056640
- "To be honest, I only designed it as a front-end for writers who already know HTML. I think for most people, something WYSIWYG is far more natural than Markdown. The problem is WYSIWYG widgets for HTML usually suck." @gruber February 25, 2020
- almost as bad at nested lists as RDF https://twitter.com/WebReflection/status/1270820434020372482?s=20
- "markdown UX shenanigans
1. this is parent
1. this is child 1
* this is parent
* this is child 1
one works, one doesn't ... the ordered list requires an extra space on the new line ... but *why* ???" @WebReflection June 10, 2020
- "markdown UX shenanigans
- Criticism: travesty for non-developers: https://twitter.com/blaine/status/1298744993457176576
- "late to the party, but just here to add my 2c, specifically about markdown/commonmark - it's a terrible format for anything interchange and that it appears to work to developers who have direct control over their work is a horrible travesty for everyone who's not a developer." @blaine August 26, 2020
- ^ cont'd: caused a disaster at Conde Nast: https://twitter.com/blaine/status/1298745691192225794
- "It's *literally* HTML version -2: https://en.wikipedia.org/wiki/IBM_Generalized_Markup_Language
At Conde Nast, we had hundreds of editors producing articles in Markdown. It was a disaster, and has taken *years* to clean up. The fundamental problem is that *everything* is valid markdown, so it's unparseable." @blaine August 26, 2020
- "It's *literally* HTML version -2: https://en.wikipedia.org/wiki/IBM_Generalized_Markup_Language
- Criticism: "normals" strongly dislike markdown and feel trapped due to developers claims of "easy": https://twitter.com/blaine/status/1298746324003651584
- ""Normals" *hate* markdown with the heat of a million burning Californian developers' ranches, and feel trapped by it because devs always say it's "easy."" @blaine August 26, 2020
- Criticism: actual markup of markdown is less readable than HTML, demonstration: https://twitter.com/chapmanjacobd/status/1297515818620612608 and https://twitter.com/chapmanjacobd/status/1297515872815157248
- "Markdown is only nice because it's _more_ painful than HTML to nest. Thus people are forced to use it simply and that is what makes it nice.
In 3 seconds can you read this?
[![CCL](http://i.cc.org/l/88x31.png)](http://w3.ne/3.0/)" @chapmanjacobd August 23, 2020 - "or
<a href="http://w3.ne/3.0/">
<img href="" alt="CCL">
</a>
much easier to read" @chapmanjacobd August 23, 2020
- "Markdown is only nice because it's _more_ painful than HTML to nest. Thus people are forced to use it simply and that is what makes it nice.
- Criticism: bad for accessibility https://twitter.com/fiinixdesign/status/1297593096071413761
- "The problem with Markdown is that in its efforts to simplify it removes fundamental meaning from HTML by pretending they don't matter, for example, look at tables and their lacking accessibility" @fiinixdesign August 23, 2020
- https://twitter.com/vponamariov/status/1387411278432460801
- "Every single time 🙄" @vponamariov April 28, 2021
- Criticism: the fact that Markdown actually has its own file extension .md rather than "just" using plain text (and .txt) is a strong clue that it has in practice readily diverged from its original "key design goal" of "_readability_, that the language be readable as-is, without looking like it has been marked up with tags or formatting instructions" (from https://en.wikipedia.org/wiki/Markdown#History) so much so that computers needed to be told when they could/should interpret text as Markdown.
- Some early history: http://www.aaronsw.com/2002/atx/intro.html
- Criticism: https://github.com/mastodon/mastodon/pull/23913#issuecomment-1455180785
HTML is accessible for screen readers but text formatting like pure Markdown isn't (if it is not converted to HTML first).
People are misusing Markdown-like formatting by plastering messages with *something* and _something_, and bullet lists etc. and it is not accessible for screen readers. There are complaints from screen reader users about Markdown-like plain text formatting.
HTML should be the choice for formatting in Mastodon for accesibility reasons
- WordPress Markdown flavor reference: https://wordpress.com/support/markdown-quick-reference
- reStructuredText
- Criticism: if you need "extra time to get into it" when going back to editing something supposedly plaintext-based, it's a problem with the format, not you. https://chat.indieweb.org/2023-05-16/1684271388822300
- "Oh that's a good point! I use markdown very little, so everytime I need to change some of my old content I need some extra time to get into it." @[chrisbergr] May 16, 2023