[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)