This is how it’s done:
import { markdown, markdownLanguage } from '@codemirror/lang-markdown'
import { languages } from '@codemirror/language-data'
import { EditorState } from '@codemirror/state'
import { MarkdownConfig } from '@lezer/markdown';
const customTags = {
headingMark: Tag.define(),
};
const MarkStylingExtension: MarkdownConfig = {
props: [
styleTags({
HeadingMark: customTags.headingMark,
}),
],
};
const highlightStyle = HighlightStyle.define([
{
tag: customTags.headerMark,
color: 'blue',
},
{
tag: tags.heading1,
color: 'black',
fontSize: '1.75em',
fontWeight: '700',
},
]);
const editorState = EditorState.create({
doc: options.doc,
selection: options.selection,
extensions: [
markdown({
base: markdownLanguage,
codeLanguages: languages,
extensions: [MarkStylingExtension],
}),
highlightStyle,
],
});
You can find the other names like HeadingMark
in the @lezer/markdown
package, around here.