Why I love Markdown
Tags: webdev, opensource, programming, markdown
Published: 2023-03-08 12:31:20

Markdown is one of those languages to which I was introduced when I started using github for hosting my projects. The famous [`README.md`](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes) file got me into using markdown. That was my first encounter with markdown and since then, I never looked back. Here's why.


> **TLDR** - It's simple! And I love simplicity.


## A little bit about Markdown

Markdown is a markup language which is more easy and efficient to read and write formatted text rather than using HTML. It was created by [John Gruber](https://daringfireball.net/) who is a well-known blogger.

[Markdown](https://daringfireball.net/projects/markdown/) serves as an abstraction which allows you to focus on writing rich text and forget about opening and closing those HTML tags evry now and then.

It then, gets compiled down to regular HTML by a [markdown processor](https://github.com/markdown-it/markdown-it) so that the browser can understand it and display it on the screen.

> *“Thus, 'Markdown' is two things: (1) a plain text formatting syntax; and (2) a software tool, written in Perl, that converts the plain text formatting to HTML.”*
>
> — John Gruber

Reasons why I like to use Markdown:

## 1. It's efficient

Previous to using markdown, I used WYSIWYG editors such as Google Docs and Microsoft Word which are sometimes an overkill when writing a simple blog post.

I spent half of the time looking for tools to format the text, selecting and clicking over buttons with my mouse to get the job done.

With markdown, things get incredibly easy. You just remember the syntax (and it's easy too) by practicing it a couple of times and write as well as format the text without breaking your flow.

```md
> This is a blockquote. The *text* is in italics and this **text** is bold.
```

## 2. Readable Syntax

The [markdown syntax](https://daringfireball.net/projects/markdown/syntax) is easy to remember as well as easy to read when accompanied with text.

The syntax never takes away the soul away from the text. You don't need to worry about those opening and closing tags in HTML.

It enriches the text just the right way.

```html
<!-- list in HTML -->
<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
```

```md
<!-- list in markdown -->
- Item 1
- Item 2
- Item 3
```

## 3. Implementation

You might have heard of different `flavors` of markdown. Flavors of markdown simply extend or customize the markdown syntax.

Different tools supporting markdown may have a slightly different syntax and markdown processing methods.

> *“To wrap your head around the concept of Markdown flavors, it might help to think of them as language dialects. People in New York City speak English just like the people in London, but there are substantial differences between the dialects used in both cities.”*
>
> — markdownguide.org

I like the idea of having different implementations because it opens the door for new ideas to emerge. But, it comes at a cost. There is no **standard specification** for markdown implementation and this is why some people prefer [not to use markdown for certain purposes](https://ericholscher.com/blog/2016/mar/15/dont-use-markdown-for-technical-docs/).

## Markdown is Not Perfect

After working with markdown for a good amount of time, I realised that it is extremely [good for certain things](https://www.markdownguide.org/getting-started/#whats-markdown-good-for) but [not good for certain things](/blog/adding-custom-anchors-to-headings-in-markdown-eleventy-3NxBhIJO2OIr4XOj5LKc/).

Let's say you want to add a class to your paragraph element but using markdown. There is no way of doing so. What I did, and what most people do is that they add plain HTML into the markdown file.

```md
## Heading 2
<p class="desc">
    Description
</p>
```

## Final words

Markdown works really well if you use it to create some kind of written content in the form of blogs, notes, etc. Where it lacks is standardization. If you are using a specific tool to process your markdown, you can't switch to another tool instantaneously. You may need to modify your markdown syntax as per the requirement of the new tool. I think that's the biggest drawback.

> This post was originally published in [Syntackle](https://syntackle.live/blog/why-i-love-markdown-Ib00ES/).