How to split a thesis into per-chapter markdown files
- Step 1Drop the single-file thesis — Upload your one
thesis.md. The splitter takes one file in, produces many out. It is Pro-only — Free blocks the run withmd-splitter requires a Pro subscription. - Step 2Set the chapter split level — Use Split at heading level. If chapters are
#headings, chooseH1. If they nest under a# Thesistitle as##headings, chooseH2— but expect a thin title file too. - Step 3Protect your abstract and front matter — Anything above the first chapter heading is dropped. Wrap your abstract and acknowledgements in their own headings (
# Abstract,# Acknowledgements) so they become chapter files rather than vanishing. - Step 4Run the split — Run the tool. It cuts at each chapter heading, ignores
#lines inside code fences, and zips one.mdper chapter. If the chosen level has no headings, it stops withNo H{level} headings found to split on. - Step 5Download and check citations — Download
<thesis>-chapters.zipand extract. Open each chapter and confirm footnote definitions ([^1]: ...) sit in the same file as their references — the splitter does not move them. - Step 6Re-link and prepare for review — Convert any same-thesis anchor links (
[see Ch. 2](#methods)) to relative file links. Keep your bibliography as a separate file managed by Pandoc/BibTeX. Send individual chapters to advisors for focused review.
Split level by thesis structure
Pick the level your chapters use. A heading shallower than your level also ends a chapter.
| Thesis structure | Chapter marker | Set split level to | Result |
|---|---|---|---|
| Flat chapters | # Introduction, # Methods | H1 | One file per chapter |
| Title wrapping chapters | ## Methods under # Thesis | H2 | One file per chapter plus a thin title file |
| Chapter sections split out | ### Experiment 1 | H3 | Finest split; every #/##/### becomes a file |
Filename and content rules (fixed)
No filename-pattern control exists; behaviour below is built in.
| Aspect | Rule | Academic note |
|---|---|---|
| Filename | NN-slug.md, zero-padded from 00 | Order preserved for final deposit |
| Slug | Chapter title, GitHub slug algorithm | ## Results & Discussion -> 03-results-discussion.md |
| Frontmatter | Prepended to first chapter only | Thesis metadata lands in 00-*.md |
| Pre-first-heading text | Dropped | Wrap abstract in # Abstract to keep it |
| Footnotes / citations | Copied verbatim, not relocated | Keep [^1] and its definition in one chapter |
| ZIP name | <input>-chapters.zip | thesis.md -> thesis-chapters.zip |
Tier limits (Markdown family)
Pro-only tool. Long theses can hit the character limit before the byte-size limit.
| Tier | Max file size | Max characters | md-splitter |
|---|---|---|---|
| Free | 1 MB | 500,000 | Blocked (Pro required) |
| Pro | 10 MB | 5,000,000 | Available |
| Pro-media | 50 MB | 20,000,000 | Available |
| Developer | 500 MB | Unlimited | Available |
Cookbook
Thesis structures and the exact chapter files they produce. Processing is in-browser; unpublished work stays local.
Flat chapters on H1
A thesis where each chapter is a # heading. Split on H1 for one file per chapter.
Input thesis.md: # Introduction ... # Literature Review ... # Methods ... # Results ... Split level: H1 Output thesis-chapters.zip: 00-introduction.md 01-literature-review.md 02-methods.md 03-results.md
Abstract above chapter one is dropped
An abstract placed above the first chapter heading is not emitted. Wrap it in a heading to keep it.
Input thesis.md: This dissertation examines... # Introduction ... Split level: H1 Output: 00-introduction.md (the abstract text is GONE) Fix: # Abstract This dissertation examines... # Introduction ... -> now 00-abstract.md and 01-introduction.md
Footnote split from its definition
Markdown footnotes only resolve within a file. If a reference and its definition land in different chapters, the link breaks. Keep them together.
Input thesis.md: # Methods We used a mixed model.[^1] # Results [^1]: See Gelman & Hill (2007). Split level: H1 Output: 02-methods.md contains [^1] reference but NO definition 03-results.md contains the [^1]: definition but no reference Fix: move the definition into 02-methods.md before splitting, or manage citations with Pandoc + a .bib file.
Computational-methods chapter with code stays whole
A methods chapter full of # comments inside an R/Python code fence is not split, because code-fence headings are ignored.
Input thesis.md: # Methods Model fit in R: ```r # fit the mixed model m <- lmer(y ~ x + (1|group), data = d) # extract coefficients summary(m) ``` # Results ... Split level: H1 Output: 02-methods.md (full R block intact) 03-results.md
Recombine for final submission
After per-chapter review, merge the chapters into a single deposit file with the Markdown Merger, then export with Pandoc.
Workflow:
1. md-splitter: thesis.md -> chapters/00..NN.md (advisor review)
2. md-merger: drop chapters/*.md -> thesis-final.md
3. Pandoc: pandoc thesis-final.md --citeproc \
--bibliography refs.bib -o thesis.pdfEdge cases and what actually happens
Free tier
Pro requiredThe splitter is Pro-only. Free users get md-splitter requires a Pro subscription. Upgrade to Pro or higher to extract chapters.
Chosen level has no headings
errorSplitting on H2 for a #-only thesis yields No H{level} headings found to split on. Lower the level (H2 also breaks on #) or fix the headings.
Abstract above the first chapter
Dropped by designThe abstract, dedication, or acknowledgements above the first heading are not written to any file. Wrap each in its own heading (# Abstract) so they become chapter files.
Footnotes split across chapters
May breakMarkdown footnotes resolve only within a single file. If [^1] and [^1]: ... end up in different chapters, the link breaks. Keep each definition in the same chapter as its reference, or manage citations with Pandoc and a .bib file. See md-footnote-linker.
Bibliography at the end of the thesis
PreservedA # References section becomes its own chapter file like any other. For citation processing, keep a separate .bib file and let Pandoc --citeproc resolve @key citations at build time rather than relying on the split file.
Setext underline chapter titles
Not detectedUnderline-style chapter titles are not recognised. Convert to ATX #-style first, or the thesis will not split.
Duplicate chapter titles
PreservedTwo # Appendix chapters produce 00-appendix.md and 01-appendix.md; the index prefix keeps them distinct. Nothing is overwritten.
Cross-chapter anchor links
May breakLinks like [see Methods](#methods) stop resolving once chapters are separate files. Rewrite them as relative file links (02-methods.md). The splitter does not adjust links.
Math/equation blocks
PreservedLaTeX math ($$...$$) is copied verbatim into the chapter file — the splitter does not parse or render math. To normalise math delimiters across chapters, see md-math-normalizer.
Thesis over the char limit
errorThe read enforces the tier char limit; a Pro thesis over 5,000,000 characters is rejected with the count named. Use Pro-media (20M) or Developer (unlimited) for very large dissertations.
Frequently asked questions
What happens to my abstract if it sits above the first chapter?
It is dropped — the splitter does not start a chapter until the first heading at your chosen level. Wrap the abstract in its own heading (# Abstract) so it becomes the first chapter file. The same applies to dedications and acknowledgements.
Will my citations work after splitting?
Markdown footnotes only resolve within a single file, so a [^1] reference and its [^1]: ... definition must end up in the same chapter or the link breaks. The splitter copies content verbatim and does not relocate footnotes. The robust approach for a thesis is Pandoc with a .bib file and --citeproc, which resolves @key citations at build time across all chapters.
How do I handle the bibliography?
Keep references in a separate .bib file rather than inline. A # References section in the Markdown becomes its own chapter file, but for proper citation processing let Pandoc resolve @key citations from the .bib at build time after you recombine the chapters.
What split level should I use?
Use H1 if your chapters are # headings. Use H2 if chapters are ## headings nested under a single # Thesis title — but be aware that H2 also breaks at the title, producing a thin title file alongside the chapter files.
Does it keep my chapters in order?
Yes. Each filename starts with a two-digit, zero-padded index (00-, 01-, ...) in document order, so the files sort into reading order and recombine correctly for the final deposit.
Are LaTeX equations preserved?
Yes — $$...$$ and $...$ math is copied verbatim. The splitter does not parse or render math; it just slices text at headings. To standardise math delimiters across chapters afterward, use md-math-normalizer.
Can I customise the filenames?
No. They are fixed at NN-slug.md, with the slug derived from the chapter title. The only control is the heading level. Rename after extracting if you need a different convention.
Does it handle code in my methods chapter?
Yes. Headings inside fenced code blocks are ignored, so # comments in an R, Python, or shell snippet inside ``` fences do not split your methods chapter.
What output do I get?
A ZIP of .md files named <thesis>-chapters.zip, one per chapter, generated in your browser with JSZip. Your unpublished thesis is never uploaded.
Will my frontmatter survive?
Only in the first chapter. A YAML (---) or TOML (+++) metadata block at the top is prepended to the first output file and not repeated in later chapters. For Pandoc, prefer a separate metadata/.yaml file.
How do I recombine for submission?
Use the Markdown Merger to join the chapter files with --- separators and an optional table of contents, then export with Pandoc and --citeproc to PDF. To re-level headings if needed, use md-heading-shifter.
Is there a size limit, and can I split multiple theses at once?
Size is capped by tier: Pro 10 MB / 5,000,000 characters, Pro-media 50 MB / 20,000,000, Developer 500 MB / unlimited (the character count is checked separately from byte size, so a long dissertation can hit the char limit before the MB limit). The tool processes one file at a time — to combine many files into one, use the Markdown Merger.
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.