Markdown Frontmatter Parser
Paste or drop a Markdown file, extract the YAML / TOML / JSON frontmatter into a JSON object, and see the body separately with word and char counts.
How to use
- Drop a
.md/.mdxfile or paste raw text starting with---(YAML),+++(TOML), or{(JSON). - The fenced block is parsed into a field table and a JSON object below.
- The body underneath gets shown separately — copy it to feed a content pipeline that doesn't need the frontmatter.
About this tool
ShowHide
Static-site frameworks all put per-page metadata in a fenced block at the top of the file, and they disagree only about the fence. This tool detects whether that block is YAML between ---, TOML between +++ or a JSON object, parses it into a plain JSON object you can paste into a migration script, and shows the rest of the file as the body with word and character counts.
The block has to be the very first thing in the file. A blank line above it, a byte-order mark left by an editor, or a stray comment and the generator stops seeing frontmatter at all — a page that suddenly has no title and no date, with the raw --- showing in the rendered output, is almost always this. It is worth checking before anything else, because the failure looks like a template bug rather than a parsing one.
The parser is deliberately small: flat keys, primitive values, bracket arrays and simple block arrays. That covers the overwhelming majority of real frontmatter without loading a full YAML implementation, and it also sidesteps a category of YAML surprise. In YAML 1.1, no is the boolean false, on and off are booleans too, and 22:22 parses as a sexagesimal integer — the reason a country field containing Norway's code has bitten so many people that the behaviour has a nickname. Here those stay strings. That is safer, but it is also a divergence: what you see in this tool is not guaranteed to be what a YAML 1.1 generator does with the same file, so treat a disagreement as a signal to quote the value explicitly rather than as a bug in either.
Numbers have the ordinary caveat. 1.20 becomes 1.2 and loses its trailing zero, so a version string needs quotes to survive as text. Dates are left as strings rather than converted, which is what you want for a migration — a date that has already been parsed once has had a time zone guessed for it, and guessing twice is worse than not guessing at all. Everything runs in your browser.
Frequently asked questions
Does it support nested objects or anchors?
It handles flat keys, primitive values (string, number, bool, null), bracket arrays (also spread over several lines in TOML), YAML block arrays, and | / > block strings. Complex nesting, references, anchors and plain multi-line strings without an indicator need a full YAML library — for those, parse with js-yaml or your framework's loader.
What if there's no frontmatter?
The whole input is treated as the body. You'll see a hint saying no frontmatter was detected, and the body / word count still works.
Why did my date or version number come back as something unexpected?
YAML converts unquoted scalars, and its rules surprise people: 2026-03-15 becomes a date object rather than a string, 1.20 becomes the number 1.2 and loses the trailing zero, and 08 can be rejected as an invalid octal. Quote anything whose exact text matters — versions, phone numbers, identifiers with leading zeros — and the value survives as written.
Which delimiter and which format should a file use?
Whatever the tool reading it expects, which is not universal: three dashes usually mean YAML, three plus signs usually mean TOML, and a leading brace usually means JSON, but a static site generator only recognises what it was built for. The frontmatter has to start on the very first line as well — one blank line above it and most parsers treat the whole block as ordinary body text.
Related tools
.env File Parser
Parse a .env / dotenv file with full support for single-quoted, double-quoted, multi-line, and inline-comment values.
File
Excel (XLSX) to CSV, JSON & Markdown
Open an .xlsx workbook in the browser and export any sheet as CSV, JSON or a Markdown table — the file never leaves your device.
File
CSV ↔ JSON Converter
Convert CSV to JSON and JSON back to CSV, with a delimiter option.
File
PE Inspector: Windows EXE and DLL Viewer
Open a Windows .exe, .dll, .sys or .efi in your browser: architecture, subsystem, imports, exports, sections, and whether ASLR, DEP and CFG are on.
File
EML File Viewer
Drop an .eml file and read the parsed message — key headers, plain-text and HTML body parts, and a list of attachments — all in the browser.
File
Mbox Archive Viewer
Split a .mbox archive in your browser: message boundaries, decoded headers, MIME structure, threads and duplicate Message-IDs. Nothing is uploaded.
File