mirror of
https://github.com/Ionaru/easy-markdown-editor
synced 2025-07-23 01:44:31 -06:00
Merge d3e357b8260a53c9db80370f48d7e916fda8b18d into 2996b67ec95ec69000ee03ccaee4fcca26cfc701
This commit is contained in:
commit
80de770cd4
@ -263,6 +263,13 @@ const editor = new EasyMDE({
|
||||
previewClass: "my-custom-styling",
|
||||
previewClass: ["my-custom-styling", "more-custom-styling"],
|
||||
|
||||
extractYaml: (yaml) => {
|
||||
// Extracts yaml from Markdown, use a third party parser to convert to json
|
||||
// ----
|
||||
// Key: value
|
||||
// ---
|
||||
console.log(yaml);
|
||||
}
|
||||
previewRender: (plainText) => customMarkdownParser(plainText), // Returns HTML from a custom parser
|
||||
previewRender: (plainText, preview) => { // Async method
|
||||
setTimeout(() => {
|
||||
|
@ -10,6 +10,7 @@ require('codemirror/addon/display/autorefresh.js');
|
||||
require('codemirror/addon/selection/mark-selection.js');
|
||||
require('codemirror/addon/search/searchcursor.js');
|
||||
require('codemirror/mode/gfm/gfm.js');
|
||||
require('codemirror/mode/yaml-frontmatter/yaml-frontmatter.js');
|
||||
require('codemirror/mode/xml/xml.js');
|
||||
var CodeMirrorSpellChecker = require('codemirror-spell-checker');
|
||||
var marked = require('marked').marked;
|
||||
@ -2012,6 +2013,24 @@ EasyMDE.prototype.updateStatusBar = function (itemName, content) {
|
||||
*/
|
||||
EasyMDE.prototype.markdown = function (text) {
|
||||
if (marked) {
|
||||
// remove yaml-frontmatter from preview
|
||||
if (text.indexOf('---') === 0) {
|
||||
var yaml = text.substring(3);
|
||||
var closeIdx = yaml.indexOf('---');
|
||||
if (closeIdx === -1) {
|
||||
// yaml-frontmatter can be closed with ...
|
||||
closeIdx = yaml.indexOf('...');
|
||||
}
|
||||
if (closeIdx != -1) {
|
||||
text = text.substring(closeIdx + 6);
|
||||
yaml = yaml.substring(0, closeIdx);
|
||||
} else {
|
||||
text = '';
|
||||
}
|
||||
if (this.options.extractYaml) {
|
||||
this.options.extractYaml(yaml);
|
||||
}
|
||||
}
|
||||
// Initialize
|
||||
var markedOptions;
|
||||
if (this.options && this.options.renderingConfig && this.options.renderingConfig.markedOptions) {
|
||||
@ -2117,11 +2136,11 @@ EasyMDE.prototype.render = function (el) {
|
||||
document.addEventListener('keydown', this.documentOnKeyDown, false);
|
||||
|
||||
var mode, backdrop;
|
||||
|
||||
var defaultMode = 'yaml-frontmatter';
|
||||
// CodeMirror overlay mode
|
||||
if (options.overlayMode) {
|
||||
CodeMirror.defineMode('overlay-mode', function (config) {
|
||||
return CodeMirror.overlayMode(CodeMirror.getMode(config, options.spellChecker !== false ? 'spell-checker' : 'gfm'), options.overlayMode.mode, options.overlayMode.combine);
|
||||
return CodeMirror.overlayMode(CodeMirror.getMode(config, options.spellChecker !== false ? 'spell-checker' : defaultMode), options.overlayMode.mode, options.overlayMode.combine);
|
||||
});
|
||||
|
||||
mode = 'overlay-mode';
|
||||
@ -2129,13 +2148,13 @@ EasyMDE.prototype.render = function (el) {
|
||||
backdrop.gitHubSpice = false;
|
||||
} else {
|
||||
mode = options.parsingConfig;
|
||||
mode.name = 'gfm';
|
||||
mode.name = defaultMode;
|
||||
mode.gitHubSpice = false;
|
||||
}
|
||||
if (options.spellChecker !== false) {
|
||||
mode = 'spell-checker';
|
||||
backdrop = options.parsingConfig;
|
||||
backdrop.name = 'gfm';
|
||||
backdrop.name = defaultMode;
|
||||
backdrop.gitHubSpice = false;
|
||||
|
||||
if (typeof options.spellChecker === 'function') {
|
||||
|
1
types/easymde.d.ts
vendored
1
types/easymde.d.ts
vendored
@ -183,6 +183,7 @@ declare namespace EasyMDE {
|
||||
autoRefresh?: boolean | { delay: number; };
|
||||
blockStyles?: BlockStyleOptions;
|
||||
element?: HTMLElement;
|
||||
extractYaml?: (yaml: string) => void;
|
||||
forceSync?: boolean;
|
||||
hideIcons?: ReadonlyArray<ToolbarButton>;
|
||||
indentWithTabs?: boolean;
|
||||
|
Loading…
x
Reference in New Issue
Block a user