Advanced Markdown: Footnotes, Mermaid Diagrams, Math Formulas, and More
Table of Contents
Footnotes Mermaid Diagrams Flowcharts Sequence Diagrams Gantt Charts LaTeX Math Equations Callouts & Alerts Custom Containers Definition Lists Highlight & Mark Text Emoji Shortcodes Where Each Feature Works FAQBasic Markdown gets you 80% of the way there. But the remaining 20% — footnotes, diagrams, math formulas, and interactive elements — is what separates a good document from a great one.
This guide covers the advanced Markdown features that most tutorials skip. Not all of them work everywhere (we will show you exactly where each one is supported), but mastering these will make your documentation, blog posts, and technical writing stand out.
To test any of these features in real time, use the MarkdownMaster online editor with live preview.
Footnotes
Footnotes let you add citations, clarifications, or asides without cluttering the main text. They are supported by most Markdown renderers, including GitHub, Pandoc, and many static site generators.
Syntax:
Here's a statement that needs a footnote.[^1]
More text here.
[^1]: This is the footnote content. It appears at the bottom of the document. How it renders: The [^1] in the text becomes a superscript link. Clicking it jumps to the footnote definition at the bottom of the document. Clicking the footnote's ↑ link jumps back to the reference point.
You can have multiple footnotes in a single document:
Markdown is great for formatting[^formatting]. It also supports tables[^tables].
[^formatting]: Bold, italic, strikethrough, and inline code.
[^tables]: GitHub-flavored Markdown includes table syntax. Tips:
- Use descriptive labels like
[^security-note]instead of numbers — easier to manage in long documents - Footnotes can contain multiple paragraphs. Indent the second paragraph with two spaces
- Footnote references can appear anywhere in the text — mid-sentence, in tables, even inside blockquotes
- GitHub renders footnotes correctly in Markdown files (README, wiki) but not in comments or issues
Mermaid Diagrams
Mermaid is a JavaScript-based diagramming tool that renders text definitions into diagrams. Write the diagram in plain text inside a code block with the mermaid language identifier, and compatible renderers turn it into a chart.
GitHub, GitLab, Notion, Obsidian, and many documentation tools support Mermaid natively. Note: The MarkdownMaster editor does not render Mermaid in the preview pane yet, but the exported HTML can include a Mermaid renderer.
Flowcharts
Flowcharts show processes, workflows, or decision trees. They are one of the most common diagram types in technical documentation.
```mermaid
graph TD
A[Start] --> B{Is it Markdown?};
B -->|Yes| C[Use MarkdownMaster];
B -->|No| D[Convert to Markdown];
C --> E[Export HTML/PDF/MD];
D --> E;
E --> F[✅ Done];
``` Key syntax elements:
graph TD— Top-down direction. UseLRfor left-to-right[]— Rectangle (process step)— Diamond (decision)()— Rounded rectangle (start/end)-->— Arrow (solid)-.->— Dotted arrow==>— Thick arrow- Text on arrows:
--Label text-->
Sequence Diagrams
Sequence diagrams show interactions between components over time. They are essential for documenting API flows, authentication workflows, and multi-service architectures.
```mermaid
sequenceDiagram
participant User
participant Editor
participant Preview
User->>Editor: Type Markdown
Editor->>Preview: Parse & Render
Preview-->>User: Show live preview
User->>Editor: Click Export
Editor->>User: Download HTML/MD file
``` Key syntax elements:
participant— Declares an actor or system component->>— Solid arrow (synchronous call)-->>— Dotted arrow (async response)--x— Loss/error arrowNote right/left of— Side notes on the diagramactivate/deactivate— Show lifetime bars for actors
Gantt Charts
Gantt charts visualize project timelines and task dependencies. Useful for README roadmaps, project planning documents, and status updates.
```mermaid
gantt
title Project Timeline
dateFormat YYYY-MM-DD
section Planning
Requirements :done, 2026-01-01, 14d
Design :active, 2026-01-15, 21d
section Development
Frontend :2026-02-05, 30d
Backend :2026-02-05, 30d
section Release
Testing :2026-03-07, 14d
Launch :2026-03-21, 3d
``` Key syntax elements:
dateFormat— Define the date format used in your taskssection— Group related tasks under a heading:done— Mark a task as completed:active— Mark task as currently in progress:crit— Mark as critical path- Duration format:
start, duration(e.g.,2026-01-01, 14d)
LaTeX Math Equations
Mathematical notation in Markdown uses LaTeX syntax, rendered by libraries like MathJax or KaTeX. GitHub, Jupyter Notebooks, Obsidian, and many academic platforms support this.
Inline math uses single dollar signs:
The quadratic formula: $$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$ Display math uses double dollar signs or \\[ ... \\]:
Inline math: $E = mc^2$
Block math:
$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$ Matrices:
\[
\begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{bmatrix}
\] Piecewise functions:
\[
f(x) = \begin{cases}
x^2 & \text{if } x \geq 0 \\
-x^2 & \text{if } x < 0
\end{cases}
\] Common LaTeX math commands:
| Symbol | Command | Symbol | Command |
|---|---|---|---|
| α | \\alpha | β | \\beta |
| ∑ | \\sum | ∫ | \\int |
| √ | \\sqrt | π | \\pi |
| ∞ | \\infty | ≠ | \\neq |
| → | \\rightarrow | ≈ | \\approx |
| ∂ | \\partial | ∇ | \\nabla |
Note: LaTeX math requires a rendering library. The MarkdownMaster editor does not render math in preview, but you can paste the output into a GitHub README or Jupyter notebook for rendering.
Callouts & Alerts
Callouts (also called admonitions or alerts) draw attention to important information. Different platforms support different syntaxes:
GitHub Alerts (2024+):
> [!NOTE]
> Useful information that users should know.
> [!TIP]
> Helpful advice for doing things better.
> [!IMPORTANT]
> Crucial information that users must follow.
> [!WARNING]
> Content that could lead to problems if ignored.
> [!CAUTION]
> Potentially dangerous or destructive actions.
Obsidian callouts:
> [!note] Title
> Content here.
> [!warning] Security Warning
> Do not expose API keys in client-side code.
Obsidian also supports: [!info], [!todo], [!tip], [!success], [!question], [!failure], [!danger], [!bug], [!example], [!quote].
Pandoc / MkDocs admonitions:
::: note
This is a note.
:::
::: warning
This is a warning.
:::
Callouts are a great way to break up long walls of text and make important information visually distinct. Use them sparingly — if everything is a callout, nothing is.
Custom Containers (Markdown Extended)
Some Markdown processors (VuePress, Docusaurus, MkDocs) support custom containers — styled divs with labels. They extend the callout concept to arbitrary content:
::: tip
**Pro tip:** You can nest Markdown inside containers, including code blocks and lists.
:::
These are not standard Markdown — they require a specific processor. But if you control your toolchain (e.g., building a documentation site with VuePress), custom containers are an extremely useful pattern for structured content.
Definition Lists
Definition lists are supported by Pandoc, Kramdown (used by GitHub Pages with Jekyll), and some other processors. Standard Markdown does not include them, but they are useful for glossaries and metadata.
Term One
: Definition of term one
Term Two
: Definition of term two
: Second definition for the same term
If your Markdown processor does not support definition lists natively, you can simulate them with tables or bold text followed by indented paragraphs:
**Term**
Definition here.
This is not as clean, but it works everywhere.
Highlight & Mark Text
Standard Markdown has no <mark> element for highlighting text. Some extensions add this:
Pandoc / Multimarkdown:
This text is ==highlighted== in yellow.
GitHub does not support ==highlight== syntax in README files. You can use HTML <mark> instead:
This text is <mark>highlighted</mark> in HTML.
GitHub renders basic HTML tags, so <mark> works. Some themes may not show the highlight color distinctly, so test it before relying on it.
Emoji Shortcodes
GitHub and many other platforms support emoji shortcodes. Type a colon followed by the emoji name:
Shortcode Result Shortcode Result :rocket:🚀 :zap:⚡ :tada:🎉 :bug:🐛 :white_check_mark:✅ :warning:⚠️ :sparkles:✨ :fire:🔥 :book:📖 :wrench:🔧 :checkered_flag:🏁 :x:❌
Emoji :shortcodes: only work on platforms that support them. On plain Markdown renderers, they will show as literal text. As a fallback, copy the actual emoji character (use emojipedia.org).
Where Each Feature Works
Not all Markdown renderers are created equal. Here is a compatibility matrix:
Feature GitHub GitLab Obsidian Notion Pandoc Footnotes ✅ ✅ ✅ ❌ ✅ Mermaid diagrams ✅ ✅ ✅ ✅ ⚠️ Plugin LaTeX math ⚠️ Limited ✅ ✅ ⚠️ Block only ✅ GitHub Alerts ✅ ⚠️ Partial ⚠️ Similar ❌ ❌ Definition lists ❌ ❌ ❌ ❌ ✅ Emoji shortcodes ✅ ✅ ❌ ⚠️ Partial ❌ Highlight ==text== ❌ ❌ ✅ ❌ ✅ Custom containers ❌ ❌ ⚠️ CSS ❌ ✅
The golden rule: if you are writing for a specific platform (e.g., a GitHub README), use only the features that platform supports. If you are writing portable Markdown that might be rendered anywhere, stick to the basic syntax — everything in this article beyond footnotes and basic tables is an extension.
FAQ
Do footnotes work in all Markdown editors?
No. Footnotes are an extension, not part of the original Markdown spec. They work in GitHub, Pandoc, and most static site generators, but not in basic Markdown previewers. The MarkdownMaster editor processes standard Markdown; footnotes require a compatible renderer.
Can I use Mermaid in any Markdown file?
Mermaid requires a compatible renderer. GitHub renders Mermaid natively in .md files since 2022. For other platforms, you may need to install a plugin or use a Mermaid-based editor to generate static images.
Does Google Search support LaTeX math in Markdown?
Google indexes LaTeX math if it is rendered as an image or if the page uses MathJax/KaTeX with proper server-side rendering. Plain raw LaTeX in Markdown may not be indexed as mathematical content.
What is the most universally supported advanced Markdown feature?
Tables (GitHub-flavored Markdown) are the most widely supported advanced feature. They work on virtually every platform that renders Markdown, including GitHub, GitLab, Bitbucket, Notion, Obsidian, and most static site generators.
Should I use HTML or Markdown extensions for complex layouts?
It depends on your platform. GitHub supports a limited subset of HTML (<p>, <img>, <details>, <br>) in README files. For most use cases, Markdown extensions are more portable than raw HTML. If you need complex layouts that neither HTML nor Markdown handles well, consider generating documentation with a dedicated tool like Docusaurus or MkDocs.