@@ -5,8 +5,9 @@ import {Button, DropdownMenu} from '@gravity-ui/uikit';
55import { toaster } from '@gravity-ui/uikit/toaster-singleton-react-18' ;
66
77import {
8+ type DirectiveSyntaxValue ,
89 type EscapeConfig ,
9- FileUploadHandler ,
10+ type FileUploadHandler ,
1011 type MarkdownEditorMode ,
1112 MarkdownEditorView ,
1213 type MarkdownEditorViewProps ,
@@ -21,16 +22,16 @@ import {
2122 wysiwygToolbarConfigs ,
2223} from '../../src' ;
2324import type { ToolbarActionData } from '../../src/bundle/Editor' ;
24- import { Extension } from '../../src/cm/state' ;
25+ import type { Extension } from '../../src/cm/state' ;
2526import { FoldingHeading } from '../../src/extensions/additional/FoldingHeading' ;
2627import { Math } from '../../src/extensions/additional/Math' ;
2728import { Mermaid } from '../../src/extensions/additional/Mermaid' ;
2829import { YfmHtmlBlock } from '../../src/extensions/additional/YfmHtmlBlock' ;
2930import { getSanitizeYfmHtmlBlock } from '../../src/extensions/additional/YfmHtmlBlock/utils' ;
3031import { cloneDeep } from '../../src/lodash' ;
31- import { CodeEditor } from '../../src/markup' ;
32+ import type { CodeEditor } from '../../src/markup' ;
3233import { VERSION } from '../../src/version' ;
33- import { plugins } from '../defaults/md-plugins' ;
34+ import { getPlugins } from '../defaults/md-plugins' ;
3435import useYfmHtmlBlockStyles from '../hooks/useYfmHtmlBlockStyles' ;
3536import { block } from '../utils/cn' ;
3637import { randomDelay } from '../utils/delay' ;
@@ -91,6 +92,7 @@ export type PlaygroundProps = {
9192 markupToolbarConfig ?: ToolbarGroupData < CodeEditor > [ ] ;
9293 onChangeEditorType ?: ( mode : MarkdownEditorMode ) => void ;
9394 onChangeSplitModeEnabled ?: ( splitModeEnabled : boolean ) => void ;
95+ directiveSyntax ?: DirectiveSyntaxValue ;
9496} & Pick <
9597 UseMarkdownEditorProps ,
9698 | 'needToSetDimensionsForUploadedImages'
@@ -142,6 +144,7 @@ export const Playground = React.memo<PlaygroundProps>((props) => {
142144 hidePreviewAfterSubmit,
143145 needToSetDimensionsForUploadedImages,
144146 experimental,
147+ directiveSyntax,
145148 } = props ;
146149 const [ editorMode , setEditorMode ] = React . useState < MarkdownEditorMode > (
147150 initialEditor ?? 'wysiwyg' ,
@@ -153,15 +156,15 @@ export const Playground = React.memo<PlaygroundProps>((props) => {
153156 } , [ mdRaw ] ) ;
154157
155158 const renderPreview = useCallback < RenderPreview > (
156- ( { getValue, md} ) => (
159+ ( { getValue, md, directiveSyntax } ) => (
157160 < SplitModePreview
158161 getValue = { getValue }
159162 allowHTML = { md . html }
160163 linkify = { md . linkify }
161164 linkifyTlds = { md . linkifyTlds }
162165 breaks = { md . breaks }
163166 needToSanitizeHtml = { sanitizeHtml }
164- plugins = { plugins }
167+ plugins = { getPlugins ( { directiveSyntax } ) }
165168 />
166169 ) ,
167170 [ sanitizeHtml ] ,
@@ -182,7 +185,10 @@ export const Playground = React.memo<PlaygroundProps>((props) => {
182185 needToSetDimensionsForUploadedImages,
183186 renderPreview : renderPreviewDefined ? renderPreview : undefined ,
184187 fileUploadHandler,
185- experimental,
188+ experimental : {
189+ ...experimental ,
190+ directiveSyntax,
191+ } ,
186192 prepareRawMarkup : prepareRawMarkup
187193 ? ( value ) => '**prepare raw markup**\n\n' + value
188194 : undefined ,
@@ -249,6 +255,7 @@ export const Playground = React.memo<PlaygroundProps>((props) => {
249255 experimental ?. needToSetDimensionsForUploadedImages ,
250256 experimental ?. beforeEditorModeChange ,
251257 experimental ?. prepareRawMarkup ,
258+ directiveSyntax ,
252259 ] ,
253260 ) ;
254261
0 commit comments