Markdown File Composer
Write Markdown and download as .md. Front Matter, table, code block, list, heading shortcuts, live preview, templates (README / Blog / ADR / Changelog).
📖 Where people get stuck
Write Markdown and download it as a .md file, with front matter templates ready so you can produce a static-site or AI-assistant configuration file on the spot. The preview here renders plain baseline Markdown; how tables, footnotes and checkboxes behave depends on whether the destination is GitHub, Hugo or Notion.
| Case | What happens | What to do |
|---|---|---|
| The front matter is ignored | YAML is strict about form and fails quietly. The three usual causes are a tab used for indentation, a missing space after the :, and an unquoted value that itself contains a :. The opening --- also has to be the very first line of the file — a blank line or a BOM before it turns the block into a horizontal rule in the body. |
Indent with two spaces everywhere, and always wrap free-text values such as a title in "…". Write dates as 2026-07-26; 2026/07/26 is parsed as a string and breaks sorting. Running the block through any YAML parser once before you commit is the reliable check. |
| Line breaks collapse into one line | Markdown treats a single newline as a space. That is why a line you broke in the source comes out as a continuation of the previous line. It is the specification working as designed, not a bug. | To start a new paragraph, leave a blank line. For a break inside a paragraph, end the line with two spaces or write <br>. Note that trailing spaces are removed by the common trim-on-save editor setting, so <br> is the safer choice on a shared repository. |
| Git shows every line as changed | When a one-character edit shows up as a whole-file diff, the cause is almost always the line endings flipping between CRLF and LF. A Windows editor saves CRLF, a Linux-side tool rewrites LF, and the file ping-pongs. UTF-8 with a BOM produces a related symptom, where only the first line diffs inexplicably. | Standardise on UTF-8 without a BOM, and LF. A .gitattributes at the repository root containing *.md text eol=lf enforces this regardless of each developer settings. To convert files you already have, use the line ending converter. |
There is no single Markdown specification. CommonMark is the common base, GitHub Flavored Markdown adds tables, strikethrough, task lists and autolinking on top, and Hugo, Jekyll, Obsidian and Notion each layer on their own syntax, with footnotes, maths and callouts that do not interoperate. However good it looks in a local preview, check it once where it will be published. Wanting a line break inside a table cell, or code inside a cell, is exactly where implementations diverge.
❓ Frequently Asked Questions
Front Matter support?
GitHub-style rendering?
Privacy?
🐛 Found a bug or issue with this tool?
Free to use, no signup. Even just the steps to reproduce are helpful. Reports go directly to the operator and help us fix issues.
Thanks for your report!
Your report has been delivered to the operator and will be used to improve the tool.