This distinction explains a practical mismatch: an author can type a heading shortcut successfully while a pasted Markdown handover note remains literal text. A working typing pattern does not establish that the paste plugin is available.
Decide which operation your authors need
| Author's task | Feature to inspect |
|---|---|
| Type a short Markdown-like pattern while writing | text_patterns configuration |
| Paste plain Markdown and turn it into editable formatted content | Markdown plugin paste conversion |
| Read the edited document as a Markdown string | Markdown plugin's asynchronous getContent() API |
TinyMCE's content behavior options document typing patterns and the need to register the formats or commands they invoke. The Markdown plugin documentation describes the separate paste and export behavior. These references were checked on October 24, 2026; use the documentation for your installed release if its configuration differs.
Test typing separately from paste
In an already configured editor, type a new heading pattern at the beginning of an empty paragraph. Then undo it and paste the same characters as plain text. Record the resulting structure for each action rather than assuming they share a code path.
For a fictional handover note, use this original pasted fixture:
## Recorder handover
Return the **charged battery** with the recorder.
- Label the case
- Confirm the collection time
In an installation with the Markdown plugin enabled and available, paste that text using the platform's plain-text paste command. Inspect whether the editor now contains a level-two heading, emphasized words, and two list items. If conversion is unwanted, inspect Undo before rewriting the source text; the plugin documents an undo level before conversion.
Rich clipboard HTML can take a different paste path from literal Markdown characters. Start from a plain text copy so that an HTML representation from a website does not obscure what you are testing.
Export from the initialized plugin
For an initialized editor identified as handover, the documented export API returns a promise:
async function readHandoverMarkdown() {
const editor = tinymce.get('handover');
if (!editor?.plugins.markdown) {
throw new Error('Markdown plugin is not available on this editor');
}
return await editor.plugins.markdown.getContent();
}
Call the function from your application's existing export action, handle failures, and use the resolved string as the export content. Do not accidentally store the promise object. This operation does not save the Markdown to a server or download a file by itself.
After editing the fixture, compare its exported structure with what the author sees: the heading remains a heading, the battery wording remains emphasized, and the two instructions remain separate list items. Exact bullet characters or whitespace can differ. The acceptance question is whether the intended document relationships survive.
Ordinary editor.getContent() reads TinyMCE HTML through a different API. The HTML extraction and form synchronization guide covers that save path. Do not change the application's stored format to Markdown merely to add a download option.
Keep plugin availability explicit
TinyMCE currently labels Markdown as a premium plugin for paid subscriptions. Adding its name to a configuration does not establish entitlement or that the plugin assets loaded. Inspect your actual installation and subscription before promising the workflow to authors; this guide does not require purchasing or changing either.
If the source is an existing HTML file rather than an active TinyMCE document, HTML-to-Markdown conversion is a different route. Finish the editor integration by checking the operation the authors requested: typing, pasted conversion, or a readable exported Markdown document.