Comment by Havoc
2 days ago
Sound write-up. It is missing the #1 reason I like it though - it's fundamentally text.
No format/vendor lock-in and very amenable to living in a git repo. For my note taking that's already game over right there against everything else. I don't want to worry about whatever cursed format OneNote uses is still something I can extract in 2035.
I also like that it's become a defacto standard that LLMs speak. I can tell it to look at the code in this server repo and make me a API_documentation.md and it'll grasp that I want a text based summary of how to use this endpoint
Not only that but Markdown use the conventions people already used in text files (point 3 in the article). People wrote Markdown before Markdown existed, they just formalized it.
In fact, I like to write notes and documentation in text form, and then I notice I have been using Markdown all along, so I rename my text file into .md, fix a couple of markers, and now it looks nice on a viewer that supports markdown, and I have syntax highlighting in my text editor.
That's the main reason I still like writing Markdown (and Typst nowadays as well); I can "render" it in my head very quickly.
When I'm reading Markdown, I almost don't even see the symbols. Beginning a statement with a # immediately just looks like a heading, surrounding a word with asterisks looks italic to me, wrapping a string with backticks looks like code formatting to me, and my assumptions are generally right so I don't need to render very often (which is why the Pandoc -> LaTeX -> PDF pipeline didn't bother me that much).
If I'm writing LaTeX or something, I generally have a very rough idea of what something will look like, but it's not terribly reliable for me. I need to render frequently because my assumptions about how something is going to look is likely to be wrong.
I mostly use Typst now because it is similar enough to Markdown, and the compilation time is so categorically faster that I see little reason not to use it, but I still respect the hell out of Markdown for popularizing this kind of syntax.
I don’t even see the code. I see a blonde, brunette, red head.
3 replies →
Yeah, I don't even need a Markdown formatter. It's already in my head.
BINGO. a key point he either is ignorant about or strangely chooses to overlook
> Not only that but Markdown use the conventions people already used in text files
So why not Markup? At the time, everyone was using markup because Wikipedia was in wikimarkUP, with # for numbered lists, {} for macros and === to denominate titles. The latter still works in Markdown, but the former doesn’t. Funny heritage: Confluence shortcuts are also expressed in markup because it was the trend at the time, but they changed the shortcuts when they went to the Cloud.
MediaWiki syntax was its own odd duck. It used '''bold''' and ''italics'', and [https://example.com/ external links like this] - almost nothing else followed their lead.
2 replies →
> It is missing the #1 reason I like it though - it's fundamentally text.
Sure, but that's table stakes.
There are much better formats: AsciiDoc, reStructuredText, etc. Yet I also primarily use Markdown. I could use a format that's perhaps 20% better, and well-specified. But I'd have to use Markdown somewhere anyway. So I just stick with Markdown. It's good enough for me.
Can you quantify "much better"? I compiled a set of over 70 features offered by a variety of plain text formats:
https://keenwrite.com/blog/2025/09/08/feature-matrix/
Are many features missing from the list? From what I can tell, objectively, plain text formats offer largely equivalent functionality.
There are those that have well defined extension points (e.g. TeX, rst), and those that are ad-hoc, of which the best example is markdown. TeX, via packages and wrappers, can do practically anything. rst has directives (blocks) and interpreted text (inline) which can also effectively do anything (along with substitution references which are more macro-like). Specific "interpreters" (for lack of a better term) which you link to naturally have specific features by default (and some are more extensible than others e.g. pandoc which when writing out LaTeX lets you embed LaTeX in the markdown, so "markdown" in this case is turing complete).
I think if you define "better" as having well-defined extensibility to enable multiple implementations (i.e. not ad-hoc things pandoc lets you do), then rst (which can be transformed into XML as per https://docutils.sourceforge.io/docs/ref/doctree.html) would be "better" than markdown.
Does anything need all those features though? If you need more than headings, bold, italic, quoted text, and code, you should probably be using HTML or Latex or something. So a better goodness-of-fit function would be is it easy to remember/use, and is it non-intrusive inline with the text?
1 reply →
The original Markdown has fewer features than listed for the more advanced formats in the table. Hence if someone uses reStructuredText it is more precise than just saying “Markdown” because Markown could refer to anything from the original minimalist featureset to the vastly extended format supported by pandoc if given the appropriate CLI arguments.
Some text-based formats have more options for tables e.g. alignment of columns (it may help with numbers to right-align them) or multirow/multicolumn options. Some formats support definition lists (corresponds to <dl> in HTML) - a feature which I often find valuable but was not included in the original Markdown IIRC.
One advantage of using a text-based format is that it can be exported to either LaTeX or HTML and Markdown seems to prefer the HTML output by explicitly supporting inline HTML as an escape hatch for more complex constructs (e.g. tables with rowspan/colspan). In addition to often not being supported for a non-HTML export-type it also hurts the WYSIWYG experience when reading the file like plain text.
It's fundamentally ok-ishly looking text.
I think that is the biggest reason why Markdown doesn't support table. There are alternatives that do (e.g. wikitext) but they didn't get as popular as Markdown. Why? Perhaps it's because that tables will never really look fine in pure text no matter how clever your syntax is.
Provided you’ve got UTF-8 (or CP437/850/1521 etc) and fixed pitch, it’s easy to make tables.
I don't think that is sufficient for the general case because I would like to be able to use the markdown like _emphasis_ or [hyperlinks](https://www.example.com) even inside the table rows and this doesn't render properly when using fixed pitch “tables as source code blocks”
Sorry but I don't understand
Isn't this a table?
I feel like I've been doing this at least since about 2013?
Edit: I get it now. It was not a part of the original spec.
It can look better if we use fixed width font and add padding I guess?
It can, the gripe that I don't have a good solution for is what happens when entry 3 is a 7-letter name?
7 replies →
Same. I’m reading The UNIX Programming Environment (1984), and it’s made me want to use text for a lot more things. Proprietary formats come and go, but text is forever.
Provided you know the byte format of the text.
Eh, the things Markdown was made to compete with were also text. Including, you know, plain text. Sure, there were people out there doing README.RTF or README.DOC that annoyed us all -- nevermind those README.PDF monsters -- but just as frequently it was README.TXT or READ.ME (or README.DOC was in plain text). And GameFAQs and newsgroups got pretty far with plain text and ASCII graphics.
The problem is that people want to use a web browser to display their documents, they want rich documents, and web browsers are awful at displaying text they don't understand the structure for. And <code> tags look consistently awful when read back, which is why we so strongly prefer syntax highlighting when we read XML or HTML.
Really, the big competition was BBCode, whose main problem is that it's too much like HTML, and Wikitext, whose main problem was that it's too bare-bones and domain-specific. The big advantages of Markdown are:
1. It's simply more readable. It pulls from how people were naturally formatting plain-text documents meant to be read as plain text rather than pulling from markup languages, so it more closely matches how people want to write documents in plain text. That makes the document easy to read while you're writing it. Asterisks for highlighting is an old convention, so were dashes and asterisks for bullets. Really, it made the asterisk an English punctuation mark for emphasis, which I think it genuinely is now.
2. It was easy to parse and short, which made it popular with Web 2.0 social media. It got picked up by Slashdot, Reddit, and Stack Overflow as "good enough" and "better than BBCode" for user generated content. Nobody liked using WYSIWYG editor boxes then, either. They were slow, buggy, and were often Flash-based before HTML5. They needed plain text formatting options, and BBCode was both annoyingly unnatural to type (just like HTML tags) and a little inflexible.
And nobody wanted to repeat MySpace and just let users use HTML. That was a horrible idea (Samy, XSS, etc.).
Amen. Biggest reason I love Obsidian so much; it's like an operating system for markdown.
WYSIWYG is #1 reason I believe.
Markdown is fundamentally WYSIWYG - you edit something and you get it rendered 1 to 1. Either in plain text (a.k.a. "source") or when it converted to HTML/CSS and then presented.
WYSIWYG requires 1:1 mapping between "source" and "presentation". Markdown is exactly that. While HTML/CSS is 1:N mapping - same presentation can be achieved with many combinations of HTML/CSS rules. That's why "true WYSIWYG" is barely achievable with HTML/CSS.
Agreed. I wrote a post about the history and power of plain text in computing here:
Simple and Universal: A History of Plain Text, and Why It Matters
https://amontalenti.com/2016/06/11/simple-and-universal-a-hi...
You might enjoy it!
Except there's a massive lack of Markdown VIEWERS. You find MD files in every open-source project and lots of other places, but almost no viewers that render them as intended. So you wind up looking at them as plain text, with a bunch of formatting characters in them. What's the point, then?
Only just now has Windows Notepad been revised to render Markdown (I think it does now, anyway). And after searching for a Mac one I finally bought Marked. But that's all I could find. Otherwise you have to load MD files in some kind of editor and "preview" them. NO! I just want to double-click on the file and READ it, with the formatting applied. Why is that so hard?
That is the point, markdown has nice looking plain text, It is a terrible formatting language, it has no semantic ability. The whole point of markdown is that it is nice looking plaintext that can be typeset. I would even go so far to say that the intended primary render of markdown is the plaintext
This is why I don't like proposals to make markdown a better markup language, I understand the intent, markdown sucks as a decent language, but these "improvements" make the plain text ugly, and that is most of the value of markdown lost right there.
It's NOT nice-looking plain text. It's text littered with a bunch of formatting characters that aren't respected by any lightweight viewer. So why have them in there?
I'm not proposing to make it a better markup language. I just want to VIEW it with the formatting that it calls for.
It's mystifying that people are actually opposed to this. It's like a massive psychology-class experiment, when a bunch of confederates champion an obviously-absurd point of view to see if the subject of the experiment will hold his ground.
There's loads of markdown viewers, you just don't identify them as that.
Try copying some markdown into these places:
- A reddit comment
- Microsoft Teams
- Slack
- Whatsapp
- Discord
- Google Docs
- Discord
- Notion
- Facebook Messenger (although only on desktop I think)
Etc.
Hahaha, I know, right? Someone might seriously float this argument.
Gee, here's a Markdown file on my computer that I'd like to read (formatted as intended). Since I don't have a lightweight reader for Markdown, let me just...
1. Open it up in a text editor
2. Launch a browser
3. Navigate to some page that allows Markdown comments.
4. Log in to comment.
5. Find something to comment on.
6. Create and paste into a comment.
7. Post the comment.
8. Read.
SO EASY!
And Obsidian! Best of them all.
Matrix, Discourse. I wish that Signal supported it though.
1 reply →
Most repo browser UIs, and apps like VSCode, too.
1 reply →
And BBEdit
1 reply →
Markdown viewing is one of the core use-cases I had in mind when building the Tachi Code browser extension (https://tachicode.com/).
Open a raw .md file in your browser and it'll automatically open in a side-by-side editor/preview. If viewing is all you want, you can set the default preview mode for markdown files to be fullscreen.
Thanks. That's a start, I guess!
I'm personally a huge fan of Typora. It's available on Windows, MacOS and Linux.
Typora is the best markdown authoring experience out there, even surpassing obsidian imho. I wish I could use it every time I interact with markdown.
Never heard of Typora before, but after looking it up it is an instant buy for me. Thanks for sharing!
> that render them as intended
Markdown is the intended rendering medium.
Haha, right.
> And after searching for a Mac one I finally bought Marked.
I like MacDown [1]. Someone recently forked it to MacDown 3000 [2].
[1] https://macdown.uranusjr.com
[2] https://macdown.app
Obsidian is on Mac too. And it has live preview of md.
https://obsidian.md/download
`glow` is a pretty handy terminal mardown viewer.
Plenty of browser extensions exist, from barebones to fancy which support several flavors, include Mermaid and MathML, etc.
Try Obsidian. Its "LiveView" editor mode is fantastic.
Thanks. I don't want to launch an editor and then invoke a preview. I just want to double-click and read the damned file, formatted as intended. It's mystifying that people don't recognize the pointlessness of a markup format that's almost never rendered as the markup dictates.
A lot of the responses to your comment imo are kinda missing your point. I don't use Apple products, but I do understand what you're saying. You want an editor that also has an option for previewing the markup text in its formatted view.
It's officially only available for Linux (the Windows version is currently under development), and like I said, I don't use Apple products, and idk how familiar you are with manually compiling source code or how good Wine is on Macs, but maybe [Remarkable](https://remarkableapp.github.io/) could be an option?
Just thought I'd give my $2.70. ;)
> You find MD files in every open-source project and lots of other places, but almost no viewers
Huh? Any open-source project on GitHub, at least, has the viewer right there. It's the default view of markdown files. I assume other repos are similar.
E.g. The readme https://github.com/jquery/jquery
Do you not realize you're in a browser, on a Web page, if you're on Github?
And do you never actually clone the project to your machine and use it? When I sit down to actually use the project and I want to read the documentation, I want to double-click on the MD files and READ them. Not edit and preview, but read... with their intended formatting.
> You find MD files in every open-source project and lots of other places, but almost no viewers that render them as intended.
Huh? If you find a markdown file in a project on Github, I have every confidence that it renders as intended in Github's markdown viewer.
Do you not realize you're in a browser, on a Web page, if you're on Github?
And do you never actually clone the project to your machine and use it? When I sit down to actually use the project and I want to read the documentation, I want to double-click on the MD files and READ them. Not edit and preview, but read... with their intended formatting.
1 reply →
Yes. Something as handy and universally applicable as HTML minus the tags.
If you only use headlines and bulletpoints, I have a very pleasing result for a simple text file.
I mean markdown existed, but before that there's like... whatever format phpbb and friends let you use for forum posts right? There was stuff that was text-y.
But perhaps it was the first big format that was followed a Unix-y "here's a CLI tool to go to HTML from this" thing, instead of some php script
Bbcode. But that required tags like [b] and [i] so was just HTML light.
So is HTML and XML and bbcode...
The question is more why Markdown is slowly but surely outcompeting them.