Thesis writing
Why mdedit.io works for thesis and research documents: structured Markdown, citations, outline navigation, and print-ready export.
All important mdedit.io features in one place, with jump links, syntax examples, and notes on layout, AI, and collaboration.
mdedit.io is a browser-based Markdown editor with live preview, outline tree, Mermaid, KaTeX, a layout editor, PDF/DOCX export, optional collaboration, and an integrated AI panel.
This page is intentionally compact: use the table of contents on the left or jump directly to the most common topics.
If you are evaluating mdedit.io for a specific workflow, start with one of these focused pages instead of reading the full reference first.
Why mdedit.io works for thesis and research documents: structured Markdown, citations, outline navigation, and print-ready export.
Run mdedit.io with Docker for private browser-based writing, collaboration, and PDF/DOCX export on infrastructure you control.
Use embedded bibliography data, citation rendering, and reliable PDF/DOCX export for serious citation workflows in the browser.
The main interface consists of a sidebar, the Markdown editor, and a right-hand area for preview, outline view, and AI chat.
Shared documents can be edited together. Presence, display name, and optional password protection are integrated into both the UI and the settings.
The AI assistant lives in a third panel next to preview and outline. It can work with the current document context and manage multiple chat sessions.
The core syntax follows classic Markdown for text, headings, lists, links, images, and code.
# Heading
- Item 1
- Item 2
[Link](https://example.com)

`inline`
```js
console.log("Hello")
```
> Quote
GFM stands for GitHub Flavored Markdown. In mdedit.io this mainly includes tables, task lists, automatic links, and strikethrough.
| Element | Example | Note |
|---|---|---|
| Task lists | - [ ] Open, - [x] Done |
Useful for checklists and planning documents. |
| Tables | | A | B | |
Also supports alignment and more advanced table plugins. |
| Autolinks | https://example.com |
Web addresses are linked automatically. |
| Strikethrough | ~~obsolete~~ |
Useful for review workflows and status marking. |
Mermaid is rendered directly from code blocks. There is also a visual Mermaid editor with preview, properties, and zoom.
Flowchart, Sequence, State, Class, Entity Relationship, Gantt, Journey, Pie, Mindmap, Timeline, QuadrantChart, GitGraph, and Requirement Diagram.
```mermaid
flowchart TD
A[Start] --> B{Decision}
B -->|Yes| C[Continue]
```
Formulas can be written inline or as blocks and are rendered with KaTeX.
$E=mc^2$
$$
\int_0^\infty e^{-x^2} \, dx = \frac{\sqrt{\pi}}{2}
$$
In addition to basic Markdown and GFM, mdedit.io includes extra plugins for more structured documents.
| Feature | Example | Use |
|---|---|---|
| Footnotes | Text[^1] and [^1]: Footnote |
Sources, explanations, and annotations. |
| Definition lists | Term\n: Definition |
Glossaries and term lists. |
| Admonitions | ::: warning ... ::: |
Note, warning, and tip callout boxes. |
| Emoji | :rocket: |
Short visual markers in text. |
| Subscript / superscript | H~2~O, x^2^ |
Formulas and scientific notation. |
| Mark | ==Important== |
Highlight text. |
| Abbreviations | *[HTML]: HyperText Markup Language |
Tooltips for abbreviations. |
| TOC | [[toc]] |
Automatic table of contents inside the document. |
| Attributes | ### Title {#id} |
IDs, classes, and attributes directly in Markdown. |
For structured academic and scientific writing, mdedit.io supports automatic section numbering, typed section IDs, internal cross-references, and bibliography management via BibTeX/CSL.
| Key | Value | Effect |
|---|---|---|
number-sections | true | Headings are automatically numbered in decimal form (1, 1.1, 1.1.1 …). |
citation-source | embedded | Enables the BibTeX/CSL citation pipeline. References are rendered as a bibliography at the end of the document. |
Assign a typed ID to a heading and reference it anywhere in the text:
## Methodology {#sec:methodology}
### Data collection {#sec:data}
As described in [@sec:methodology],
see also [@sec:data].
The preview resolves [@sec:id] into a clickable link with the section number, e.g. Section 2.1.
When citation-source: embedded is set, mdedit.io reads the bibliography from an mdedit-bibliography block inside the document. The block accepts BibTeX or CSL JSON:
---
citation-source: embedded
number-sections: true
---
## Introduction {#sec:intro}
As shown by [@Author2024] …
```mdedit-bibliography
@article{Author2024,
author = {Author, A.},
title = {Title},
year = {2024}
}
```
You can also place a CSL JSON array in the same block. Use #refs when you want to place the references section explicitly.
Click the bibliography icon in the toolbar to open the modal for managing all sources in the embedded block.
| Action | Description |
|---|---|
| DOI search | Enter a DOI → Crossref metadata is fetched and added as a new entry. |
| Search (OpenAlex) | Search by title or author in the open academic literature database. No account required. |
| Zotero | Enter your Zotero user ID and API key → import sources from your Zotero library. Credentials stay in the browser (sessionStorage only). |
| New source | Add a source manually using the form. |
| Import | Open a .bib (BibTeX) or .json (CSL JSON) file → entries are merged into the block (no duplicates). |
| JSON / BibTeX | Download the current block as a CSL JSON or BibTeX file. |
mdedit.io exports scientific documents in two formats for different purposes:
Semantic environments for theorems, definitions, proofs and similar structures. Use Pandoc fenced divs with a type name and optional title:
::: theorem Fundamental Theorem of Calculus
Let $f$ be continuously differentiable on $[a,b]$, then …
:::
::: definition
A set $M$ is called **compact** if …
:::
::: proof
From compactness it follows that …
:::
Supported types: theorem, definition, proof, remark, example, lemma, corollary, proposition. Containers are numbered and visually set apart in preview and PDF.
Place <!-- appendix --> or ::: appendix anywhere in the document to have all subsequent ## headings automatically labelled Appendix A, B, C …. In the PDF each appendix starts on a new page:
## Conclusion
<!-- appendix -->
## Raw measurement data
(Contents of Appendix A)
## Interview transcripts
(Contents of Appendix B)
A caption and figure ID can be specified directly inside the Mermaid code block as comments:
```mermaid
%% caption: System architecture overview
%% id: fig:architecture
flowchart LR
A[Client] --> B[Server]
B --> C[Database]
```
In the PDF the diagram is placed as a numbered figure. Use [@fig:architecture] to cross-reference it in the text.
Standard Markdown footnotes are placed as true page footnotes in the PDF — Paged.js automatically positions them at the bottom of the correct page:
This claim is disputed.[^1]
[^1]: See Müller (2023), pp. 45–48 for an extended discussion.
Text between %% is treated as an internal author comment and stripped entirely from both preview and export. Useful for working notes, TODOs, and editorial remarks:
%% TODO: expand this section %%
The finished paragraph goes here.
%% REVIEW: check citation — page number missing %%
Single-line comments without a closing %% are also removed.
For print-oriented documents, mdedit.io combines Markdown with document-local layout rules, preview presets, and paged preview.
:::: columns plus break markers for row, column, section, and page.mdedit.io automatically detects numbered figures and table captions and can generate figure and table lists from them.
Place <!-- img: ... --> directly before an image link to control alignment, size, and visual effects:
| Option | Example | Effect |
|---|---|---|
align | align=right | left, right, or center (default). Left/right images are wrapped by text. |
width | width=60% | Explicit width in %, cm, pt, or px. |
frame | frame | Subtle border around the image. |
shadow | shadow | Light drop shadow. |
filter | filter=grayscale | grayscale or sepia for print optimization. |
<!-- img: align=right width=40% frame -->

<!-- img: align=center width=80% filter=grayscale -->

If the alt text starts with Figure N:, the image is automatically numbered with a caption.

A paragraph immediately before a table that starts with Table N: is recognized as a table caption:
Table 1: Comparison of layout areas.
| Area | Status |
|---|---|
| Margins | ☑ |
Place one of the following markers at the desired location in the document:
<!-- list-of-figures -->
# List of Figures
<!-- list-of-tables -->
# List of Tables
| Shortcut | Action |
|---|---|
| F1 | Open help |
| F2 | Show a random tip |
| Escape | Close a modal or the settings |
| Alt+Space / Ctrl+Space | Open or close the AI assistant |
| Ctrl+Shift+L | Open the layout editor |
| Ctrl+→ / Ctrl+← | Switch between folders |
| Ctrl+↑ / Ctrl+↓ | Move through documents in the history |
| Ctrl+0 | Open the folder overview |
| Ctrl+Space | Mermaid auto-completion in the editor inside Mermaid code blocks |