🚧 Refactor markdown preview extension

This commit is contained in:
2025-11-28 00:38:38 +08:00
parent ac086db1ed
commit 8d9bcdad7e
30 changed files with 2525 additions and 991 deletions

View File

@@ -0,0 +1,71 @@
import { Extension } from '@codemirror/state';
import { blockquote } from './plugins/blockquote';
import { codeblock } from './plugins/code-block';
import { headings } from './plugins/heading';
import { hideMarks } from './plugins/hide-mark';
import { htmlBlock } from './plugins/html';
import { image } from './plugins/image';
import { links } from './plugins/link';
import { lists } from './plugins/list';
import { headingSlugField } from './state/heading-slug';
import { imagePreview } from './state/image';
// New enhanced features
import { codeblockEnhanced } from './plugins/code-block-enhanced';
import { emoji } from './plugins/emoji';
import { horizontalRule } from './plugins/horizontal-rule';
import { softIndent } from './plugins/soft-indent';
import { revealOnArrow } from './plugins/reveal-on-arrow';
import { pasteRichText } from './plugins/paste-rich-text';
// State fields
export { headingSlugField } from './state/heading-slug';
export { imagePreview } from './state/image';
// Core Extensions
export { blockquote } from './plugins/blockquote';
export { codeblock } from './plugins/code-block';
export { frontmatter } from './plugins/frontmatter';
export { headings } from './plugins/heading';
export { hideMarks } from './plugins/hide-mark';
export { image } from './plugins/image';
export { htmlBlock } from './plugins/html';
export { links } from './plugins/link';
export { lists } from './plugins/list';
// Enhanced Extensions
export { codeblockEnhanced } from './plugins/code-block-enhanced';
export { emoji, addEmoji, getEmojiNames } from './plugins/emoji';
export { horizontalRule } from './plugins/horizontal-rule';
export { softIndent } from './plugins/soft-indent';
export { revealOnArrow } from './plugins/reveal-on-arrow';
export { pasteRichText } from './plugins/paste-rich-text';
// Classes
export * as classes from './classes';
/**
* markdown extensions (includes all ProseMark-inspired features).
*/
export const markdownExtensions: Extension = [
headingSlugField,
imagePreview,
blockquote(),
codeblock(),
headings(),
hideMarks(),
lists(),
links(),
image(),
htmlBlock,
// Enhanced features
codeblockEnhanced(),
emoji(),
horizontalRule(),
softIndent(),
revealOnArrow(),
pasteRichText()
];
export default markdownExtensions;