Markdown is holding you back

(newsletter.bphogan.com)

99 points | by zdw 12 hours ago

31 comments

  • dschuessler 10 hours ago
    You can include arbitrary HTML tags in Markdown at any place you need them.[0] I am not aware of any Markdown tooling that does not support this.

    So, no, Markdown is not holding me back. It is perfectly capable of what the author claims it isn't.

    [0]: https://daringfireball.net/projects/markdown/syntax#html

    • throwaway150 8 hours ago
      > You can include arbitrary HTML tags in Markdown at any place you need them.

      That is well known and I am sure the author is aware of it. The problem they are describing is not whether HTML is technically allowed inside Markdown. It's that when you are writing Markdown, you are writing Markdown, not HTML, and that comes with some problems.

      > It is perfectly capable of what the author claims it isn't.

      In theory, yes. In practice, using Markdown becomes much less appealing once you start dropping raw HTML all over the place. The whole point of choosing Markdown is that you do not want to spend your time typing <p>, <a>, <li> and the rest. You want to write in Markdown, with only occasional HTML when absolutely necessary.

      That is exactly where the author's complaints become relevant. If the solution to Markdown's limitations is routinely switching to HTML, then the argument becomes circular. If you are expected to write HTML to address the author's complaints, why bother with Markdown at all? If the answer is just "write HTML", then you may as well skip Markdown in the first place.

      • vorpalhex 6 hours ago
        Most markdown engines allow short tags to stand in for html, so for frequent features you can just use a short tag.

        Alternatively you can extend markdown. I wrote a simple text based game engine that was markdown based but I needed some arbitrary additions appropriate for a game.. so I just added a few elements.

        • hysan 3 hours ago
          The author addresses this too. Once you start down this path, you go down the road of non-standardization which means losing portability, etc. I don’t see how this is a point against the author?
    • henrebotha 9 hours ago
      There are real limitations to this: You can't arbitrarily mix and match HTML and Markdown. As soon as you introduce an HTML block, you're locked out of Markdown syntax.

      AsciiDoc lets you mix and match however you want. Or, put differently: AsciiDoc's superiority over Markdown extends even to being better at shelling out to HTML.

      • vidarh 9 hours ago
        While that's true, I'd take Markdown + extensions to allow inline HTML or custom tags over AsciiDoc any day, even at the cost of losing some compatibility - converting that to plain Markdown is usually easy enough.
      • tefkah 9 hours ago
        mdx does tho. you could just not define any components, then you can nest markdown inside html no problem
    • hizanberg 1 hour ago
      I also put interactive components in my markdown docs, I’m only using Markdown for content now.
  • jimmar 10 hours ago
    Markdown is the minimum viable product. It’s easy to learn and still readable if not rendered in an alternate format. It’s great.

    For making PDFs, I’ve recently moved from AsciiDoc to Typst. I couldn’t find a good way to get AsciiDoc to make accessible PDFs, and I found myself struggling to control the output. Typst solves all of AsciiDoc’s problems for me.

    But in the end, no markup language will make you write better. It’s kind of like saying that ballpoint pens are limiting your writing, so you should switch to mechanical pencils.

    • hobofan 11 minutes ago
      Yes, the author conflates two different use-cases.

      Markdown is the answer for "how do we enable people that don't want to invest a lot of time into producing content that's somewhat better than plain text?".

      It's not trying to solve the problem of "how do we enable people that are willing to invest time into learning to produce the best possible and most structured content possible?" and I doubt that there will be language that will serve both of those use-cases very well.

    • undeveloper 10 hours ago
      typst looks interesting -- but how are you writing it? from what I looked at, it looks like theres an official web editor and a vscode plugin with limited support. this feels pretty limited, as someone who came in expecting something like obsidian.
      • tcfhgj 6 minutes ago
        you can just install the typst compiler yourself and let it run in the cli

            typst watch file.typ // compiles automatically on file changes
      • MillironX 9 hours ago
        I've started experimenting with Typst for a few documents, and here's my stack:

        - Zed editor with Typst plugin

        - Tinymist LSP settings turned on to render on save in Zed, see https://code.millironx.com/millironx/nix-dotfiles/src/commit...

        - Okular open to the output document. Okular refreshes the document when changed on disk.

        It's not as polished as say, LaTeX Workshop in VSCode, but it gets the job done.

      • TRiG_Ireland 9 hours ago
        I'm not aware of any limitations in the Tinymist plugin.

        And you can just write it in the plain text editor of your choice, and keep an eye on the PDF with typst watch.

        • addaon 7 hours ago
          > I'm not aware of any limitations in the Tinymist plugin.

          I looked into this a while ago, and couldn't find a workflow I could live with. Have things improved? What's the workflow like for working on an image in, say, OmniGraffle to include in the document? Does text search in embedded PDFs work these days? LinkBack so I can edit the images easily inline?

  • amitav1 9 hours ago
    I use Org-mode w/ GNU Emacs for all of my blogging(shameless plug: amitav.net). I like Org-mode because it's easy enough to write, looks nice enough, can be exported in quite a few formats, and the code block handling is chef's kiss. It supports quite a few languages and has a feature I've seen in no other editor before, where you can chain together code from different code blocks, and evaluate it, inside of the document itself. I tried out a few different blogging platforms with first class Org-mode support ([Blorgit](https://orgmode.org/worg/blorgit.html) and [lazyblorg](https://karl-voit.at/tags/lazyblorg/)), but they ended up taking up a bunch of time to set up, so my current process is just manually exporting my Org files to HTML, then using rsync to send them over to my server, then I have a Ruby script which just appends an index to the bottom of each file and serves it. I find Org-mode a lot more expressive and natural to write than my previous blogs which were in Markdown.
    • grep_name 9 minutes ago
      Hmm, have you checked out Ox-Hugo? It's a pretty great system for exporting to a hugo blog from a single org file. But then I guess your blog would have to be hugo-based
    • Quothling 1 hour ago
      If org-mode wasn't so tied to emacs I suspect it would be the "default" text formatting syntax for a lot more people.
  • neoCrimeLabs 10 hours ago
    > Markdown Lacks the Structure You Need

    I feel like this article makes a lot of valid observations, but then wraps them with a false dilemma.

    If it had tried to convince the reader of understanding what formatting needs are required before choosing a format, I would have entirely agreed with it.

    Instead I'm left feeling mildly offended, and disagree with it.

  • jppope 9 hours ago
    Been constantly using it for ~10 years and it works great. I read the article and its not incorrect, but its also kind of arguing that markdown users have problems that they themselves would say they don't have. If you need something else, use something else. With all that said, great title, they convinced me to waste ~3-5 min digging in.
  • nickledave 9 hours ago
    Really weird to see this person mention MyST as a form of Markdown, and then go on to talk about reStructuredText as their first example of a markup language "that gives you more control over structure than ... markdown".

    The whole point of MyST is to provide a markdown-like alternative to rST. It literally has directives, roles, structural semantics, etc. It just doesn't have the unlearnable syntax of rST and the so-called governance of docutils (the de facto rST parser) (see e.g. discussion on https://github.com/sphinx-doc/sphinx/issues/8039 and linking issues)

  • starkparker 8 hours ago
    By suggesting DITA as a valid alternative to Markdown, for any use, this has so completely lost the plot that it blows up whatever credibility Brian might have on the subject. It's disappointing, because I know of Brian and otherwise respect his work.

    Short of writing in raw Postscript, I can't think of a more completely different set of strengths, audiences, and applications. I had to get to a company with more than 5,000 employees, 20 product lines, and 5 required i18n locales to find one where the overhead, god-awful ergonomics, and half-broken tooling of DITA were appropriate for the scale of the work _and also_ resourced enough to paper over every miserable facet of its implementation.

    If you're using Markdown today _at all_ for a task, DITA isn't appropriate for it. If DITA was appropriate for the task, you never would've picked Markdown to accomplish it to begin with. Don't waste your time with it either way.

  • procaryote 48 minutes ago
    I use markdown because it's easy to read without rendering. All of the alternatives in the article seem worse

    If I wanted more structure, I'd just write html; or mix html into the markdown.

    Pandoc lets me do things like generate libreoffice or microsoft word documents from the markdown, using a reference document for styling of headings etc. This also gives me good enough control to generate OK looking pdfs. It's not LaTeX levels of control, but it's much easier

    I don't want to do extra work to hypothetically make things easier for an LLM.

  • nicoburns 10 hours ago
    This article doesnt consider Typst, which IMO ought to be the first port of call if Markdown isnt sufficient for your needs.
    • lenkite 2 hours ago
      I guess we need to wait until Typst is natively supported by Github.
    • tefkah 9 hours ago
      typst is great, but there are many many steps between “markdown isn’t sufficient” and reaching for typst.

      1. typst only really has pdf output at the moment 2. so much less tooling available (linters, site builders, converters etc) 3. much less of a markup format, extremely tightly coupled to a specific tool (typst compiler)

      again, love typst, but it has (atm) so much fewer applications

    • perlgeek 10 hours ago
      I've used typst for generating PDFs before, how good is its HTML output?
  • jrm4 9 hours ago
    Feels like a great argument...for, I don't know, a bunch of moderately technical high-schoolers who were somehow raised on markdown instead of Microsoft Word and want more power?

    No, seriously, who is this for?

  • prmoustache 10 hours ago
    The author seems to forget that markdown is just an extension of html. If markdown doesn't provide something that html does, you just write it in html and it will be rendered correctly.

    I'd also argue that the limitations of markdown allow me to focus on actual content and less on the presentation. I have little use of all the features of a markup language if I can't remember how to use them.

    • nrhrjrjrjtntbt 9 hours ago
      It is not features but structure and undetstanding that is missing.

      That said I am not sure what the solution is to that since your docs may need structure my docs dont need. Therefore you cant solve the "semantic" outside of a "namespace" of what you agree in your organization.

      E.g. you may decide architecture diagrams are in Mermaid but that is by no means a stanfard and my org uses embeded svg.

      So to go full circle... you are right just use HTML. After all it's semantic isn't it ;-)

    • mycall 4 hours ago
      Markdown can be used where HTML is not available, like in AI chatbots for omnichannel mediums (e.g. WhatsApp).
    • dardeaup 10 hours ago
      Wow! TIL!
  • philipwhiuk 10 hours ago
    > If you're writing a quick README or a short-lived doc, Markdown is fine. It's fast, approachable, and does the job. If you're building a developer documentation site that needs some structure, reStructuredText or AsciiDoc are better choices.

    This is dumb. If I'm writing developer documentation I'm not writing it for a machine. And if the aim here is to expose it to a LLM, then the LLM needs to get smarter about semantics, not force us back to formats that are more technically complex to write and maintain in order to re-create 'the semantic web' - a flawed concept that has failed to catch on.

    If the LLM needs context on content that humans don't need, the LLM needs fixing, not the content.

    > With Markdown as your source, you can't easily go to another format.

    File->Print->PDF.

    Was that hard? (I admit it's still bizarre that Chrome puts 'Save As PDF' under Print).

    (Apparently you can also go via LaTeX if you love a CLI)

    • dragonwriter 10 hours ago
      > If I'm writing developer documentation I'm not writing it for a machine. And if the aim here is to expose it to a LLM, then the LLM needs to get smarter about semantics, not force us back to formats that are more technically complex to write and maintain

      AsciiDoc is much better than Markdown for docs intended for humans that are more than short, README type of documents. Any advantage it has for documents intended for LLMs is a side effect of that.

      • zihotki 10 hours ago
        Many consider AsciiDoc being too complex.
    • abathur 7 hours ago
      This is the kind of dismissive sneer the HN guidelines advise against.

      You can write dev docs for humans and still want machine readability (without caring about whether some LLM can make sense of the docs).

      Machine readability is how you repurpose your own documentation in different contexts. If your documentation it isn't machine readable it might as well be in a .doc(x) file.

  • timpera 12 hours ago
    It's interesting to see how Markdown keeps getting more and more use, and even native Windows Notepad support!
  • johnathandos 10 hours ago
    It’s good to spread awareness (or just remind folks) that alternatives to Markdown exist. The right tool for the job depends on your circumstances. If I were scaling a docset for a team of contributors primarily consisting of technical writers, .adoc or .rst would be my preference. If I were scaling internal docs-as-code infra for software engineers, I’d use Markdown.
  • ifh-hn 9 hours ago
    I don't agree with this article. I mean sure there's no standard but there is pandoc, and quarto, both of which fill the gaps this article claims. And I also don't write content for LLMs so I don't care whether they can understand it.
  • stonecharioteer 32 minutes ago
    I love RestructuredText. My blog used to be on RST, because I hate markdown. I moved to Hugo and Markdown because I wanted to put out content, not fight the weird system that was Sphinx (My RST blog was running on it), and ablog, the Sphinx blogging framework didn't work with Furo, my favourite theme. I just use Hugo, and I use Claude to fix the css.
  • novemp 1 hour ago
    > Your content isn't just for human readers. Machines use it too. Your content gets indexed by search engines, and parsed by LLMs, and those things parse the well-formed HTML your systems publish.

    Sounds like I need to start using Markdown!

  • tedggh 7 hours ago
    Certainly not holding me back. I can go from crappy notes on a notepad to a polished and branded PDF release including TOC, tables, images and formulas, info/warning boxes, lists, code snippets with syntax highlighting, header/footer, etc in literally minutes. What else do you need?
    • josephg 4 minutes ago
      What else?

      I want figures. I want linked references. I want custom styling for images, and for blocks of text (eg warnings, notes, etc). I want a TOC and numbered chapters and sections. Sometimes I want a bibliography. Or a table generated from data within a JSON file.

      You don't need this stuff for a readme file. But IMO markdown isn't powerful enough for blog posts, documentation or longer form content.

    • Mikhail_Edoshin 55 minutes ago
      Example: I want to explain the role of various files in the development directory. I start with a couple files; then I describe a command that creates a third file. And then I do this several more times, filling up the directory.

      It wold be nice to show the starting list of files, a command, and the resulting list of files. It would also be nice to maybe color-code source and target files for each step, both in the command and in the listing. It may also help to typographically distinquish base files that are written by hand and generated ones. A few pictograms to tell apart files and directories would also be useful.

      And it would be nice to somehow keep this a single process so that a command references a source state and produces the target state and the list of files is computed automatically.

      (Doing this right now with XML and XSLT, targeting PDF via XSL-FO. Drew pictograms in SVG right in the XSLT. Haven't got to the automatic part yet, just got an idea that this is a natural way to go.)

  • random3 9 hours ago
    This is, personally, a controversial topic- I can take both sides of the debate in my head. I use markdown intensely and feel the deficiencies deeply, but wasn't able to see how there are real alternatives given the ecosystem (e.g. Obsidian).

    I do think things are ripe for changes in this space.

  • autogn0me 10 hours ago
    I would like to point out that asciidork provides ability to get AST representation of asciidoc. It’s very nice package. Not the author but have used it.

    https://github.com/jaredh159/asciidork

  • dardeaup 10 hours ago
    This is a timely topic for me. I'm just beginning the writing of a technical book. I plan to target epub/mobi. My research thus far has pointed to markdown -> html -> epub/mobi. If you were going to write a technical ebook would you use markdown or an alternative?
    • codybontecou 10 hours ago
      What about markdown do you feel limits you in your writing process?

      The beauty of markdown is that it’s standardized. If you find your self midway through the book and feel a need to change formats, it’s easy enough to parse and reformat.

      • tasuki 25 minutes ago
        > The beauty of markdown is that it’s standardized.

        It isn't standardized. And that's the main problem.

      • dardeaup 10 hours ago
        Nothing! I was asking from the point of you that you don't know what you don't know.
    • tedggh 7 hours ago
      My stack is Markdown-Pandora-MiKTeX-PDF with Eisvogel for technical documentation and it works great for my use case. Eisvogel has a “book” typeset.
    • WA 9 hours ago
      You need:

      - table of contents

      - automatic chapter and section numbering

      - cross references and automatic tracking of figures, tables etc.

      - different styles besides blockquotes such as info sections, warnings, tips

      Imho, cross-referencing chapters, pages, figures, tables and the lack thereof in Markdown is the first and most important thing to check how you would like this to be solved.

      • ifh-hn 9 hours ago
        Pandoc and pandoc-crossref. Or simply use quarto.
    • ldng 8 hours ago
      How about markdown -> PDF (with Typst) -> epub/mobi ?
      • dardeaup 7 hours ago
        Thanks! I'll look into that as an option.
    • macintux 9 hours ago
      You might look at DocBook. I haven't used it in ~25 years, and then only for short documents, and it is XML hence quite verbose.

      But it's explicitly targeted at technical documentation. If nothing else, searching for DocBook alternatives might give you some ideas.

  • twelvedogs 1 hour ago
    I've never struck any off these problems, and in order to use the tools he suggests I'd have to switch out the systems I use that just support markdown

    I sometimes make documents that require more complex formatting, so I use html after 20 minutes fucking around in word and getting angry

    Tried and trusted process

  • sroerick 10 hours ago
    Org is pretty good.
    • dandersch 9 hours ago
      org-mode could have had a chance if they had provided tooling outside the emacs ecosystem. But now LLMs have chosen markdown, so it's destined to forever remain an obscurity.
  • 0xbadcafebee 9 hours ago
    Markdown is the McDonalds of writing
  • gbanfalvi 9 hours ago
    The other options look like garbage tho
  • somat 8 hours ago
    The whole point of markdown, really it's whole value preposition is that it has nice looking plain text. And don't get me wrong that is a hell of a value to many people, myself included. Yes it is a terrible markup language, And I would encourage anyone doing serious document work to use a language that provides better semantic structure. But I would also argue that all projects that try to add these structures to markdown are missing the point and destroying it by making the plain text ugly.
  • Animats 10 hours ago
    The paper makes the point that people keep extending Markdown, badly and incompatibly.
  • alganet 8 hours ago
    > Markdown Lacks the Structure You Need

    The problem is, I always need more structure. Give me some YAML and time and I'll make hell (not a metaphor, I'll concoct hell itself on it).

    Markdown keeps me honest.

  • khaledh 10 hours ago
    Markdown won. Simplicity always wins. Markdown is now the de facto documentation format, for better or for worse.
  • nathias 10 hours ago
    is this a poignant satire about programmers?
    • hadlock 9 hours ago
      I went to look up and see if this guy was in his early to mid 20s when I got to this point

      > That <Command> tag isn't Markdown at all; it's a React component.

      Turns out he's in his 40s, so he lived through ms word, front page and the JavaScript wars; this is almost certainly satire

      • tefkah 9 hours ago
        i think that specific turn off phrase is more of an indicator of llm usage then age imo