Skip to content

on-CodeMerge Plugins ​

Plugins register onto the core-owned toolbar and use SDK popup / context menu / notify. Prefer createDefaultPlugins() or pick factories explicitly.

Document SoT is JSON (getJSON / setJSON). HTML and Markdown are boundaries (getHTML / setHTML, getMarkdown / setMarkdown). Published hydrate: getPublishedHTML / getPublishedDocument. See Editor API and SDK reference.

Plugin sets ​

HelperContents
createDefaultPlugins()Full ship set: toolbar marks, history, typography/color/font/link/clear-styles/alignment, lists, block, block-style, table, media (image/video/youtube/file/pdf), code, JSON embed, Markdown embed, math, charts, calendar, timer, form builder, comments, mentions, footnotes, footer, shortcuts, export, HTML viewer, templates, responsive, language, AI, track changes, anchor links. Not collaboration (opt-in).
createCorePlugins()Lean essentials: Toolbar, History, Typography, Color, Font, Link, ClearStyles, Alignment, Lists, Block, Table, Image, CodeBlock, Math, Export, Shortcuts.

Toolbar overflow menus (insert / review / tools) are registered by Editor, not by these helpers. See Authoring plugins — Toolbar.

Plugin overview ​

Essential ​

PluginDescriptionDocs
ToolbarPluginDefault B/I/U/S mark buttons (chrome is core-owned).Details

Text formatting ​

PluginDescriptionDocs
FontPluginFont family, size, and style.Details
TypographyPluginLine height, letter spacing, etc.Details
ColorPluginText and background colors.Details
ClearStylesPluginClear style marks + block style/align (selection or whole document).Details
AlignmentPluginLeft, center, right, justify.Details
BlockStylePluginClass and style editor.Details

Content ​

PluginDescriptionDocs
BlockPluginResizable pane-tree containers (split / stack).Details
ListsPluginOrdered and unordered lists.Details
TablePluginProse tables (atom) / grid JSON workspace (on-codemerge/tables).Details
TemplatesPluginDocument templates.Details

Media ​

PluginDescriptionDocs
ImagePluginImages.Details
VideoPluginVideo files.Details
YouTubeVideoPluginYouTube embeds.Details
FileUploadPluginFile upload / attach.Details

Code and technical ​

PluginDescriptionDocs
CodeBlockPluginCode embed atom (WYSIWYG) / source workspace (on-codemerge/code).Details
JsonPluginJSON embed atom (WYSIWYG) / Tree+Raw workspace (on-codemerge/json).Details
MarkdownPluginMarkdown embed atom (WYSIWYG) / dual-pane workspace (on-codemerge/markdown).Details

| MathPlugin | TeX-subset → MathML formulas. | Details | | HTMLViewerPlugin | Raw HTML view. | Details |

Interactive ​

PluginDescriptionDocs
LinkPluginHyperlinks.Details
ChartsPluginCharts.Details
FormBuilderPluginInteractive forms.Details

Collaboration and communication ​

PluginDescriptionDocs
CollaborationPluginReal-time ops sync (opt-in; requires token).Details
CommentsPluginComments / annotations.Details
FootnotesPluginFootnotes.Details

Utility ​

PluginDescriptionDocs
HistoryPluginUndo / redo.Details
ExportPluginExport (HTML, PDF, …).Details
ShortcutsPluginKeyboard shortcuts UI.Details
ResponsivePluginResponsive layout helpers.Details
LanguagePluginLocale picker UI.Details
SpellCheckerPluginSpell-check (in-house Hunspell + your dictionaries).Details

AI and advanced ​

PluginDescriptionDocs
AIAssistantPluginAI assistant.Details
FooterPluginEditor footer chrome.Details

Extra ​

PluginDescriptionDocs
CalendarPluginCalendar / events.Details
TimerPluginCountdown / timer blocks.Details
PDFEmbedPluginEmbed PDF documents.Details
MentionsPlugin@mentions.Details
TrackChangesPluginTrack and review changes.Details
AnchorLinkPluginIn-document anchors.Details

Usage ​

ts
import { Editor, createDefaultPlugins, createCorePlugins } from 'on-codemerge';
import { ToolbarPlugin, AlignmentPlugin, TablePlugin } from 'on-codemerge/plugins';
import 'on-codemerge/index.css';
import 'on-codemerge/public.css';

// Full set
const editor = new Editor(container, {
  plugins: createDefaultPlugins(),
});

// Lean + extras
const lean = new Editor(container, {
  plugins: [...createCorePlugins(), TablePlugin()],
});

// Explicit
const custom = new Editor(container, {
  plugins: [ToolbarPlugin(), AlignmentPlugin()],
});

// Late registration
lean.use(TablePlugin());

There is no editor.remove() / editor.getPlugins() in v2. To change the set, destroy and recreate the editor (plugin setup scope disposes on editor.destroy()).

ts
editor.on('docChanged', () => {
  const json = editor.getJSON();
  // persist json
});

editor.setHTML('<p>Hello</p>'); // boundary only

Options at construction ​

ts
const editor = new Editor(container, {
  plugins: createDefaultPlugins(),
  history: { maxDepth: 100 },
  locale: 'en',
});

Dependencies ​

  • Toolbar chrome is always present (core). ToolbarPlugin is optional (marks only).
  • HistoryPlugin recommended for undo/redo UI.
  • CollaborationPlugin needs a WebSocket ops server + matching token / COLLAB_TOKEN.

Further reading ​

Released under the MIT License.