Markdown Enhancements
Starting from v10.0, Umo Editor Next introduces a comprehensive set of enhancements to its Markdown support, including:
- Support for setting the document content directly as Markdown, or inserting Markdown into the editor and rendering it correctly;
- APIs for setting the document content as Markdown and inserting Markdown at specific positions;
- Import and export capabilities for Markdown, allowing users to load local Markdown files or export the current document as Markdown;
- Adoption of the faster, more modern, and lightweight Marked library as the Markdown rendering engine, with support for custom renderers and parsing behavior;
- Exposure of the internal
MarkdownManagerinstance, enabling bidirectional conversion between Markdown and document content, as well as advanced customization of the Marked parser; - Support for integrating and extending Markdown capabilities within editor extensions.
Use Cases
- Technical writing: draft fast in Markdown, then refine layout with rich text
- Product docs/PRDs: write and insert structured elements like tables, images, and attachments
- Knowledge base workflows: import/export Markdown to interoperate with other systems
- Migration and sync: bring content from Git/Markdown repos for collaborative review
- Content reuse: insert Markdown snippets as standard paragraphs or template fragments
- AI rewriting: use Markdown as a stable intermediate representation for structured output
- Website publishing: export Markdown for static sites and documentation generators
- Lightweight notes: start with Markdown for minutes/weekly reports, then polish as needed
Works Well With
Import / Export
- Use Markdown import/export as an exchange format when integrating with the broader Markdown ecosystem: Import, Export
Collaboration and Comments
- Great for teams maintaining a Markdown-style handbook with real-time collaboration and threaded discussions: Collaborative Editing, Comments
AI
- Markdown-structured AI output is more stable and can be inserted directly for further editing: AI
Important:
Starting from v10.0, Umo Editor Next has removed the import.markdown configuration. All Markdown-related configuration is now unified under document.markedOptions.
At the same time, the getJSONByMarkdown method has been deprecated and replaced by getMarkdown.
Default Configuration
const options = {
document: {
contentType: undefined,
markedOptions: {},
},
}Configuration Reference
document.contentType
Description: Specifies the type of the document content. If the initial document content (i.e. document.content) is Markdown, this option must be set to markdown so that the editor can correctly recognize and parse it.
For other content types, this option can be omitted, as the editor will automatically detect the content format.
Type: String
Allowed values: json, html, markdown
document.markedOptions
Description: Configuration options and instance for Marked.
Type: Object
document.markedOptions.instance: The Marked instance. You can pass in an externally created Marked instance to take over the internal one, enabling more flexible and advanced customization.document.markedOptions.xxx: Any Marked configuration option. For a full list, see the official documentation: https://marked.js.org/using_advanced#options
API Methods
setMarkdown
Description: Replaces the entire document content with the provided Markdown string. Umo Editor Next will automatically parse and convert the Markdown into the internal document structure.
Parameters:
String: The Markdown content to set.
Returns: Boolean | Error
insertMarkdown
Description: Inserts Markdown at the current cursor position. The editor will automatically parse and render the content.
Parameters:
markdown: The Markdown content to insert;options: Additional options passed toeditor.insertContent. See the insertContent method for details.
Returns: Boolean | Error
insertMarkdownAt
Description: Inserts Markdown at a specific position or range within the document. The content will be parsed and rendered automatically.
Parameters:
position: The insertion position or range, for example10or{ from: 12, to: 16 };markdown: The Markdown content to insert;options: Additional options passed toeditor.insertContent. See the insertContent method for details.
Returns: Boolean | Error
getMarkdown
Description: Returns the current document content as a Markdown string.
Parameters: None.
Returns: String | Error
getMarkdownManager
Description: Retrieves the internal MarkdownManager instance, through which you can directly access bidirectional conversion methods between Markdown and document content, as well as customize Marked parsing logic.
Parameters: None.
Returns: Object
Example:
const manager = editor.getMarkdownManager()
// Convert Markdown to JSON
const json = manager.parse('# Hello, Umo Editor Next')
console.log(json)
// Convert JSON back to Markdown
const markdown = manager.serialize(json)
console.log(markdown)
// Access the Marked instance
const marked = manager.instance
console.log(marked)
// Render a single node to Markdown
const markdown = manager.renderNodeToMarkdown(node)
console.log(markdown)
// Render multiple nodes to Markdown
const markdown = manager.renderNodes(nodes)
console.log(markdown)
// Inspect the full MarkdownManager API
console.log(manager)