
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@mdxeditor/source-preview-plugin
Advanced tools
MDXEditor plugin for displaying source code alongside preview in a side-by-side view
MDXEditor plugin for displaying source code editor alongside a rich-text preview in a side-by-side view. Allows seamless switching between rich-text editing and viewing/editing the raw markdown source.
npm install @mdxeditor/source-preview-plugin
pnpm add @mdxeditor/source-preview-plugin
This plugin wraps the MDXEditor with a source code editor that can be toggled alongside the rich-text WYSIWYG editor.
import { MDXEditor } from "@mdxeditor/editor";
import { sourceWithPreviewPlugin } from "@mdxeditor/source-preview-plugin";
import type { SourceEditor } from "@mdxeditor/source-preview-plugin";
// Define your source editor component
const MySourceEditor: SourceEditor = ({ markdown, onChange }) => {
return (
<textarea
value={markdown}
onChange={(e) => onChange(e.target.value)}
style={{ width: "100%", height: "100%", fontFamily: "monospace" }}
/>
);
};
function App() {
return (
<MDXEditor
markdown="# Hello World"
plugins={[
sourceWithPreviewPlugin({
viewMode: "rich-text", // or 'source'
editor: MySourceEditor,
}),
]}
/>
);
}
import { MDXEditor } from "@mdxeditor/editor";
import { sourceWithPreviewPlugin } from "@mdxeditor/source-preview-plugin";
import type { SourceEditor } from "@mdxeditor/source-preview-plugin";
import Editor from "@monaco-editor/react";
const MonacoSourceEditor: SourceEditor = ({ markdown, onChange }) => {
return (
<Editor
height="100%"
defaultLanguage="markdown"
value={markdown}
onChange={(value) => onChange(value || "")}
options={{
minimap: { enabled: false },
lineNumbers: "on",
wordWrap: "on",
}}
/>
);
};
function App() {
return (
<MDXEditor
markdown="# Hello World"
plugins={[
sourceWithPreviewPlugin({
viewMode: "source",
editor: MonacoSourceEditor,
}),
]}
/>
);
}
The plugin accepts the following options:
editor (required): A React component that implements the SourceEditor interface for editing markdown sourceviewMode (optional): Initial view mode, either 'rich-text' or 'source'. Default: 'rich-text'Your source editor component should match this interface:
interface SourceEditorProps {
markdown: string;
onChange: (markdown: string) => void;
}
type SourceEditor = React.ComponentType<SourceEditorProps>;
The component receives:
markdown: The current markdown content as a stringonChange: Callback to update the markdown contentThe plugin uses gurx for reactive state management:
viewMode$: Controls whether the editor is in 'rich-text' or 'source' modesourceEditor$: Stores the source editor componentupdateBothSourceAndMarkdown$: Signal that syncs source and previewWhen in source mode, the rich-text editor becomes read-only, and changes made in the source editor are synchronized back to the preview.
This plugin requires:
react ^18.0.0 || ^19.0.0react-dom ^18.0.0 || ^19.0.0This package is part of the MDXEditor Extras monorepo. See the main repository for contribution guidelines.
MIT
FAQs
MDXEditor plugin for displaying source code alongside preview in a side-by-side view
We found that @mdxeditor/source-preview-plugin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.