Ionaru / easy-markdown-editor

EasyMDE: A simple, beautiful, and embeddable JavaScript Markdown editor. Delightful editing for beginners and experts alike. Features built-in autosaving and spell checking.
https://stackblitz.com/edit/easymde
MIT License
2.32k stars 308 forks source link

Expose marked renderer to allow marked.use() #514

Open aardgoose opened 1 year ago

aardgoose commented 1 year ago

Is your feature request related to a problem? Please describe.

The renderingConfig: { markedOptions: } option doesn't allow extensions to be passed to marked.

It appears that using the marked.use() function directly is the only way to add extensions without the complexity of creating another marked instance and providing that as a preview rendering function.

Describe the solution you'd like

An accessor function such as easyMDE.getMarked() would be ideal.

Describe alternatives you've considered

Passing a separate instance of marked in, but this increases the code size and seems needlessly complicated.

Ionaru commented 1 year ago

I understand the desire to access easyMDE's internals and not to duplicate the marked package. However just like accessing the CodeMirror object (https://github.com/Ionaru/easy-markdown-editor/pull/76), I cannot guarantee that the entire marked package is included if at some future point the bundle is optimised with tree-shaking.

Extending renderingConfig with a markedExtensions option may be a better solution.