mirror of
https://github.com/Ionaru/easy-markdown-editor
synced 2025-07-01 15:11:02 -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"
|
||||
},
|
||||
"dependencies": {
|
||||
"codemirror": "^5.42.2",
|
||||
"codemirror": "^5.43.0",
|
||||
"codemirror-spell-checker": "1.1.2",
|
||||
"marked": "^0.6.0"
|
||||
"marked": "^0.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/codemirror": "0.0.72",
|
||||
@ -36,7 +36,7 @@
|
||||
"gulp-header": "^2.0.7",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-uglify": "^3.0.1",
|
||||
"typescript": "^3.2.2",
|
||||
"typescript": "^3.3.3",
|
||||
"vinyl-buffer": "^1.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 || {};
|
||||
var el = document.createElement('button');
|
||||
el.className = options.name;
|
||||
@ -139,11 +139,28 @@ function createIcon(options, enableTooltips, shortcuts) {
|
||||
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;
|
||||
|
||||
// Create icon element and append as a child to the button
|
||||
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);
|
||||
|
||||
return el;
|
||||
@ -1824,7 +1841,7 @@ EasyMDE.prototype.createToolbar = function (items) {
|
||||
if (item === '|') {
|
||||
el = createSep();
|
||||
} else {
|
||||
el = createIcon(item, self.options.toolbarTips, self.options.shortcuts);
|
||||
el = createToolbarButton(item, self.options.toolbarTips, self.options.shortcuts);
|
||||
}
|
||||
|
||||
// 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);
|
||||
className: string;
|
||||
title: string;
|
||||
noDisable?: boolean;
|
||||
noMobile?: boolean;
|
||||
}
|
||||
|
||||
interface Options {
|
||||
|
Loading…
x
Reference in New Issue
Block a user