mirror of
https://github.com/Ionaru/easy-markdown-editor
synced 2025-07-01 07:01:04 -06:00
Merge pull request #58 from Ionaru/bugfix/simplemde-compatibility
Restore backwards compatibility with SimpleMDE
This commit is contained in:
commit
14bfa678ab
@ -22,9 +22,9 @@
|
|||||||
"url": "https://github.com/ionaru/easy-markdown-editor/issues"
|
"url": "https://github.com/ionaru/easy-markdown-editor/issues"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"codemirror": "^5.42.2",
|
"codemirror": "^5.43.0",
|
||||||
"codemirror-spell-checker": "1.1.2",
|
"codemirror-spell-checker": "1.1.2",
|
||||||
"marked": "^0.6.0"
|
"marked": "^0.6.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/codemirror": "0.0.72",
|
"@types/codemirror": "0.0.72",
|
||||||
@ -36,7 +36,7 @@
|
|||||||
"gulp-header": "^2.0.7",
|
"gulp-header": "^2.0.7",
|
||||||
"gulp-rename": "^1.4.0",
|
"gulp-rename": "^1.4.0",
|
||||||
"gulp-uglify": "^3.0.1",
|
"gulp-uglify": "^3.0.1",
|
||||||
"typescript": "^3.2.2",
|
"typescript": "^3.3.3",
|
||||||
"vinyl-buffer": "^1.0.0",
|
"vinyl-buffer": "^1.0.0",
|
||||||
"vinyl-source-stream": "^2.0.0"
|
"vinyl-source-stream": "^2.0.0"
|
||||||
},
|
},
|
||||||
|
@ -113,9 +113,9 @@ function fixShortcut(name) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create icon element for toolbar.
|
* Create button element for toolbar.
|
||||||
*/
|
*/
|
||||||
function createIcon(options, enableTooltips, shortcuts) {
|
function createToolbarButton(options, enableTooltips, shortcuts) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
var el = document.createElement('button');
|
var el = document.createElement('button');
|
||||||
el.className = options.name;
|
el.className = options.name;
|
||||||
@ -139,11 +139,28 @@ function createIcon(options, enableTooltips, shortcuts) {
|
|||||||
el.classList.add('no-mobile');
|
el.classList.add('no-mobile');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Provide backwards compatibility with simple-markdown-editor by adding custom classes to the button.
|
||||||
|
var classNameParts = options.className.split(' ');
|
||||||
|
var iconClasses = [];
|
||||||
|
for (var classNameIndex = 0; classNameIndex < classNameParts.length; classNameIndex++) {
|
||||||
|
var classNamePart = classNameParts[classNameIndex];
|
||||||
|
// Split icon classes from the button.
|
||||||
|
// Regex will detect "fa" and "fa-something", but not "fanfare".
|
||||||
|
if (classNamePart.match(/^fa((-.*)|$)/)) {
|
||||||
|
iconClasses.push(classNamePart);
|
||||||
|
} else {
|
||||||
|
el.classList.add(classNamePart);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
el.tabIndex = -1;
|
el.tabIndex = -1;
|
||||||
|
|
||||||
// Create icon element and append as a child to the button
|
// Create icon element and append as a child to the button
|
||||||
var icon = document.createElement('i');
|
var icon = document.createElement('i');
|
||||||
icon.className = options.className;
|
for (var iconClassIndex = 0; iconClassIndex < iconClasses.length; iconClassIndex++) {
|
||||||
|
var iconClass = iconClasses[iconClassIndex];
|
||||||
|
icon.classList.add(iconClass);
|
||||||
|
}
|
||||||
el.appendChild(icon);
|
el.appendChild(icon);
|
||||||
|
|
||||||
return el;
|
return el;
|
||||||
@ -1824,7 +1841,7 @@ EasyMDE.prototype.createToolbar = function (items) {
|
|||||||
if (item === '|') {
|
if (item === '|') {
|
||||||
el = createSep();
|
el = createSep();
|
||||||
} else {
|
} else {
|
||||||
el = createIcon(item, self.options.toolbarTips, self.options.shortcuts);
|
el = createToolbarButton(item, self.options.toolbarTips, self.options.shortcuts);
|
||||||
}
|
}
|
||||||
|
|
||||||
// bind events, special for info
|
// bind events, special for info
|
||||||
|
2
types/easymde.d.ts
vendored
2
types/easymde.d.ts
vendored
@ -82,6 +82,8 @@ declare namespace EasyMDE {
|
|||||||
action: string | ((editor: EasyMDE) => void);
|
action: string | ((editor: EasyMDE) => void);
|
||||||
className: string;
|
className: string;
|
||||||
title: string;
|
title: string;
|
||||||
|
noDisable?: boolean;
|
||||||
|
noMobile?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Options {
|
interface Options {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user