mirror of
https://github.com/Ionaru/easy-markdown-editor
synced 2025-09-24 16:40:55 -06:00
add char counter + max length
This commit is contained in:
parent
9796aaafef
commit
acc01d1e4d
6
dist/easymde.min.css
vendored
6
dist/easymde.min.css
vendored
File diff suppressed because one or more lines are too long
6
dist/easymde.min.js
vendored
6
dist/easymde.min.js
vendored
File diff suppressed because one or more lines are too long
@ -32,7 +32,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror-placeholder {
|
.CodeMirror-placeholder {
|
||||||
opacity: .5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror-focused .CodeMirror-selected {
|
.CodeMirror-focused .CodeMirror-selected {
|
||||||
@ -57,16 +57,16 @@
|
|||||||
.editor-toolbar:after,
|
.editor-toolbar:after,
|
||||||
.editor-toolbar:before {
|
.editor-toolbar:before {
|
||||||
display: block;
|
display: block;
|
||||||
content: ' ';
|
content: " ";
|
||||||
height: 1px;
|
height: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-toolbar:before {
|
.editor-toolbar:before {
|
||||||
margin-bottom: 8px
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-toolbar:after {
|
.editor-toolbar:after {
|
||||||
margin-top: 8px
|
margin-top: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-toolbar.fullscreen {
|
.editor-toolbar.fullscreen {
|
||||||
@ -91,7 +91,13 @@
|
|||||||
width: 20px;
|
width: 20px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background: -moz-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -moz-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(255, 255, 255, 0)));
|
background: -webkit-gradient(
|
||||||
|
linear,
|
||||||
|
left top,
|
||||||
|
right top,
|
||||||
|
color-stop(0%, rgba(255, 255, 255, 1)),
|
||||||
|
color-stop(100%, rgba(255, 255, 255, 0))
|
||||||
|
);
|
||||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
background: -o-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -o-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
background: -ms-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -ms-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
@ -107,7 +113,13 @@
|
|||||||
width: 20px;
|
width: 20px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(255, 255, 255, 1)));
|
background: -webkit-gradient(
|
||||||
|
linear,
|
||||||
|
left top,
|
||||||
|
right top,
|
||||||
|
color-stop(0%, rgba(255, 255, 255, 0)),
|
||||||
|
color-stop(100%, rgba(255, 255, 255, 1))
|
||||||
|
);
|
||||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
@ -160,7 +172,13 @@
|
|||||||
width: 20px;
|
width: 20px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background: -moz-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -moz-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(255, 255, 255, 0)));
|
background: -webkit-gradient(
|
||||||
|
linear,
|
||||||
|
left top,
|
||||||
|
right top,
|
||||||
|
color-stop(0%, rgba(255, 255, 255, 1)),
|
||||||
|
color-stop(100%, rgba(255, 255, 255, 0))
|
||||||
|
);
|
||||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
background: -o-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -o-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
background: -ms-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
background: -ms-linear-gradient(left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
|
||||||
@ -176,7 +194,13 @@
|
|||||||
width: 20px;
|
width: 20px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(255, 255, 255, 1)));
|
background: -webkit-gradient(
|
||||||
|
linear,
|
||||||
|
left top,
|
||||||
|
right top,
|
||||||
|
color-stop(0%, rgba(255, 255, 255, 0)),
|
||||||
|
color-stop(100%, rgba(255, 255, 255, 1))
|
||||||
|
);
|
||||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
|
||||||
@ -271,7 +295,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editor-toolbar.disabled-for-preview button:not(.no-disable) {
|
.editor-toolbar.disabled-for-preview button:not(.no-disable) {
|
||||||
opacity: .6;
|
opacity: 0.6;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -295,15 +319,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editor-statusbar .lines:before {
|
.editor-statusbar .lines:before {
|
||||||
content: 'lines: '
|
content: "lines: ";
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-statusbar .words:before {
|
.editor-statusbar .words:before {
|
||||||
content: 'words: '
|
content: "words: ";
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-statusbar .characters:before {
|
.editor-statusbar .characters:before {
|
||||||
content: 'characters: '
|
content: "characters: ";
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-statusbar .characters.max-length-exceeded .counter {
|
||||||
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-preview-full {
|
.editor-preview-full {
|
||||||
@ -333,11 +361,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editor-preview-active-side {
|
.editor-preview-active-side {
|
||||||
display: block
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-preview-active {
|
.editor-preview-active {
|
||||||
display: block
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-preview {
|
.editor-preview {
|
||||||
@ -346,7 +374,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editor-preview > p {
|
.editor-preview > p {
|
||||||
margin-top: 0
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-preview pre {
|
.editor-preview pre {
|
||||||
@ -393,7 +421,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cm-s-easymde .cm-comment {
|
.cm-s-easymde .cm-comment {
|
||||||
background: rgba(0, 0, 0, .05);
|
background: rgba(0, 0, 0, 0.05);
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1240,6 +1240,23 @@ function wordCount(data) {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function maxLengthCount(el, value, options) {
|
||||||
|
el.innerHTML = '';
|
||||||
|
var counter = document.createElement('span');
|
||||||
|
counter.classList.add('counter');
|
||||||
|
counter.innerHTML = String(value.length);
|
||||||
|
el.append(counter);
|
||||||
|
if (undefined !== options.maxLength && options.maxLength > 0) {
|
||||||
|
var maxLength = document.createElement('span');
|
||||||
|
maxLength.classList.add('max-length');
|
||||||
|
if (value.length > options.maxLength) {
|
||||||
|
el.classList.add('max-length-exceeded');
|
||||||
|
}
|
||||||
|
maxLength.innerHTML = String(' / ' + options.maxLength);
|
||||||
|
el.append(maxLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var toolbarBuiltInButtons = {
|
var toolbarBuiltInButtons = {
|
||||||
'bold': {
|
'bold': {
|
||||||
name: 'bold',
|
name: 'bold',
|
||||||
@ -2362,6 +2379,13 @@ EasyMDE.prototype.createStatusbar = function (status) {
|
|||||||
var pos = cm.getCursor();
|
var pos = cm.getCursor();
|
||||||
el.innerHTML = pos.line + ':' + pos.ch;
|
el.innerHTML = pos.line + ':' + pos.ch;
|
||||||
};
|
};
|
||||||
|
} else if (name === 'characters') {
|
||||||
|
defaultValue = function (el) {
|
||||||
|
maxLengthCount(el, 0, options);
|
||||||
|
};
|
||||||
|
onUpdate = function (el) {
|
||||||
|
maxLengthCount(el, cm.getValue(), options);
|
||||||
|
};
|
||||||
} else if (name === 'autosave') {
|
} else if (name === 'autosave') {
|
||||||
defaultValue = function (el) {
|
defaultValue = function (el) {
|
||||||
if (options.autosave != undefined && options.autosave.enabled === true) {
|
if (options.autosave != undefined && options.autosave.enabled === true) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user