diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..41ee738 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: Bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +** Version information ** +- OS: [e.g. Windows, MacOS] +- Browser: [e.g. Chrome 72] +- EasyMDE version: [e.g. 2.5.1] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..f0d5b5a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: Feature +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots/mock-ups about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..33ea88f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,11 @@ +--- +name: Question +about: Ask a question if anything is unclear +title: '' +labels: Question +assignees: '' + +--- + +**Describe your question** +Please describe your question in as much detail as possible. diff --git a/README.md b/README.md index b9101b7..92298a7 100644 --- a/README.md +++ b/README.md @@ -283,7 +283,7 @@ horizontal-rule | drawHorizontalRule | Insert Horizontal Line
fa fa-minus preview | togglePreview | Toggle Preview
fa fa-eye no-disable side-by-side | toggleSideBySide | Toggle Side by Side
fa fa-columns no-disable no-mobile fullscreen | toggleFullScreen | Toggle Fullscreen
fa fa-arrows-alt no-disable no-mobile -guide | [This link](https://simplemde.com/markdown-guide) | Markdown Guide
fa fa-question-circle +guide | [This link](https://www.markdownguide.org/basic-syntax/) | Markdown Guide
fa fa-question-circle ### Toolbar customization diff --git a/package.json b/package.json index 55e2fd8..a55a913 100644 --- a/package.json +++ b/package.json @@ -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" }, diff --git a/src/js/easymde.js b/src/js/easymde.js index 66d99b1..0e5a29f 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -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", "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; // 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; @@ -1964,7 +1981,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 diff --git a/types/easymde.d.ts b/types/easymde.d.ts index b3157a4..07e9d4c 100644 --- a/types/easymde.d.ts +++ b/types/easymde.d.ts @@ -82,6 +82,8 @@ declare namespace EasyMDE { action: string | ((editor: EasyMDE) => void); className: string; title: string; + noDisable?: boolean; + noMobile?: boolean; } interface Options {