Why It Is So Complicated to Style Things in Markdown (and Other Markup Languages)

Markdown was created to be simple and plain. Its main goal is to ensure information availability and portability.

It achieves this by implementing a minimal structure and leveraging HTML: another markup language where formatting is described in the file itself, but still remains legible as plain text. Following the same philosophy, Markdown separates content from formatting.

Why Styling Feels Complicated

Tools like Obsidian or vscode usually render Markdown into HTML and then apply formatting rules. Some allow custom formats, but this happens after the Markdown has been translated into HTML. At that stage, layout and styling are controlled by CSS stylesheets.

If you use Markdown with a LaTeX tool, for example, you’d need to style the output using LaTeX’s own syntax.

This separation is intentional: unlike word processors, where formatting is embedded in the file itself (and often not portable), Markdown prioritizes clean text that can be read anywhere. Think of the difference between a native Word file and an RTF file, or what happens when you open Microsoft Office documents in Open Office: formatting may break, but the text remains.

Advantages of This Approach

Yes, there are clear benefits:

Consider LaTeX: documents are full of inline formatting commands. HTML can also become noisy, especially when tools insert inline styles. In both cases, changing formatting requires editing multiple instances.

With Cascaded Stylesheets, you define presentation once, and the entire document updates automatically. This is what makes Markdown so portable and widely supported (even Google Docs can export to Markdown).

What Can You Do for Prettier Outputs?

It depends on the tool you’re using:

Ultimately, the balance is between simplicity and control. Markdown gives you portability and clarity, but styling requires stepping outside the document itself.

Conclusion

Styling in Markdown feels complicated because it was never meant to be embedded in the text. That’s by design. The trade-off is worth it: you gain universal readability, portability, and the ability to separate what you write from how it looks.

If you want prettier outputs, the path is through themes, stylesheets, or external processing, not through Markdown itself.