Markdown, Asciidoc, or reStructuredText – a tale of docs-as-code
I tend to agree with the author&#x27;s sentiment re: Asciidoc, but that is a subjective impression, driven by my industry and the requirements it imposes.<p>Here. Let me tell you a story.<p>Some  years ago, Leadership in &lt;COMPANY REDACTED&gt; decided to stop paying for the S1000D[1] software. This would make the publications group effectively homeless. The objective of this tactic was to force a move to the PDM system&#x27;s tech writing system, which had previously been rejected by more or less everyone.<p>I put out a plan[2] to keep the S1000D architecture (filenames, books, links, etc) but use lightweight markup and open standards from the programming industry, to do the actual writing. Which lightweight markup language?  I needed the following:<p>* Transclusion, need to bring in files (data modules) from a centralized publication module<p>* Partial Transclusion, need to be able to bring in part of another file, what would be called CIRs in S1000D<p>* Conditional content, usable inline, so that a step or a figure could be toggled on and off depending on a condition set in the Publication Module. This emulates Applicability in S1000D.<p>* Complex print output<p>* Nice-to-haves: an AST that maps to a legacy format aka DocBook&#x2F;DITA&#x2F;S1000D&#x2F;MIL-STD-38784&#x2F;etc; publishing pipelines capable of weird 
 crap like complex front matter, TOC, indices, header&#x2F;footer&#x2F;margin running content; a singular standard that had some life in it<p>I took pretty much every lightweight markup variant out for a spin with a test migration and publish, on my own time, nights and weekends. I found that there was a Markdown variant that could <i>almost</i> do everything I wanted, but it had a dependency on a document processor. ReST functionality similarly depended on notebooks and Sphinx. LaTeX HTML pipelines were a bit janky and hard to set up on Windows. Neither really tied to a legacy XML format, which limited round-tripping with something as insane as S1000D. And the print options for both ReST and MD were not where I needed them, particularly for tables, but also for running content. Asciidoc came the closest to checking off all the boxes for me.<p>Anyway, it happened, it worked, I did it. But it hit business process problems. Stuff that would have hit any new instance of a pubs too. Like &quot;we don&#x27;t actually know which plane parts can work with each other&quot; or &quot;SMEs will never ever ever do a review in a text editor . . or electronically . . or in anything but a dead tree&quot; or &quot;a few writers don&#x27;t know what the scroll wheel on the mouse does&quot;[3] or . . eh, take your pick. I ate my own gun, though, and left. They&#x27;re still using it - and probably still cursing my name - to this day. But that had been one of my big goals[4]: S1000D architecture on lightweight markup.<p>So. Lightweight markup. I haven&#x27;t continued to shop around, and I probably should. For one, I&#x27;m of the growing opinion that inline conditional content is a mistake as a general design, and that the conditionals should probably live in the processing layer. That&#x27;s a big chunk of the requirement covered by Asciidoc&#x27;s `include` directive. For another, I won&#x27;t deny that the Markdown ecosystem is about 100x the Asciidoc ecosystem, due to the much greater dev count with the JS ecosystem vs the Ruby ecosystem. Some of the toys in Markdownland are worth the move all by themselves. And round tripping S1000D? You can&#x27;t even round trip S1000D with itself.<p>Then again, there&#x27;s so many damn MD variants. .<p>[1] XML vocabulary for documentation of mil&#x2F;aero systems. Think DITA but a million times more complicated. And a new Issue every two years, without any commonality in the scope.<p>[2] This was a mistake, as I made lasting enemies of the PDM boosters, who counted some executives among them. I would have been better off keeping my mouth shut and letting the whole thing sink into the ocean.<p>[3] And had no interest in finding out, either. &quot;You&#x27;re trying to turn us into programmers, with this git and text stuff!&quot;. No, no I am not, and if you ever want to work outside this sector you&#x27;ll want to learn what git is.<p>[4] Should probably mention that annual per seat license costs for the big S100D solutions were pushing past 30k, with reviewer licenses lagging not far behind that. Not including the setup costs, or the consultants that will have to fly down for every tweak and button. I could not, for the life of me, figure out how anyone manages to pay for that in avionics, where the margins are razor thin. Turns out they don&#x27;t, they just deeply discount their products so the OEM can &quot;show them how it&#x27;s done&quot;. Effectively they&#x27;re paying their suppliers with dollars that can only be spent with the OEM.