I was looking for something like this, but would love if it had CV formatted doc. I just want something easy to update, but easier to version control Vs docx.
You can achieve any layout you want thanks to the .row, .column and .grid function. A built-in CV template library is planned for the next minor release (https://github.com/iamgio/quarkdown/issues/472)
Myst with Sphinx is great. I miss strong LSP support though—or at least I didn’t manage to get it run in helix.
I built my blog with pydata-sphinx-theme and myst
I would really like to see a comparison of all these tools/markup languages:
- MyST
- Pandoc
- Quarkdown
- Quarto
- Typst
Quarto and pandoc both use Pandoc Markdown (and so does https://www.zettlr.com/). But Quarkdown and Typst offer programmable markup languages like LaTeX (or HTML + Javascript). It seems the winner for the title official LaTeX successor is still not decided.
Memories are failable :) Here is the PR you merged June of last year, changing the file extension from `.qmd` to `.qd` after a discussion about Quarto: https://github.com/iamgio/quarkdown/pull/90
I am currently enjoying WYSIWYG with GNU TeXmacs for long-form or scientific text editing. Both, the concept and the tool, are amazingly capable and a breath of fresh air after all the LaTex, Markdown, Org s …
Almost nobody uses TeXmacs it because those who might be interested need LaTeX and its packages. This is not LaTeX. (In the future these authors might all be using Typst, but not this thing.)
I've produced a staggering variety of documents with Typst. Books, booklets, slides, cards, documentation, everything. In most cases I only need a minimum of custom styles and behaviors at the top, and very occasionally a whole styling module. Blows the rest of these tools out of the water full stop.
I used (and will continue to use) most of those. Quick rules of thumb:
- markdown is .txt with just a tiny bit of syntactic sugar/syntax highlighting, and you can export it to pdf or html
- quarto is markdown-but-I-want-to-execute-code-blocks-inside
- typst is latex but modern, with 90% less cruft and 10% less functionality (academia, hating everything modern, will also hate you if you use typst)
- pandoc is how you export to pdf/html/whatever
By and large, it’s obvious which tool is needed when. There’s of course more, like asciidoc, but I struggle to think what isn’t being covered by the markdown/quarto/typst combo. Some wysiwyg editor maybe?
No issues per se, but academic publishing has deep roots in the latex ecosystem. So templates from publishers are often not available in typst, or the publisher insists on a latex formatted file.
Often supervisors/professors etc will also resist using typst because of the cognitive overhead on their already oversubscribed time. Typst has about 40 years of history to overcome and that will take a long time to do.
They made a new format with basically no accessibility. We finally got latex usable by blind people with acceptable html output, I’m not moving to something worse.
The HTML generated by LaTeX is currently very good (you can read basically every paper on arXiV in HTML). The html generated by Typst just.. doesn't really work currently. I checked a few weeks ago, tables didn't output sensibly. Looking at the docs their plan doesn't seem to be to aim for total coverage in general.
I've been testing it out by using it to create the quizzes for a course I'm teaching this semester. My conclusion is that it's well worth finding a way to try it out. Drastically reduces the amount of boilerplate.
(I haven't yet tried to write a full paper in it.)
I don't care about missing features, but I just want a way to export to latex using typst.
It's okay if this is not the day to day tool used to render, but this should be possible. It's just a compiler between two languages, and latex happens to be Turing complete (and can display arbitrary things to a PDF), so it's 100% in the "not impossible" category
With such a tool nobody has to know if you use typst personally. Just like, say, nobody has to know you use jj rather than git
- paged.js[0] heeds the slow crawl towards the CSS paged media module, eventually allowing some truly great page-setting DX out-of-the box which it currently polyfills.
Yeah, I would really like if people who introduce a new project to an already very crowded space would start the introduction with "Why MyCoolProject instead of X?" section.
I really wanted to like Typst. No more latex would be fantastic. Decided to use it for a project, and had to give up and return to latex, just too many corner cases. Both things its missing from latex, and lack of Pandoc convertibility. Really hope it gets the last 10%
I don't think Typst fits in this list. They never claim to be some sort of markdown or have any overlap with it, and their core product is the compiler, not the language. Just because they added some syntactic sugar that sometimes somewhat resembles markdown doesn't make it a competitor.
That "syntactic sugar" encompasses the entire value proposition of markdown, there's nothing stopping you using Typst to author blog posts or take notes, they even have HTML export.
Pandoc lives in a different tier because it gives you arbitrary filters so you can do any transformation you want on the intermediate JSON format. And it converts anything to and from that JSON format. So I prefer Pandoc based systems because anything the tool doesn't do that you want is probably implementable with a simple inline filter.
I agree with your preference, also largely because of filters. But note that the intermediate format is Pandoc’s internal abstract syntax tree, not JSON (https://lwn.net/Articles/1064692/).
The older filter mechanism acted on a JSON serialization of the AST, but the current recommendation is to use Lua filters that work with the internal AST directly.
On a quick read of the docs I'm a bit worried Quarkdown doesn't have the right evaluation model for the job. Text layout typically iterates to a fixed point, because adjusting the layout of one part of the document can throw out layout at another part, require another layout pass and so on. Typst has the concept of context[1] for this. I didn't see anything in Quarkdown that seemed similar, though perhaps I missed it.
I switched from pandoc / md / LaTex to Typst for my book[2], and have been very happy with it. Programming in a modern language is nice, and Typst is much faster than pandoc + LaTex.
It's nice in that it extends markdown rather than reinventing a different syntax.
But the point of markdown, is to simply, markdown. Everything beyond that is deemed superfluous and cumbersome as it would defeat the point. Just write things down.
It's the right balance between plain text and latex and the rest.
The nice thing is that with LLMs using markdown we are getting a nice ecosystem for a universal method for communicating textual information. The negative is that Markdown is starting to look like the https://xkcd.com/927/ cartoon.
The silly part is having n+1 Markdown standards that all end up rendering as HTML anyway. Personally if it's a plain text file sure, basic Markdown is fine, beyond that just give me some kind of rich text editor that stores as HTML and let me do whatever and not have to hand format a Markdown table.
LLM's are an extension of us. We sometimes have to work to learn something new; so do LLM's. It's all in how we manage that process. Reifying information is the whole ball of wax, what separates different people's success rates using AI. AI is more surfboard than self-driving car; you don't just tell it which way to go.
I still can't get AI to code well in Lean 4, but I'm writing a parser for a language that doesn't exist. AI understands the language as well as I do.
I don’t think adding things to markdown is a good way to go. Markdown is just a poor language, period. Alternatives like Asciidoc make much more sense IMHO.
I like the fact it doesn’t require you to install anything to get a great experience.
Despite being in the browser, the content of SDocs rendered Markdown files remain local to you. SDoc urls contain your markdown document's content in compressed base64 in the url fragment (the bit after the `#`):
https://sdocs.dev/#md=GzcFAMT...(this is the contents of your document)...
As an SSG user, I prefer the cleanest markdown as input, and putting all the formatting details into the CSS. E.g. I don't need `.abstract`, the CSS will format the first paragraph as an abstract without me asking explicitly.
OTOH I see this as a way to produce more rich self-contained documents. There's no CSS, but there's a bunch of predefined styling options. I can't help but see the early HTML in it. HTML 1 did not have colors and barely any formatting, comparable to Markdown. HTML 3 had stuff already like <center>, etc.
I guess yea I'm impressed, but to me the whole point of Markdown is that it's dirt simple. You can edit it and use it without any kind of GUI and have a pretty good idea what you are going to get. You can create it in VIM in a terminal, and trust what you did is going to look fine. Heck you can just look at the raw .md file and read it just fine.
But then you start adding to it. Soon you find yourself looking up all the odd new commands. And wishing for a WYSIWYG editor because you can't remember the commands or not sure what it will look like without the live render.
It's a bit like saying, "Hey this QWERTY keyboard is nice, but what if it had keys for all the Cyrillic, Devanagari, Chinese, and Arabic characters too? Wouldn't that be great?" Well, yea. But you just put the hunt back in hunt and peck.
Now you're cooking with gas. Maybe it could be some sort of semantic markup language so we can separate and annotate things like titles, headers, links, and all of that stuff.
I would like to include some dynamic content in my documents. Could we include some kind of simple scripting language?
Maybe call it something like that really popular, Java language? But of course, have it share no concepts with Java, because that would be too straightforward.
"updoc" is still my favourite joke name. A long time ago (predating E lang's updoc afaict) I wrote a toy markup for semi-technical docs, named so with the specific intention of dropping it casually into conversation. Still funny :D
That's a good argument. However, Quarkdown is still a strict upgrade over typing latex directly or whatever, and you get more predictable results and better compatibility with LLM-assisted editing than with a GUI editor like Word.
To me, one of the big features of markdown is it's half WYSIWYG.
By that I mean, the basics reuse the way we faked formatting to do real formatting. The input is (usually) perfectly readable on its own.
Even if you don't know (or remember) how to author a markdown file, you can probably still read it just fine. The tables still look like tables. The paragraphs are just paragraphs.
I do still have to look up how to do stuff in markdown sometimes. And that's fine. Your active vocabulary is always smaller than your passive one.
So the way I judge this is by how readable the input is.
I'm not sure how well they succeeded at that. A lot of what they show doesn't really add to or take away from that.
But I didn't see any examples of them formatting math. I only rarely use LaTex. And when I do, it's not because I need a "paged" mode or need to include an author. It's because I need to format something markdown can't do, and that's usually a math equation.
I think that's an interesting idea, but you hit the landing page and there's loads of syntax thrown in your face and you're like, man, I need to learn a lot.
But I think this kind of brings up another problem, which is that you can choose not to use stuff if you're writing, but if you're reading other people's docs or editing them, then you need to know all the syntax they use. Most OSS projects with markdown docs today, anyone can open an MR to improve them.
As I'm writing a small markdown renderer, I find it difficult to even find a name for it, let alone get people to use it once it's ready. So I guess the ol' Markdown is too standard for a "plain markdown" editor to stand out today. Only tools that are polished and dare-I-say full of features beyond normal markdown can stand out from normal Markdown editors to make it into the front page of HN. Sort of natural selection I guess.
I was just reflecting on what I saw/thought! But sure, take it as a compliment, the website and branding are amazing, I'm (positively) jealous of how good they reflect on the product, congrats.
Quarkdown author and project lead here. I started Quarkdown as a uni research project and couldn't imagine what it would end up being 2 years later. Thanks for engaging! I'll try and respond to your comments.
It strikes me as odd to add functions to a text format, given that even in GUI documents macros are usually avoided. Was Quarkdown designed for complex and repetitive documents?
Quarkdown was designed for control. Simple Markdown to define content, functions (LaTeX-style, but not macros!) for a declarative approach to document format and styling.
Scripting came out naturally, so why not. Since v2 QD comes with a permission system that makes things safer.
I know this is a throwaway joke, but I was interested anyway...
According to my own local Markdown formatters, the answer would be both "usr" and "bin", with the surrounding slashes removed, but the internal slash remaining. In other words:
usr/bin
(but underlined instead of italic!)
Of course, this problem is nothing new since a filename might easily be named `_my_file_`.
RFC 1855, Netiquette Guidelines[1], specifies underscore for underlining. However, it says asterisks are for emphasis, not bold, per se. They just happened to (often?) display as bold because italics in terminals weren't a common thing. For the same reason, using /'s for italics didn't make much sense except maybe in word processors. I also suspect underscore become conflated with asterisk because some people preferred using the former for emphasis--people weren't usually trying to adhere to professional styling guides, and some people may have preferred underlining to impart emphasis, or just got into the habit without thinking about it.
I don't know how well RFC 1855 reflected common practice, though. It might be worthwhile to check the rendering code in clients like tin and mutt.
Since this seems to boil down to personal choice, has anyone considered a customisable alternative? Like a frontmatter that declares which character is bold, which is italic. You could easily convert between them according to local preference, much like tabs/spaces.
By the Standard Model of Physics Software you can edit Quarkdown in Atom to get Quarkup and change your Neutron Mail to Proton Mail, but it only works if you type with your left hand and create an Electron app and an anti-Neutrinos AI blogpost.
So this is actually competing in the typesetting space, likely with Typst. Both aim to become a simpler alternative to LaTeX without that pain in the ass.
I think they are missing an opportunity to fix a poor design decision in Markdown. Instead of **bold** and *italic*, it should be *bold* and _italic_. That extra asterisk really makes it inconvenient to edit Markdown on a phone or tablet. I hope they fix that in v3.
Quarkdown is a step in the right direction. One step closer to HTML.
Tough call. I think Markdown is not an authoring tool at all. In fact if you read through the changelog of GitHub Markdown, you will read a very detailed critique of the shortcomings of MD.
It isn’t a specification. This is MD’s biggest weakness as well as strength.
## can be a subheading or heading level 2.
How about an empty line between paragraphs or after headlines?
After reading this I consider MD an idea. A fantastic idea but not a spec.
Org is what you're looking for. Org Mode in Emacs, and all the org-* packages that make it so unbelievably useful. LaTeX integration, task management, scheduling, word processing, embedded images (if you must)... Org.
I having a proofreading project and have been storing structured text using an s-expr serialization of XML. But MD is just so convenient that I decided that starting from scratch and building around the idea made sense. I considered typst for a while but... while it is a good intermediate format if you want to produce PDFs, it is not a good and permanent storage format. Even looked at quarkdown I believe. Same opinion.
So I came up with a mini markup language built around directives and fenced blocks. A simple template import allows MD semantics (the stuff I care about) in the project. The idea is that the core is stable. You simply write schema validators for your schema and transformers for the output format. Probably 2-300 lines of python all-in-all for a "book+chapters" schema with an html transformer.
I did not fall into the trap of implementing a Turing complete programming language in it like so many other systems. If you want behavior, piggyback on directives and write a python transformer to manipulate the AST.
I got interested in something else soon after, so it will probably be a few more months till I have the time and the inclination to finalize and publish everything.
Been using Typst recently and really like it compared to LaTex. Pretty nice way to write things out and kinda like markdown in some ways but completely different in others. In my mind it's like a Markdown LaTex hybrid.
The wiki explains Quarkdown’s concept of subdocuments. A subdocument gets created when linking to another Quarkdown/Markdown file and populates a graph. Subdocuments inherit the linker’s properties but are then independent sandboxes that get compiled independently.
A cross-subdocument cross-reference is such a niche use case that I don’t feel like it should break this design choice.
How does it replace Obsidian though? I somehow think the author does not fully understand that knowledge management systems are inherently interactive and need to handle queries like in databases because they are databases.
- MyST
- Pandoc
- Quarkdown
- Quarto
- Typst
Quarto and pandoc both use Pandoc Markdown (and so does https://www.zettlr.com/). But Quarkdown and Typst offer programmable markup languages like LaTeX (or HTML + Javascript). It seems the winner for the title official LaTeX successor is still not decided.
It seems like a well designed and thorough superset of markdown.
https://djot.net/
- markdown is .txt with just a tiny bit of syntactic sugar/syntax highlighting, and you can export it to pdf or html
- quarto is markdown-but-I-want-to-execute-code-blocks-inside
- typst is latex but modern, with 90% less cruft and 10% less functionality (academia, hating everything modern, will also hate you if you use typst)
- pandoc is how you export to pdf/html/whatever
By and large, it’s obvious which tool is needed when. There’s of course more, like asciidoc, but I struggle to think what isn’t being covered by the markdown/quarto/typst combo. Some wysiwyg editor maybe?
Often supervisors/professors etc will also resist using typst because of the cognitive overhead on their already oversubscribed time. Typst has about 40 years of history to overcome and that will take a long time to do.
Also, it’s possible, using some Pandoc magic², to enjoy aspects of Typst markup while generating a LaTeX document.
1 https://lwn.net/Articles/1037577/
2 https://lee-phillips.org/typstfilters/
I chuckled. I'd love to try out typst when the time comes. But for writing a journal paper, it's still going to be latex.
(I haven't yet tried to write a full paper in it.)
It's okay if this is not the day to day tool used to render, but this should be possible. It's just a compiler between two languages, and latex happens to be Turing complete (and can display arbitrary things to a PDF), so it's 100% in the "not impossible" category
With such a tool nobody has to know if you use typst personally. Just like, say, nobody has to know you use jj rather than git
It can take a long time to draft such comparisons; I crafted one for my own Markdown editor, which uses ConTeXt instead of LaTeX:
https://keenwrite.com/blog/2025/09/08/feature-matrix/
Feel free to use it as a starting point for your own research.
[0]: https://pagedjs.org
The older filter mechanism acted on a JSON serialization of the AST, but the current recommendation is to use Lua filters that work with the internal AST directly.
I switched from pandoc / md / LaTex to Typst for my book[2], and have been very happy with it. Programming in a modern language is nice, and Typst is much faster than pandoc + LaTex.
[1]: https://typst.app/docs/reference/context/
[2]: https://functionalprogrammingstrategies.com/
I try to support multiple formats on my app: typst, mdx, marp, reveal, latex.
i think it should be possible to add support for quark down too
https://sublimated.com/docs/typst https://sublimated.com/docs/typst/demo/article.typ
But the point of markdown, is to simply, markdown. Everything beyond that is deemed superfluous and cumbersome as it would defeat the point. Just write things down.
It's the right balance between plain text and latex and the rest.
I still can't get AI to code well in Lean 4, but I'm writing a parser for a language that doesn't exist. AI understands the language as well as I do.
The prevalence of Markdown from agents made me work on something similar too. My Show HN for a similar cli + web based solution (https://sdocs.dev) was on the /show page a few days ago (https://news.ycombinator.com/item?id=47777633).
Sdocs is cli -> instantly rendered on web
I like the fact it doesn’t require you to install anything to get a great experience.
Despite being in the browser, the content of SDocs rendered Markdown files remain local to you. SDoc urls contain your markdown document's content in compressed base64 in the url fragment (the bit after the `#`):
The url fragment is never sent to the server (see https://developer.mozilla.org/en-US/docs/Web/URI/Reference/F...: "The fragment is not sent to the server when the URI is requested; it is processed by the client").The sdocs.dev webapp is purely a client side decoding and rendering engine for the content stored in the url fragment.
This also means you can share your .md files privately by sharing the url.
I’m working on a few new features at the moment:
1. Commenting (so you can easily comment on a markdown file and feed that back to your agent)
2. A powerful slides functionality
OTOH I see this as a way to produce more rich self-contained documents. There's no CSS, but there's a bunch of predefined styling options. I can't help but see the early HTML in it. HTML 1 did not have colors and barely any formatting, comparable to Markdown. HTML 3 had stuff already like <center>, etc.
I think we can have this as a plugin in https://voiden.md/
But then you start adding to it. Soon you find yourself looking up all the odd new commands. And wishing for a WYSIWYG editor because you can't remember the commands or not sure what it will look like without the live render.
It's a bit like saying, "Hey this QWERTY keyboard is nice, but what if it had keys for all the Cyrillic, Devanagari, Chinese, and Arabic characters too? Wouldn't that be great?" Well, yea. But you just put the hunt back in hunt and peck.
I shall call it Microsoft Word.
Maybe call it something like that really popular, Java language? But of course, have it share no concepts with Java, because that would be too straightforward.
By that I mean, the basics reuse the way we faked formatting to do real formatting. The input is (usually) perfectly readable on its own.
Even if you don't know (or remember) how to author a markdown file, you can probably still read it just fine. The tables still look like tables. The paragraphs are just paragraphs.
I do still have to look up how to do stuff in markdown sometimes. And that's fine. Your active vocabulary is always smaller than your passive one.
So the way I judge this is by how readable the input is.
I'm not sure how well they succeeded at that. A lot of what they show doesn't really add to or take away from that.
But I didn't see any examples of them formatting math. I only rarely use LaTex. And when I do, it's not because I need a "paged" mode or need to include an author. It's because I need to format something markdown can't do, and that's usually a math equation.
So I am curious how that ends up looking.
But I think this kind of brings up another problem, which is that you can choose not to use stuff if you're writing, but if you're reading other people's docs or editing them, then you need to know all the syntax they use. Most OSS projects with markdown docs today, anyone can open an MR to improve them.
Thank you for volunteering to field questions.
Scripting came out naturally, so why not. Since v2 QD comes with a permission system that makes things safer.
I wonder.
> Since v2 QD comes with a permission system that makes things safer.
That’s why not.
You got your JavaScript in my HTML.
Seriously though… it might be a useful feature. Or it could kill your product’s focus. Sincerely, good luck.
I have always believed that instead of **bold** and *italic*, it should be *bold* and _italic_.
That extra asterisk is a poor design decision in markdown. It really makes it inconvenient to edit Markdown on a phone or tablet.
I’m sure back in the old days of READMEs, long before markdown was a thing, the conventions were this:
According to my own local Markdown formatters, the answer would be both "usr" and "bin", with the surrounding slashes removed, but the internal slash remaining. In other words:
usr/bin
(but underlined instead of italic!)
Of course, this problem is nothing new since a filename might easily be named `_my_file_`.
But also, this convention predated rendering text/plain as text/html
I don't know how well RFC 1855 reflected common practice, though. It might be worthwhile to check the rendering code in clients like tin and mutt.
[1] https://datatracker.ietf.org/doc/html/rfc1855
I think they are missing an opportunity to fix a poor design decision in Markdown. Instead of **bold** and *italic*, it should be *bold* and _italic_. That extra asterisk really makes it inconvenient to edit Markdown on a phone or tablet. I hope they fix that in v3.
Tough call. I think Markdown is not an authoring tool at all. In fact if you read through the changelog of GitHub Markdown, you will read a very detailed critique of the shortcomings of MD.
It isn’t a specification. This is MD’s biggest weakness as well as strength.
## can be a subheading or heading level 2.
How about an empty line between paragraphs or after headlines?
After reading this I consider MD an idea. A fantastic idea but not a spec.
Org is what you're looking for. Org Mode in Emacs, and all the org-* packages that make it so unbelievably useful. LaTeX integration, task management, scheduling, word processing, embedded images (if you must)... Org.
So I came up with a mini markup language built around directives and fenced blocks. A simple template import allows MD semantics (the stuff I care about) in the project. The idea is that the core is stable. You simply write schema validators for your schema and transformers for the output format. Probably 2-300 lines of python all-in-all for a "book+chapters" schema with an html transformer.
I did not fall into the trap of implementing a Turing complete programming language in it like so many other systems. If you want behavior, piggyback on directives and write a python transformer to manipulate the AST.
I got interested in something else soon after, so it will probably be a few more months till I have the time and the inclination to finalize and publish everything.
A cross-subdocument cross-reference is such a niche use case that I don’t feel like it should break this design choice.
Kidding aside, that kind of misses the point of either.
I feel like a lot of people don't know about the power of the roff suites and that it is installed by default on a lot of systems.
> Kidding aside, that kind of misses the point of either.
I agree, in my view markdown is good because it is simple, if you want to use a proper markup language use roff.