How to convert blog posts into single ebook markdown
- Step 1Export each post as Markdown — Pull each post or newsletter issue out of your CMS as a
.mdfile (most platforms offer a Markdown export, or you can copy each post into a file). The drop zone also accepts.mdx,.markdown, and.txt. - Step 2Use Upload mode and select the whole series — Switch to the Upload file tab — paste mode is single-document only. Select every post in the series at once so they can be merged into the eBook.
- Step 3Set reading order with filename prefixes — Posts merge in the order of the selected file list, with no reorder control. For a chronological series use the publish date as a prefix (
2025-01-15-post-one.md); for a curated collection use zero-padded sequence numbers (01-,02-). - Step 4Keep filename titles on — Leave Add H1 from filename when missing on so any post exported without an H1 is titled from its filename. Posts that already begin with their headline keep it.
- Step 5Generate the eBook contents index — Leave Generate Table of Contents on to prepend
## Table of Contents, which becomes the eBook's front index. Turn it off only if your converter or template builds its own navigation. - Step 6Run, then convert to a reader-friendly format — Click Run MD Merge and download
merged.md. Then convert: md-to-pdf-modern for a PDF lead magnet, md-to-html for a web edition, or md-to-docx for an editable manuscript.
eBook-merge options
The two merger controls mapped to the eBook outcome each one drives.
| Option | Default | eBook outcome |
|---|---|---|
Generate Table of Contents (includeToc) | On | Builds the front-matter index linking every chapter and sub-heading — the navigation readers expect in an eBook |
Add H1 from filename when missing (useFilenames) | On | Titles any post exported without a headline from its filename, so every chapter has a name in the contents |
| Filename-prefix ordering | — | Sets reading order: publish-date prefixes for a chronological series, sequence numbers for a curated collection |
Tier limits for a blog-series eBook
Real markdown-family caps. A typical 10–30 post series spans the Pro and Pro + Media tiers; a multi-year newsletter archive may need Developer.
| Plan | Posts (files) per merge | Per-file size / characters |
|---|---|---|
| Free | Cannot merge | 1 MB / 500,000 |
| Pro | Up to 10 | 10 MB / 5,000,000 |
| Pro + Media | Up to 50 | 50 MB / 20,000,000 |
| Developer | Unlimited | 500 MB / unlimited characters |
Cookbook
Blog-to-eBook merges from real content workflows. Filenames are illustrative.
A chronological four-part series
Four posts dated in their filenames merge oldest-first into one eBook with a contents index built from each post's headline.
Selected (sorted by date prefix): 2025-02-01-why-ship-fast.md → `# Why Ship Fast` 2025-02-08-measure-first.md → `# Measure First` 2025-02-15-cut-scope.md → `# Cut Scope` 2025-02-22-ship-and-learn.md → `# Ship and Learn` merged.md starts: ## Table of Contents - [Why Ship Fast](#why-ship-fast) - [Measure First](#measure-first) - [Cut Scope](#cut-scope) - [Ship and Learn](#ship-and-learn)
A post exported without a headline
One newsletter issue exported as raw body text with no H1. With filename titles on, it merges in titled from the filename so it still has a chapter name.
Input (issue-12.md, no H1): This week: three tools we started using... In merged.md: # issue-12 This week: three tools we started using...
Image paths that need fixing after merge
Posts often reference images relative to each post's own folder. After merging into one file, those relative paths may break. The merger does not touch image paths — fix them with the dedicated tool afterward.
In posts:  (relative to each post) After merge, all in one file — rewrite paths in one pass: /markdown-tools/md-image-path-rewriter find: ./img/ replace: https://cdn.example.com/ebook/img/
Demote post headlines under a book title
If you want each post's H1 to become an H2 chapter under a single eBook H1, shift levels before merging, then add a title line.
Step 1 md-heading-shifter on each post (delta +1)
→ each `# Headline` becomes `## Headline`
Step 2 md-merger (with a 00-title.md containing `# My eBook`)
→ one H1 book title, posts as H2 chaptersMerge then export a PDF lead magnet
The series becomes a downloadable PDF for your list. Merge first, then convert.
Step 1 md-merger → merged.md (TOC + posts) Step 2 /markdown-tools/md-to-pdf-modern → ebook.pdf (For a web edition instead: /markdown-tools/md-to-html)
Edge cases and what actually happens
Posts come out in the wrong reading order
By designOrder follows the selected file list, not publish date metadata. There is no reorder control. Encode order in filenames — date prefixes (2025-02-01-...) for a chronological series, or zero-padded sequence numbers for a curated order — then reselect.
Relative image paths break after merging
Paths unchangedEach post's images may be referenced relative to that post's folder (./img/chart.png). The merger concatenates text and does not rewrite paths, so relative links may no longer resolve from one combined file. Fix them in one pass with md-image-path-rewriter after merging.
Free plan can't build the eBook
Pro requiredMerging multiple posts requires Pro. On the free plan, selecting more than one file stops with Merging multiple files requires a Pro subscription.
Series longer than the plan cap
Batch limitA long-running series can exceed the per-merge cap (Pro 10, Pro + Media 50). Over the cap, the merge stops with Batch limit is N files for your plan. Merge in volumes within your cap, then merge the volumes, or upgrade.
Two posts share a title
Duplicate anchorAnchors derive from heading text only. Two posts titled # Update both produce #update, so the contents links both jump to the first. Disambiguate the headlines before merging.
A post already has its own headline
PreservedThe filename-title option fires only when a post has no # line. Posts that open with their headline keep it and are not given a duplicate filename title.
Code samples in technical posts
ExpectedFenced code blocks in technical posts are preserved as-is, and any # comment lines inside them are skipped by the contents builder, so code does not produce phantom chapter entries.
A single very long post
Char limitEach post is checked against your plan's per-file character cap. A long pillar post over the limit stops the merge with a per-file error; split it first with md-splitter.
Frequently asked questions
How do I set the reading order of the posts?
Posts merge in the order of the selected file list, and there is no reorder control. Encode the order in filenames: use publish-date prefixes (2025-02-01-...) for a chronological series, or zero-padded sequence numbers (01-, 02-) for a curated collection, then select them all.
Does the merger fix image links between posts?
No. It concatenates text and leaves image paths untouched. Posts that referenced images relative to their own folder may have broken links in the combined file. Rewrite all of them in one pass with md-image-path-rewriter after merging.
What separates one post from the next in the eBook?
A Markdown horizontal rule: the merger joins files with \n\n---\n\n, so each post is divided by a --- line. Post titles come from each file's H1 or, when missing, from the filename.
Will posts without a headline still be titled?
Yes, with Add H1 from filename when missing on (the default). Any post with no # line is titled from its filename, so it gets a chapter name and appears in the contents index. Posts that already have a headline keep it.
Can I make each post a chapter under one eBook title?
Yes, in two steps. Run each post through md-heading-shifter with a +1 shift so its # Headline becomes ## Headline, then merge with a small title file (e.g. 00-title.md containing # My eBook) first. The result has one H1 book title and the posts as H2 chapters.
Can I build the eBook on the free plan?
No. md-merger is a Pro tool — merging multiple posts requires a Pro subscription. The free plan supports single-file markdown operations only.
How many posts can I merge at once?
Pro allows up to 10 files, Pro + Media up to 50, and Developer is unlimited. For a back-catalogue larger than your cap, merge in volumes within the cap and then merge those volumes, or move to a higher tier.
How do I turn the merged file into a PDF or web page?
The merger outputs Markdown only. Convert it with md-to-pdf-modern for a PDF lead magnet, md-to-html for a web edition, or md-to-docx for an editable manuscript.
Is my unpublished content uploaded anywhere?
No. The merge runs entirely in your browser; posts are read locally and combined in the page. Nothing is sent to a server, so a not-yet-launched eBook stays private.
How is the front-matter contents index built?
After merging, the tool scans every heading H1–H6 (skipping headings inside code fences) and prepends ## Table of Contents with a - [Heading](#anchor) link for each, indented two spaces per level. Anchors are the heading text lowercased with spaces turned into hyphens.
Can I split the eBook back into individual posts?
Yes. md-splitter breaks one Markdown file into several at a chosen heading level — split at H1 to recover one file per post, the inverse of this merge.
Why do a couple of contents links land on the wrong chapter?
Anchors are generated from heading text alone, so two posts sharing a title produce the same anchor and the link resolves to the first occurrence. Give repeated titles distinct text before merging to keep navigation correct.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.