Markdown
I’m writing this post in Markdown. Markdown is a language for formatting a piece of writing simply. For example, if I surround something with two asterisks *like this*
then it is put in italic. Doing the same thing in HTML requires me to type <i>much more</i>
. And visually, in its raw format, markdown makes a lot more sense.
The articles on How a Car Works have gone back-and-forth between HTML and Markdown with every redesign. I’m not even sure what they are stored as now… It’s HTML.
This afternoon I was coding up a system for articles on FrontendHQ and made the decision to go for HTML there too.
I just saw Markdownify, which is a new WYSIWYG-style markdown editor. It made me think that while I love the simplicity of markdown, I’ve given up using it in most use scenarios.
Images
I want control over how my images display in my content. And I usually want them to display in a <figure>
tag. Markdown makes both of these hard and hacky.
I also usually want to reference an image from a local library - I don’t want tying in to a absolute URLs. The most recent way I’ve solved this problem is using a custom markdown image tag. For example, in this blog I use {class:something}
which just starts to get ridiculous.
Why not HTML?
- It’s much more hassle to write by hand.
<p>
tags are easy but<strong>
tags start to get a bit much. So I need a WYSIWYG editor but… - WYSWYG editors still produce mostly horrible markup, and extending them with something like the custom image syntax above becomes a nightmare. That said, I use Redactor on How a Car Works and it works flawlessly and has a nice code mode. But..
- WYSIWYG editing is a terrible experience on mobile, and markdown is very efficient.
As ever, it’s horses for courses but this post has reminded me that I really prefer HTML to markdown. I think markdown is solving two problems:
- Limiting the set of available formatting (which we then bypass by using html tags directly).
- Producing clean HTML markup at the end.
I’m going to explore the latest version of Redactor to see how well it works on mobile.