3 ms·
I'm fairly new to all this, but my understanding is that Markdown is great for a few reasons: It's just plain text, so no vendor lock-in and you can ripgrep/fz
by Johnny_Bonk 9mo ago
I'm fairly new to all this, but my understanding is that Markdown is great for a few reasons:
It's just plain text, so no vendor lock-in and you can ripgrep/fzf/grep through it
Lives happily in git repos with proper diffs
LLMs speak it natively - they output Markdown, they understand Markdown input
Way easier for agents to parse than PDFs (which are binary, layout-focused, tables turn to mush)
Can do tables (at least in GFM), headers, code blocks, links - all structure preserved
What it can't do (as far as I understand): complex layouts, precise typography, embedded binary content, anything that needs pixel-perfect rendering.
Am I missing anything? What are the other limitations I should know about?
- sheept 9mo ago(CommonMark) Markdown is a rough superset of HTML, like how YAML is a superset of JSON. So whatever can be expressed in HTML can also be expressed in Markdown. With the way the CommonMark spec is written, Markdown is effectively just an HTML preprocessor. A major limitation of Markdown is the lack of standardization. For example, even within GFM there's multiple subtle variants: a single new line becomes a space when rendering Markdown files, but a line break in issue comments.
- cbm-vic-20 9mo ago> whatever can be expressed in HTML can also be expressed in Markdown. I suppose, since Commonmark specifically has HTML block and raw HTML inlines, any chunk of HTML is by definition valid Markdown.
- qingcharles 9mo agoIt's enormously frustrating that there has been no standardization of the core base-level Markdown elements. If you allow Markdown input you have to give a cheatsheet showing which "flavor" you are using.
- GeneralMaximus 9mo agoI've started to "standardize" my own use of Markdown as "whatever works in the apps I use". For me these apps are iA Writer, Obsidian, and Astro's rendering pipeline (which uses the Remark/Rehype ecosystem under the hood). This sucks for sharing documents with other people, but in practice it's not a problem. 99% of my writing never leaves my notes app or blog. And when it does, I often export it to PDF or Word to make it easy for non-techie people to read (I love Pandoc for this, it's easily one of the favorite tools in my daily toolkit).
- dpark 9mo agoThat’s because Gruber shut down the effort to standardize markdown. He declined to participate and then demanded that “Standard Markdown” be shut down when it went public. This is what yielded CommonMark. https://blog.codinghorror.com/standard-markdown-is-now-common-markdown/ https://blog.codinghorror.com/standard-markdown-is-now-commo... So we are left in the mode where markdown remains needlessly fractured. Different flavors that render slightly different and everyone gets a little annoyed but they deal with it ands occasionally bemoan the fact that there’s no standardization.
- VerifiedReports 9mo agoThe lack of viewers for it.
- baby_souffle 9mo ago> What it can't do (as far as I understand): complex layouts, precise typography, Some "extended" flavors will allow you to embed HTML and CSS which solves the layout problem. It's not really markdown at that point, though. > embedded binary content, If you're using one of the extended variants, you can b64 encode images... but again, that's not really the spirit/intent of markdown.
- reshlo 9mo agoIt’s not just “extended” flavours of Markdown that allow embedding HTML. The original reference implementation supports this too.[0] > For any markup that is not covered by Markdown’s syntax, you simply use HTML itself. There’s no need to preface it or delimit it to indicate that you’re switching from Markdown to HTML; you just use the tags. [0] https://daringfireball.net/projects/markdown/syntax#html https://daringfireball.net/projects/markdown/syntax#html
- xigoi 9mo agoHowever, there is no way to switch back to Markdown inside HTML, so if, say, you want to have an <article> tag around your article, you need to write it entirely in HTML.
- lelanthran 9mo ago> What it can't do (as far as I understand): complex layouts, precise typography, embedded binary content, anything that needs pixel-perfect rendering. Am I missing anything? What are the other limitations I should know about? Multi-level lists, annoyingly, get rendered as code at the deeper levels because of the 4+ spaces from the beginning of the line. This is a serious and major drawback of markdown, making it good for developers only. The average person does not want to render code. Remove that one drawback, and it'll get even better adoption.
- kstrauser 9mo agoThat's a "feature" of a specific renderer. I just went 22 levels deep with Zed and Marked, and both kept rendering each line as regular text.
- lelanthran 9mo ago>> The average person does not want to render code. > I just went 22 levels deep with Zed and Marked Sounds like you're agreeing with me :-/ Or are you arguing that the average person is a programmer, using programming editors and JS libraries?
- kstrauser 9mo agoI don’t follow. Marked definitely isn’t a programming tool. There’s nothing about Markdown that says nested lists should look like code. That’s just an accident of whatever editor you might be using, not of others.
- lelanthran 9mo ago> There’s nothing about Markdown that says nested lists should look like code. Yes there is. The Common Mark spec, from 2014, says 4+ spaces indents are code. Nested lists go beyond 4+ indents pretty fast.
- 9mo ago
- xigoi 9mo ago> What it can't do (as far as I understand): complex layouts, precise typography, embedded binary content, anything that needs pixel-perfect rendering. Am I missing anything? What are the other limitations I should know about? Off the top of my head: Math typesetting, semantic markup, small caps, document sectioning. (All of these things are very important for me.)
- prmoustache 9mo agoThe mistake people do is thinking markdown is something else than a text file formatting convention that is easily converted to other formats to make it prettier. If what you want to do can't be done by a text file hosted on a gopher server, it just means markdown is not for your usecase. Markdown is not meant to replace Latex or Microsoft Publisher.
- bregma 9mo ago> What are the other limitations I should know about? It's completely inadequate for anything more than a memo or simple single-page note. Which is fine for many purposes a typical software developer encounters but quickly gets left behind for anything more. It's exclusively a markup language, completely lacking in semantic meaning. If you're trying to write an actual document, the title is the title not some bold text in a bigger font, for example. Like a hammer, it's a great tool for certain jobs. So many people assume all their writing tasks are nails.
- thangalin 9mo ago> What it can't do (as far as I understand): complex layouts, precise typography, embedded binary content, anything that needs pixel-perfect rendering. Please see: * https://impacts.to/downloads/lowres/impacts.pdf https://impacts.to/downloads/lowres/impacts.pdf * https://keenwrite.com/docs/user-manual.pdf https://keenwrite.com/docs/user-manual.pdf * https://keenwrite.com/blog/2025/09/08/feature-matrix/pdf/jekyll-hyde.pdf https://keenwrite.com/blog/2025/09/08/feature-matrix/pdf/jek... * https://keenwrite.com/blog/2025/09/08/feature-matrix/pdf/software-design.pdf https://keenwrite.com/blog/2025/09/08/feature-matrix/pdf/sof... Those are Markdown documents typeset using ConTeXt. Except for Jekyll & Hide, I wrote them all.