Markdown uses punctuation-based syntax to format text, drawing inspiration from plain text email conventions. The goal is for Markdown documents to be easy to read. For concerns that the specification does not cover, users are free to use HTML. However, the HTML tags that rendering engines support vary considerably. Further, some rendering engines have their own approach to extensions, like shortcodes in Hugo. Generally, best practice is to avoid mixing Markdown and HTML, as doing so can detract from Markdown’s intended simplicity and readability.
The following items are exceptions to this rule—cases where HTML provides functionality or control that Markdown does not.
| HTML Tag(s) | Description | Notes |
|---|---|---|
<details> and <summary> | Create collapsible sections for hiding and revealing content. | 1 |
<kbd> | Represent keyboard inputs or shortcuts. | — |
<abbr> | Add tooltips to abbreviations for clarity. | 2 |
<sup> and <sub> | Format text as superscript or subscript. | — |
<mark> | Highlight text with a background color. | 3 |
<!-- ... --> (HTML Comments) | Insert comments that won’t appear in the rendered output. | 3 |
<img> | Embed images with enhanced control over attributes like class, style, width, and height. | — |
<div> | Apply specific styles elements, such as centering an image, to a section of text | |
<var> | Represent variables, parameters, or mathematical symbols to add semantic clarity in technical documentation. | 4 |
<samp> | Denote sample output from programs or command-line operations, helping readers distinguish between code input and output. | 4 |