diff --git a/src/js/easymde.js b/src/js/easymde.js index 761f604..dfcda5c 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -167,29 +167,35 @@ function createToolbarButton(options, enableActions, 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", "fas", "fa-something" and "fa-some-icon-1", but not "fanfare". - if (classNamePart.match(/^fa([srlb]|(-[\w-]*)|$)/)) { - iconClasses.push(classNamePart); - } else { - el.classList.add(classNamePart); + // If there is a custom icon, use that + if (typeof options.icon !== 'undefined') { + el.innerHTML = options.icon; + } else { + // 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", "fas", "fa-something" and "fa-some-icon-1", but not "fanfare". + if (classNamePart.match(/^fa([srlb]|(-[\w-]*)|$)/)) { + 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 - var icon = document.createElement('i'); - for (var iconClassIndex = 0; iconClassIndex < iconClasses.length; iconClassIndex++) { - var iconClass = iconClasses[iconClassIndex]; - icon.classList.add(iconClass); + // Create icon element and append as a child to the button + var icon = document.createElement('i'); + for (var iconClassIndex = 0; iconClassIndex < iconClasses.length; iconClassIndex++) { + var iconClass = iconClasses[iconClassIndex]; + icon.classList.add(iconClass); + } + el.appendChild(icon); } - el.appendChild(icon); if (options.action && enableActions) { if (typeof options.action === 'function') {