[HN Gopher] How Markdown took over the world
___________________________________________________________________
How Markdown took over the world
Author : zdw
Score : 76 points
Date : 2026-01-09 17:52 UTC (5 hours ago)
(HTM) web link (www.anildash.com)
(TXT) w3m dump (www.anildash.com)
| ChrisArchitect wrote:
| Buried in here the mention of Textile.
|
| IYKYK. Joyent. TextDrive. Textpattern CMS.
|
| Imagining an alternate universe where it might have been Textile.
| https://textile-lang.com/
|
| Really it comes down to historically the time and place when
| Markdown was needed and the power of momentum leading to its mass
| adoption.
| kstrauser wrote:
| That looks similar to reStructuredText: https://www.sphinx-
| doc.org/en/master/usage/restructuredtext/...
| anildash wrote:
| I liked Textile a lot better initially, and it came out first.
| And interestingly, both launched at the same time on the
| platform (Movable Type) where Markdown debuted. So it really
| was sort of a clean A-B test about which one users chose.
|
| This piece was already pretty long, so I cut out most of the
| sidebar about Dean Allen and Textile, but he was a special guy,
| and certainly influential on so many parts of this era, not
| just Markdown.
| SoleilAbsolu wrote:
| I felt that Textile was the superior Sony Betamax to Markdown's
| VHS. Also, IME any no-coders I've known get freaked out by
| Markdown and always chose to use a rich text editor instead.
| BeetleB wrote:
| Fun fact: For my first SW job I had to develop a site for a
| bunch of academics, and they wanted a way to enter rich text. I
| suggested textile, and they loved it. At the time, Markdown was
| not more popular, and I thought textile had the better syntax
| (it may also have had better library support).
| akshayshah wrote:
| I like Markdown, and generally agree that it strikes a nice
| balance between correctness and usability...
|
| ...but it's delicious that this blog post also demonstrates an
| ambiguity in Markdown: how to handle intra-word emphasis. In the
| rendered output, "mark_up_" and "mark_down_" were probably
| intended to be "mark<em>up</em>" and "mark<em>down</em>", but the
| underscores were instead rendered literally.
|
| I do appreciate that Markdown's solution to ambiguities like this
| is dead simple - just inline some HTML.
| AlienRobot wrote:
| I think it's delicious how nobody, absolutely nobody, wants _
| to mean "emphasis," they want _italics_ , and yet despite there
| being a markdown-to-HTML build step nobody has ever done what
| they were told they were supposed to do to circumvent the
| semantic issue and use <span class="italic"> instead of <em>.
|
| It wouldn't even make sense for markdown if it were language-
| agnostic to output <em> when that's HTML-only.
|
| I'm going to go to my grave repeating that <em> is just <i>
| version 2.
| akshayshah wrote:
| Totally fair. At least in part, I blame the choice of <em>
| and <strong>: it's really not clear what the hierarchy
| between them is, so I just think of them as the online
| versions of italic and bold.
|
| <mild> and <strong>, or <em> and <emem> (or <double-em>, or
| <very-em>) might have been clearer, but at this point we'll
| never know.
|
| Edit: apparently <i> has been redefined to be "the idiomatic
| text element" rather than just italic - so perhaps it's a
| semantically appropriate choice here after all!
| https://developer.mozilla.org/en-
| US/docs/Web/HTML/Reference/...
| layer8 wrote:
| <em> and <strong> were introduced as the supposedly
| semantic counterparts to the supposedly physical <i> and
| <b>. That never made a lot of sense, and then later <i> and
| <b> were redefined to be some subtly different semantic
| elements. Which also never really made sense. In the end,
| they both still mean _italics_ and _bold_ , unless you go
| out of your way to give them a different styling.
| BeetleB wrote:
| Ahem. Org mode user here. _ means underline :-)
|
| Emphasis/italics is using /
| w10-1 wrote:
| This is good and detailed, but misses a broader trend: how "worse
| is better" started to win - first Java over C++, then python and
| javascript over Java, and here markdown over Word and docbook.
|
| When markdown emerged, docbook was getting even more elaborate,
| and vendors everywhere had for decades been locking people into
| frameworks and languages with fantastic features that were hard
| to use -- and then the internet bubble had popped. Then people
| realized they'd thrown away years building complex system, and
| had little tolerance for promises.
|
| Markdown is something you can use in its native form. It's both
| source and destination, with a touch of future-proofing: if the
| opportunity arrives, you can polish it into anything, and mostly
| parse it yourself.
|
| (What's surprising to me is that pandoc barely registers when
| compared with markdown on google trends since 2004; pandoc is the
| reason I switched completely to markdown in ~2010)
| atoav wrote:
| The thing this oversees is that the interface is important,
| simpler is not worse, it can in fact often mean better. For
| example while docbook may have some technical, the user
| experience for someone who just wants to write some basic stuff
| is absolutely _horrible_.
|
| If I imagine beginner-coding me, the first thing I would ask
| for example is why the hell not just use html by that point.
| Markdown is a thing I could peesent my non-technical parents
| unrendered and they still would be able to read the content,
| just fine for the most part. Try that with docbook.
|
| Now nerds like to pretend the more powerful format is
| automatically superior. It isn't. Markdown is sucessful
| _because_ it is so barebones and opinionated and because it
| forces a focus on the content over formatting. If that is what
| you need markdown is perfect. If it isn 't, go for Latex,
| HTML+CSS, Typst or use InDesign or whatnot.
| latexr wrote:
| > opinionated
|
| Markdown is the opposite of opinionated; nearly everything in
| the original spec can be done in more than one way. There's
| two separate syntaxes to do headers, links, italics, bold,
| and three ways to do unordered lists.
| thangalin wrote:
| > For example while docbook may have some technical
|
| https://keenwrite.com/blog/2025/09/08/feature-matrix/
|
| I wrote the feature matrix to objectively compare plain text-
| based documentation formats. How do DocBook's features
| compare against Markdown?
| pests wrote:
| Markdown allows HTML to be mixed freely. Not all
| implementations allow it. But the whole point was allowing a
| fallback to HTML if Markdown couldn't do what you needed. So
| its not even an option of switching from MD to HTML/CSS, its
| just an addition when needed.
| drob518 wrote:
| Simple is frequently superior.
| Apocryphon wrote:
| Comparing Markdown to Microsoft Word?
| w10-1 wrote:
| OMG I'm so happy you never had to write documentation in the
| 1990's!
| BeetleB wrote:
| What are you talking about? Word is the standard for docs
| in many large engineering companies.
| esafak wrote:
| That does not make it good.
| BeetleB wrote:
| Oh, it totally sucks. I'm pointing out that the pain
| didn't end in the 90's, and continues 30 years later :-(
| braincat31415 wrote:
| I used *roff back then. Now I have to put it into
| confluence. What a downgrade.
| kleiba wrote:
| Let's not forget org-mode.
| d-us-vb wrote:
| I think about this often as an org mode user who uses it
| exclusively for journaling with none of the GTD features. Org
| mode was released before markdown by over a year, but never
| saw the uptake like markdown did, despite being a more
| featureful syntax. I think that's because org mode was
| originally a GTD framework for emacs, and the syntax of org
| files was incidental to doing GTD in plaintext. It didn't get
| popularized as an alternative to other markup languages until
| long after markdown became popular.
|
| I don't really know. I wasn't around back then to watch it
| unfold. But I still much prefer org mode due to better emacs
| support and (IMO) more intuitive syntax for things.
| kazinator wrote:
| Java isn't worse than C++; it has a much more capable run-time,
| something which is left as an implementation-defined footnote
| in C++.
|
| Java had a leg-up over C++ by several decades in having a
| concurrency story (at all) in the language.
|
| I wouldn't use std:: anything for threads even in a greenfield
| C++ project today.
|
| Garbage collection is more advanced than the primitive
| management tools available in C++, like smart pointers to
| reference counted or exclusively owned objects: those
| approaches are strictly worse than the correct, gold-standard
| solution to the object lifetime problem.
| renewiltord wrote:
| I'm sorry, what? Markdown over Word is "Worse is Better". You
| are shitting me. Markdown over Word is "Better is Better".
| Haha, dear god. MS Word? It must be some other word surely. MS
| Word is awful today.
| wiseowise wrote:
| > how "worse is better" started to win
|
| > first Java over C++
|
| ...really? Java was literally created to fix C++ issues.
|
| > then python and javascript over Java
|
| That's just different, not worse.
| anildash wrote:
| I actually had a digression into "worse is better", but the
| piece was already pushing 5,000 words, so I figured I probably
| was better of leaving out such a big topic. But you're right
| that's a larger trend that mattered. I think of it more as a
| triumph of Postelism in the Internet at large as more people
| came online, too.
| keybored wrote:
| (I did not read TFA) Or maybe underdeveloped is better? No,
| that's not a loaded word hear me out: the syntax is very
| unobtrusive and minimal if you ignore the whole HTML superset
| thing. So people can just start using it. Everyone wants to
| write bullet lists and some emphasis, a code block if they
| program. Only later do you want maybe a little more, some
| footnotes, maybe even admonitions. But that's just a little
| extra. The syntax is already pretty minimal; there's room for a
| little extra like using `^` (`[^1]`) for footnotes. So one
| extension uses that. Oh and maybe another extension uses
| something else. But whatever, it's a trivial difference. Okay
| now some book-publishing Markdown has become quite different
| from some static website builder Markdown and it's kind of
| annoying to have to keep the differences in mind because you
| have a blog but you are _also_ writing a book. And it turns out
| that implementing Markdown in a way that doesn't have dozens of
| weird corner cases is annoying because the whole inline markup
| thing wasn't specified that well.
|
| It's like a microcosm of the burden of code. You publish some
| Perl script that happens to catch on. It's good enough; any
| immediate problems are really trivial. Ten years later though
| they are annoying. But a new lightweight markup variant? Yeah,
| we should make it close to compatible with "Markdown" because
| everyone knows Markdown. Maybe specifically GitHub Markdown.
| Because if it doesn't render on GitHub it isn't real.[1] And so
| it perpetuates through microgenerations.
|
| [1]: https://news.ycombinator.com/item?id=33873593
| calmbonsai wrote:
| As someone who was immersed in C++ from the original Stroustrup
| book (I do not recommend it), then transitioned to Java, then
| (largely) to Python I disagree on the language comparison.
|
| - Java is not worse than C++, it's actually better for most
| large-scale programming
|
| - A (subset) of C++ is still far better for performance-
| intensive applications (games, low-level systems software,
| avionics, etc.).
|
| - Related to previous, if you're using ALL of C++ in your
| projects you're "doing it wrong". It is _not_ a well-designed
| language.
|
| - I agree that Javascript is a win for "worse is better".
| Anyone remember Netscape Livewire? I try to avoid that language
| like the plague, but its runtime support is ubiquitous so it
| gets the most performance-tuning love.
|
| - Python was, initially, just a better Perl, but its dominance
| in Scientific computing spilled over into data science. Also,
| Jupyter notebooks provide a unique value proposition for a
| FOSS-Mathematica.
| Apocryphon wrote:
| > that year's largely uninspiring slate of U.S. presidential
| candidates like Wesley Clark, Gary Hart and, yes, Howard Dean
| helped propel blogs into mainstream awareness
|
| Gary Hart?
| twoodfin wrote:
| My god, I think that's right, & he at least considered it?
|
| https://en.wikipedia.org/wiki/Gary_Hart
|
| Yup.
|
| It was a strange time in Democratic politics: The assumption
| after 9/11 and the success of the GOP in the 2002 midterms was
| that GWB was going to be reelected in a walk. So not a lot of
| big names crowding the field.
| anildash wrote:
| I know it seems quite absurd! I actually just added in to this
| piece a photo I took of the CNN screen that (I believe) was the
| first mention of the word "blog" that they ever put on-screen;
| it also has a mention of Hart's campaign. Very low-res, but the
| potato quality is worth it for the historical value, I think.
| nzoschke wrote:
| I love Markdown.
|
| My favorite Markdown creation was "GistDeck", a bookmarklet that
| turned a GitHub Gist of Markdown content into a slide show.
|
| So much easier to make and share than a PowerPoint deck.
|
| https://github.com/nzoschke/gistdeck
| adamnemecek wrote:
| Markdown was cool for a while. I have switched to typst and boy
| is that an improvement. It's the love child of latex and
| markdown. With markdown you'd still have to embed latex, while
| typst has its own thing that is nicer than latex.
| tcfhgj wrote:
| the icing on the cake would be gitlab, github, etc. rendering
| typst like markdown
| TimorousBestie wrote:
| Typst is lovely.
| pbronez wrote:
| I've been enjoying Typst. I worry that much of it is too
| complex for many end users. I'm musing about having end users
| draft stuff in markdown, then render that markdown with Typst
| templates.
| simonw wrote:
| I enjoyed "a curmudgeonly guy with a kind heart who right this
| minute is probably rewatching a Kubrick film while cheering for
| an absolutely indefensible sports team".
| walterbell wrote:
| What's preventing browsers from rendering a common subset of
| markdown without the need for browser extensions, with fallback
| to the current default of plaintext if parsing fails? LLM output
| can be copy-pasted for rendering by chat messengers and
| notetaking apps (e.g. DevonThink). If LLM markdown output
| continues to proliferate, does it become the defacto common-by-
| volume subset of Markdown, which browsers could standardize and
| render?
| simonw wrote:
| Here's a fun trick: if you add .text to any URL on Markdown
| creator John Gruber's blog you'll get to see the hand-authored
| (bar the metadata and tags bits) Markdown he wrote for that
| entry.
|
| Example: https://daringfireball.net/linked/2026/01/09/moylan.text
|
| ... and if you look closely at some of the entries you might spot
| custom Markdown features that aren't part of the published spec.
| ntnsndr wrote:
| Funny that he didn't use the .md extension. Maybe because he
| started doing it before he expected his markup would merit its
| own filetype?
| twoodfin wrote:
| More likely because the whole point of Markdown was to be
| embedded in text, not a freestanding format for an entire
| document.
| leejoramo wrote:
| This is exactly why.
|
| It is my assumption that Gruber chose '.text' over '.txt'
| for several reasons. To give it a little difference when
| searching for files. To be more legible to non-computer
| people. And finally, while Classic MacOS did not use file
| extensions, the Resource Fork type code for text files was
| 'TEXT'
| WalterBright wrote:
| Markdown vs HTML is a fine illustration of what humans consider
| to be natural and intuitive is anything but to a computer.
| nout wrote:
| I'm a big fan of markdown, it's easy enough to remember the basic
| syntax and your files are portable across hundreds of different
| editors. If one day I decide to switch away from Obsidian, I can
| just plug the same files into another good editor.
| igtztorrero wrote:
| Just waiting Google Workspace create a Markdown Document Editor
| and Viewer.
|
| Chatgpt is pushing markdown to the maximum expose, Google &
| Microsoft sooner or later should react.
| kazinator wrote:
| Markdown filled an obvious void: the need for something with more
| formatting capability than plain text, but editable and version-
| controllable as plain text, without the obnoxious verbosity and
| complexity of typical markup languages: i.e. more or less
| readable as plain text also.
| hnarayanan wrote:
| I love it. Almost as much as I do org mode.
| erlkonig wrote:
| I just hate that (1) you can't nest anything into a table (2)
| it's different everywhere.
|
| Restructured Text is much more capable, and yet here we are,
| still using Markdown.
|
| My markdown pages often also have HTML in them, I mainly use
| Markdown so if I decide some overlong thing I wrote on Reddit
| actually doesn't suck, I can copy-paste it into a webpage, and my
| web-server's .smd handler does the convertion. Lowest common
| denominator. :(
| swyx wrote:
| sharing my list of mistakes in markdown that Gruber endorsed :)
| https://news.ycombinator.com/item?id=22776108
| NelsonMinar wrote:
| I think it's a littly funny he characterizes "Had the right
| flavor for every different context" as an advantage. It drives me
| crazy that Markdown is not the same everywhere and I'm still
| regularly getting confused about *bold* or **bold** or *italics*.
| (Curse you, Slack's weirdo version.)
|
| I respect Anil's argument that the extensibility has helped it be
| adapted to different contexts, and in practice the looseness of
| it doesn't cause a problem. I do wish CommonMark had more
| traction (and acceptance and use of the name Markdown). It'd be
| nice to have a standard, at least for the basic stuff.
| pwdisswordfishy wrote:
| I think it's fitting that his attempt to emphasize "mark _up_ "
| and "mark _down_ " was foiled by his own blog's Markdown parser.
___________________________________________________________________
(page generated 2026-01-09 23:00 UTC)