Markdown is a family of renderers

CommonMark defines a stable core for paragraphs, headings, emphasis, links, lists, block quotes, and code. GitHub Flavored Markdown adds tables, task lists, strikethrough, and autolinks. Footnotes, alerts, emoji, syntax highlighting, and math depend on extensions.

The same source can render differently across GitHub, documentation systems, static generators, note apps, and email tools. Portability begins by identifying the target renderer.

Build a durable structure

  1. Use one H1 only when the destination expects it in the source.
  2. Keep H2 and H3 order logical.
  3. Write paragraphs without unnecessary manual line breaks.
  4. Use fenced code blocks with a language label.
  5. Keep links and image paths stable.
  6. Make the source readable even when extensions disappear.

Tables are useful but limited

Markdown table decisions
NeedMarkdown tableAlternative
Compact comparisonGoodNone
Long prose in cellsHard to maintainHeadings or definition list
Row/column spansNot portableHTML where allowed
Machine-readable dataWeakCSV/JSON plus rendered view

Task lists are notation, not a project database

Task-list syntax is useful for checklists, release readiness, and issue templates. It does not provide ownership, due dates, dependencies, reminders, or audit history. Move operational work to a task system when accountability matters.

Footnotes and alerts depend on extensions

Footnotes keep side explanations out of the main sentence, but they are not core CommonMark. GitHub alerts add visual note, warning, and caution blocks; other renderers may show them as ordinary quotes. Write the words so they remain clear without the styling.

Portability rule

Enhancement may disappear. Meaning must survive.

Code and math

Use fenced code blocks with a language hint. The label controls highlighting; it does not execute code. Do not paste secrets into any editor whose data path is not approved.

Math syntax depends on a renderer such as KaTeX. Unsupported LaTeX packages and commands will not work automatically. Provide plain-language explanation around important formulas and verify accessibility in the final output.

Use Jivaro’s Markdown Editor

  1. Open Markdown Editor & Previewer.
  2. Start blank, import a file, or use an example.
  3. Inspect the live preview while writing.
  4. Test tables, tasks, footnotes, alerts, code, emoji, and math separately.
  5. Use autosave as convenience, not the only backup.
  6. Export Markdown as the editable master.
  7. Export HTML when rendered output is required.
  8. Open the exported HTML separately and inspect links, headings, code, tables, and math.

HTML export needs a trust boundary

If user-controlled Markdown can contain raw HTML, sanitize the output before publishing. Also check whether export includes styling or only semantic HTML; pasted output may look different under another site’s CSS.

Portability checklist

CoreReadable as plain text

Headings, links, lists, and code remain understandable.

ExtensionsDocument dependencies

State whether GFM, footnotes, alerts, emoji, or math are required.

FilesUse stable paths

Keep linked assets predictable.

HTMLSanitize and inspect

Validate output and untrusted input.

BackupKeep the Markdown source

Rendered HTML should not become the only editable copy.

TargetTest the real renderer

The destination is authoritative.

Design a compatibility profile

For recurring documentation, write down the renderer and extensions you support. A GitHub profile might allow GFM tables and tasks but avoid raw HTML. A technical site may add footnotes, syntax highlighting, alerts, and KaTeX. A cross-platform profile may limit content to CommonMark plus ordinary links and fenced code.

Run the same fixture document through each supported renderer after upgrades. The fixture should contain nested lists, code fences, a table, links, images, Unicode, footnotes, alerts, and math. Differences become visible before they affect published documentation.

Version images and linked files with the source

Broken images and downloads often come from moving Markdown without its assets. Use predictable relative paths, descriptive filenames, intrinsic dimensions in generated HTML, and a link checker. When a document is exported or copied to another platform, verify that every local asset was transferred or replaced with an absolute canonical URL.

Frequently asked questions

Are tables part of CommonMark?

No. They are commonly supplied by extensions such as GitHub Flavored Markdown.

Will GitHub alerts render everywhere?

No. Other renderers may display them as ordinary block quotes or unsupported syntax.

Is Markdown input automatically safe?

No. Raw HTML and generated HTML should be sanitized according to the destination’s trust model.

Why keep Markdown after HTML export?

It remains simpler to edit, version, and move to another renderer.

Related Jivaro apps

Writing & textMarkdown Editor & Previewer

Write, search, preview, import, autosave, and export Markdown with CodeMirror, synchronized scrolling, Mermaid diagrams, frontmatter, tables, syntax highlighting, and math.

Open app

Sources and references