tiny-markdown-editor 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tiny-mde.css +2 -6
- package/dist/tiny-mde.js +5488 -5066
- package/dist/tiny-mde.min.css +1 -1
- package/dist/tiny-mde.min.js +1 -1
- package/dist/tiny-mde.tiny.js +1 -1
- package/lib/TinyMDE.js +265 -506
- package/lib/TinyMDECommandBar.js +27 -102
- package/lib/grammar.js +102 -111
- package/lib/index.js +1 -3
- package/lib/svg/svg.js +1 -0
- package/lib/tiny.js +1 -2
- package/package.json +17 -17
package/lib/grammar.js
CHANGED
|
@@ -1,102 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.
|
|
8
|
-
|
|
9
|
-
require("core-js/modules/es.
|
|
10
|
-
|
|
11
|
-
require("core-js/modules/es.array.
|
|
12
|
-
|
|
13
|
-
require("core-js/modules/es.
|
|
14
|
-
|
|
15
|
-
require("core-js/modules/es.array.
|
|
16
|
-
|
|
17
|
-
require("core-js/modules/es.array.
|
|
18
|
-
|
|
19
|
-
require("core-js/modules/es.array.reduce");
|
|
20
|
-
|
|
21
|
-
require("core-js/modules/es.array.slice");
|
|
22
|
-
|
|
23
|
-
require("core-js/modules/es.function.name");
|
|
24
|
-
|
|
25
|
-
require("core-js/modules/es.map");
|
|
26
|
-
|
|
27
|
-
require("core-js/modules/es.object.get-prototype-of");
|
|
28
|
-
|
|
29
|
-
require("core-js/modules/es.object.keys");
|
|
30
|
-
|
|
31
|
-
require("core-js/modules/es.object.to-string");
|
|
32
|
-
|
|
33
|
-
require("core-js/modules/es.reflect.construct");
|
|
34
|
-
|
|
35
|
-
require("core-js/modules/es.regexp.constructor");
|
|
36
|
-
|
|
37
|
-
require("core-js/modules/es.regexp.exec");
|
|
38
|
-
|
|
39
|
-
require("core-js/modules/es.regexp.flags");
|
|
40
|
-
|
|
41
|
-
require("core-js/modules/es.regexp.to-string");
|
|
42
|
-
|
|
43
|
-
require("core-js/modules/es.string.iterator");
|
|
44
|
-
|
|
45
|
-
require("core-js/modules/es.string.match");
|
|
46
|
-
|
|
47
|
-
require("core-js/modules/es.string.replace");
|
|
48
|
-
|
|
49
|
-
require("core-js/modules/es.weak-map");
|
|
50
|
-
|
|
51
|
-
require("core-js/modules/web.dom-collections.iterator");
|
|
52
|
-
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
5
|
+
require("core-js/modules/es.object.define-property.js");
|
|
6
|
+
require("core-js/modules/es.array.iterator.js");
|
|
7
|
+
require("core-js/modules/es.object.to-string.js");
|
|
8
|
+
require("core-js/modules/es.string.iterator.js");
|
|
9
|
+
require("core-js/modules/es.weak-map.js");
|
|
10
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
11
|
+
require("core-js/modules/es.array.reduce.js");
|
|
12
|
+
require("core-js/modules/es.symbol.replace.js");
|
|
13
|
+
require("core-js/modules/es.symbol.js");
|
|
14
|
+
require("core-js/modules/es.symbol.description.js");
|
|
15
|
+
require("core-js/modules/es.array.slice.js");
|
|
16
|
+
require("core-js/modules/es.symbol.iterator.js");
|
|
17
|
+
require("core-js/modules/es.array.from.js");
|
|
53
18
|
Object.defineProperty(exports, "__esModule", {
|
|
54
19
|
value: true
|
|
55
20
|
});
|
|
21
|
+
exports.htmlBlockGrammar = exports.commands = void 0;
|
|
56
22
|
exports.htmlescape = htmlescape;
|
|
57
|
-
exports.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
23
|
+
exports.punctuationTrailing = exports.punctuationLeading = exports.lineGrammar = exports.inlineGrammar = void 0;
|
|
24
|
+
require("core-js/modules/es.regexp.constructor.js");
|
|
25
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
26
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
27
|
+
require("core-js/modules/es.object.keys.js");
|
|
28
|
+
require("core-js/modules/es.string.match.js");
|
|
29
|
+
require("core-js/modules/es.string.replace.js");
|
|
30
|
+
require("core-js/modules/es.regexp.flags.js");
|
|
31
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
63
32
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
64
|
-
|
|
65
33
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
66
|
-
|
|
67
34
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
68
|
-
|
|
69
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
70
|
-
|
|
35
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
71
36
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
72
|
-
|
|
73
37
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
74
|
-
|
|
75
|
-
function
|
|
76
|
-
|
|
77
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
78
|
-
|
|
79
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
80
|
-
|
|
81
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
82
|
-
|
|
83
|
-
function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
|
|
84
|
-
|
|
85
|
-
function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
|
|
86
|
-
|
|
87
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
88
|
-
|
|
89
|
-
function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
|
|
90
|
-
|
|
91
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
92
|
-
|
|
93
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
94
|
-
|
|
38
|
+
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, void 0, groups); }; var _super = RegExp.prototype, _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = new RegExp(re, flags); return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype); } function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { var i = g[name]; if ("number" == typeof i) groups[name] = result[i];else { for (var k = 0; void 0 === result[i[k]] && k + 1 < i.length;) { k++; } groups[name] = result[i[k]]; } return groups; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); if (result) { result.groups = buildGroups(result, this); var indices = result.indices; indices && (indices.groups = buildGroups(indices, this)); } return result; }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if ("string" == typeof substitution) { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { var group = groups[name]; return "$" + (Array.isArray(group) ? group.join("$") : group); })); } if ("function" == typeof substitution) { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = arguments; return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); }); } return _super[Symbol.replace].call(this, str, substitution); }, _wrapRegExp.apply(this, arguments); }
|
|
39
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
40
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
95
41
|
// const replacements = {
|
|
96
42
|
// ASCIIPunctuation: '!"#$%&\'()*+,\\-./:;<=>?@\\[\\]^_`{|}~',
|
|
97
43
|
// TriggerChars: '`_\*\[\]\(\)',
|
|
98
44
|
// Scheme: `[A-Za-z][A-Za-z0-9\+\.\-]{1,31}`,
|
|
99
45
|
// Email: `[a-zA-Z0-9.!#$%&'*+/=?^_\`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*`, // From CommonMark spec
|
|
46
|
+
|
|
100
47
|
// }
|
|
101
48
|
var replacements = {
|
|
102
49
|
ASCIIPunctuation: /[!"#$%&'()*+,\-./:;<=>?@[\]^_`{|}~\\]/,
|
|
@@ -114,16 +61,18 @@ var replacements = {
|
|
|
114
61
|
HTMLAttribute: /\s+[A-Za-z_:][A-Za-z0-9_.:-]*(?:HTMLAttValue)?/,
|
|
115
62
|
HTMLAttValue: /\s*=\s*(?:(?:'[^']*')|(?:"[^"]*")|(?:[^\s"'=<>`]+))/,
|
|
116
63
|
KnownTag: /address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul/
|
|
117
|
-
};
|
|
64
|
+
};
|
|
118
65
|
|
|
66
|
+
// From CommonMark.js.
|
|
119
67
|
var punctuationLeading = new RegExp(/^(?:[!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B])/);
|
|
120
68
|
exports.punctuationLeading = punctuationLeading;
|
|
121
|
-
var punctuationTrailing = new RegExp(/(?:[!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B])$/);
|
|
69
|
+
var punctuationTrailing = new RegExp(/(?:[!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B])$/);
|
|
70
|
+
|
|
71
|
+
// export const inlineTriggerChars = new RegExp(`[${replacements.TriggerChars}]`);
|
|
122
72
|
|
|
123
73
|
/**
|
|
124
74
|
* This is CommonMark's block grammar, but we're ignoring nested blocks here.
|
|
125
75
|
*/
|
|
126
|
-
|
|
127
76
|
exports.punctuationTrailing = punctuationTrailing;
|
|
128
77
|
var lineGrammar = {
|
|
129
78
|
TMH1: {
|
|
@@ -155,25 +104,25 @@ var lineGrammar = {
|
|
|
155
104
|
replacement: '<span class="TMMark TMMark_TMBlockquote">$1</span>$$2'
|
|
156
105
|
},
|
|
157
106
|
TMCodeFenceBacktickOpen: {
|
|
158
|
-
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(````*)
|
|
107
|
+
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(````*)\s*)([^`]*?)(\s*)$/, {
|
|
159
108
|
seq: 2
|
|
160
109
|
}),
|
|
161
110
|
replacement: '<span class="TMMark TMMark_TMCodeFenceBacktick">$1</span><span class="TMInfoString">$3</span>$4'
|
|
162
111
|
},
|
|
163
112
|
TMCodeFenceTildeOpen: {
|
|
164
|
-
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(~~~~*)
|
|
113
|
+
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(~~~~*)\s*)(.*?)(\s*)$/, {
|
|
165
114
|
seq: 2
|
|
166
115
|
}),
|
|
167
116
|
replacement: '<span class="TMMark TMMark_TMCodeFenceTilde">$1</span><span class="TMInfoString">$3</span>$4'
|
|
168
117
|
},
|
|
169
118
|
TMCodeFenceBacktickClose: {
|
|
170
|
-
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(````*))(
|
|
119
|
+
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(````*))(\s*)$/, {
|
|
171
120
|
seq: 2
|
|
172
121
|
}),
|
|
173
122
|
replacement: '<span class="TMMark TMMark_TMCodeFenceBacktick">$1</span>$3'
|
|
174
123
|
},
|
|
175
124
|
TMCodeFenceTildeClose: {
|
|
176
|
-
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(~~~~*))(
|
|
125
|
+
regexp: /*#__PURE__*/_wrapRegExp(/^( {0,3}(~~~~*))(\s*)$/, {
|
|
177
126
|
seq: 2
|
|
178
127
|
}),
|
|
179
128
|
replacement: '<span class="TMMark TMMark_TMCodeFenceTilde">$1</span>$3'
|
|
@@ -212,13 +161,12 @@ var lineGrammar = {
|
|
|
212
161
|
regexp: /^( {0,3}\[\s*)([^\s\]](?:[^\]]|\\\])*?)(\s*\]:\s*)((?:[^\s<>]+)|(?:<(?:[^<>\\]|\\.)*>))?(\s*)((?:\((?:[^()\\]|\\.)*\))|(?:"(?:[^"\\]|\\.)*")|(?:'(?:[^'\\]|\\.)*'))?(\s*)$/,
|
|
213
162
|
replacement: '<span class="TMMark TMMark_TMLinkReferenceDefinition">$1</span><span class="TMLinkLabel TMLinkLabel_Definition">$2</span><span class="TMMark TMMark_TMLinkReferenceDefinition">$3</span><span class="TMLinkDestination">$4</span>$5<span class="TMLinkTitle">$6</span>$7',
|
|
214
163
|
labelPlaceholder: 2 // this defines which placeholder in the above regex is the link "label"
|
|
215
|
-
|
|
216
164
|
}
|
|
217
165
|
};
|
|
166
|
+
|
|
218
167
|
/**
|
|
219
168
|
* HTML blocks have multiple different classes of opener and closer. This array defines all the cases
|
|
220
169
|
*/
|
|
221
|
-
|
|
222
170
|
exports.lineGrammar = lineGrammar;
|
|
223
171
|
var htmlBlockGrammar = [{
|
|
224
172
|
start: /^ {0,3}<(?:script|pre|style)(?:\s|>|$)/i,
|
|
@@ -249,12 +197,12 @@ var htmlBlockGrammar = [{
|
|
|
249
197
|
end: false,
|
|
250
198
|
paraInterrupt: false
|
|
251
199
|
}];
|
|
200
|
+
|
|
252
201
|
/**
|
|
253
202
|
* Structure of the object:
|
|
254
203
|
* Top level entries are rules, each consisting of a regular expressions (in string format) as well as a replacement.
|
|
255
204
|
* In the regular expressions, replacements from the object 'replacements' will be processed before compiling into the property regexp.
|
|
256
205
|
*/
|
|
257
|
-
|
|
258
206
|
exports.htmlBlockGrammar = htmlBlockGrammar;
|
|
259
207
|
var inlineGrammar = {
|
|
260
208
|
escape: {
|
|
@@ -290,55 +238,52 @@ var inlineGrammar = {
|
|
|
290
238
|
regexp: /^(.|(?:NotTriggerChar+))/,
|
|
291
239
|
replacement: '$1'
|
|
292
240
|
}
|
|
293
|
-
};
|
|
241
|
+
};
|
|
294
242
|
|
|
243
|
+
// Process replacements in regexps
|
|
295
244
|
exports.inlineGrammar = inlineGrammar;
|
|
296
|
-
var replacementRegexp = new RegExp(Object.keys(replacements).join('|'));
|
|
245
|
+
var replacementRegexp = new RegExp(Object.keys(replacements).join('|'));
|
|
297
246
|
|
|
247
|
+
// Inline
|
|
298
248
|
var inlineRules = _toConsumableArray(Object.keys(inlineGrammar));
|
|
299
|
-
|
|
300
249
|
var _iterator = _createForOfIteratorHelper(inlineRules),
|
|
301
|
-
|
|
302
|
-
|
|
250
|
+
_step;
|
|
303
251
|
try {
|
|
304
252
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
305
253
|
var _rule = _step.value;
|
|
306
|
-
var _re = inlineGrammar[_rule].regexp.source;
|
|
307
|
-
|
|
254
|
+
var _re = inlineGrammar[_rule].regexp.source;
|
|
255
|
+
// Replace while there is something to replace. This means it also works over multiple levels (replacements containing replacements)
|
|
308
256
|
while (_re.match(replacementRegexp)) {
|
|
309
257
|
_re = _re.replace(replacementRegexp, function (string) {
|
|
310
258
|
return replacements[string].source;
|
|
311
259
|
});
|
|
312
260
|
}
|
|
313
|
-
|
|
314
261
|
inlineGrammar[_rule].regexp = new RegExp(_re, inlineGrammar[_rule].regexp.flags);
|
|
315
|
-
}
|
|
262
|
+
}
|
|
316
263
|
|
|
264
|
+
// HTML Block (only opening rule is processed currently)
|
|
317
265
|
} catch (err) {
|
|
318
266
|
_iterator.e(err);
|
|
319
267
|
} finally {
|
|
320
268
|
_iterator.f();
|
|
321
269
|
}
|
|
322
|
-
|
|
323
270
|
for (var _i = 0, _htmlBlockGrammar = htmlBlockGrammar; _i < _htmlBlockGrammar.length; _i++) {
|
|
324
271
|
var rule = _htmlBlockGrammar[_i];
|
|
325
|
-
var re = rule.start.source;
|
|
326
|
-
|
|
272
|
+
var re = rule.start.source;
|
|
273
|
+
// Replace while there is something to replace. This means it also works over multiple levels (replacements containing replacements)
|
|
327
274
|
while (re.match(replacementRegexp)) {
|
|
328
275
|
re = re.replace(replacementRegexp, function (string) {
|
|
329
276
|
return replacements[string].source;
|
|
330
277
|
});
|
|
331
278
|
}
|
|
332
|
-
|
|
333
279
|
rule.start = new RegExp(re, rule.start.flags);
|
|
334
280
|
}
|
|
281
|
+
|
|
335
282
|
/**
|
|
336
283
|
* Escapes HTML special characters (<, >, and &) in the string.
|
|
337
284
|
* @param {string} string The raw string to be escaped
|
|
338
285
|
* @returns {string} The string, ready to be used in HTML
|
|
339
286
|
*/
|
|
340
|
-
|
|
341
|
-
|
|
342
287
|
function htmlescape(string) {
|
|
343
288
|
return (string ? string : '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
344
289
|
}
|
|
@@ -354,8 +299,6 @@ function htmlescape(string) {
|
|
|
354
299
|
* be inserted before and after the selection. The unset object contains a prePattern and a postPattern. Both should be regular expressions and
|
|
355
300
|
* they will be applied to the portion of the line before and after the selection (using String.replace, with an empty replacement string).
|
|
356
301
|
*/
|
|
357
|
-
|
|
358
|
-
|
|
359
302
|
var commands = {
|
|
360
303
|
// Replacements for unset for inline commands are '' by default
|
|
361
304
|
bold: {
|
|
@@ -393,8 +336,8 @@ var commands = {
|
|
|
393
336
|
prePattern: /`+$/,
|
|
394
337
|
postPattern: /^`+/
|
|
395
338
|
} // FIXME this doesn't ensure balanced backticks right now
|
|
396
|
-
|
|
397
339
|
},
|
|
340
|
+
|
|
398
341
|
strikethrough: {
|
|
399
342
|
type: 'inline',
|
|
400
343
|
className: 'TMStrikethrough',
|
|
@@ -431,6 +374,54 @@ var commands = {
|
|
|
431
374
|
replacement: '$2'
|
|
432
375
|
}
|
|
433
376
|
},
|
|
377
|
+
h3: {
|
|
378
|
+
type: 'line',
|
|
379
|
+
className: 'TMH3',
|
|
380
|
+
set: {
|
|
381
|
+
pattern: /^( {0,3}(?:(?:#+|[0-9]{1,9}[).]|[>\-*+])\s+)?)(.*)$/,
|
|
382
|
+
replacement: '### $2'
|
|
383
|
+
},
|
|
384
|
+
unset: {
|
|
385
|
+
pattern: /^( {0,3}###\s+)(.*?)((?:\s+#+\s*)?)$/,
|
|
386
|
+
replacement: '$2'
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
h4: {
|
|
390
|
+
type: 'line',
|
|
391
|
+
className: 'TMH4',
|
|
392
|
+
set: {
|
|
393
|
+
pattern: /^( {0,3}(?:(?:#+|[0-9]{1,9}[).]|[>\-*+])\s+)?)(.*)$/,
|
|
394
|
+
replacement: '#### $2'
|
|
395
|
+
},
|
|
396
|
+
unset: {
|
|
397
|
+
pattern: /^( {0,3}####\s+)(.*?)((?:\s+#+\s*)?)$/,
|
|
398
|
+
replacement: '$2'
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
h5: {
|
|
402
|
+
type: 'line',
|
|
403
|
+
className: 'TMH5',
|
|
404
|
+
set: {
|
|
405
|
+
pattern: /^( {0,3}(?:(?:#+|[0-9]{1,9}[).]|[>\-*+])\s+)?)(.*)$/,
|
|
406
|
+
replacement: '##### $2'
|
|
407
|
+
},
|
|
408
|
+
unset: {
|
|
409
|
+
pattern: /^( {0,3}#####\s+)(.*?)((?:\s+#+\s*)?)$/,
|
|
410
|
+
replacement: '$2'
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
h6: {
|
|
414
|
+
type: 'line',
|
|
415
|
+
className: 'TMH6',
|
|
416
|
+
set: {
|
|
417
|
+
pattern: /^( {0,3}(?:(?:#+|[0-9]{1,9}[).]|[>\-*+])\s+)?)(.*)$/,
|
|
418
|
+
replacement: '###### $2'
|
|
419
|
+
},
|
|
420
|
+
unset: {
|
|
421
|
+
pattern: /^( {0,3}######\s+)(.*?)((?:\s+#+\s*)?)$/,
|
|
422
|
+
replacement: '$2'
|
|
423
|
+
}
|
|
424
|
+
},
|
|
434
425
|
ul: {
|
|
435
426
|
type: 'line',
|
|
436
427
|
className: 'TMUL',
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -15,9 +16,6 @@ Object.defineProperty(exports, "Editor", {
|
|
|
15
16
|
return _TinyMDE.default;
|
|
16
17
|
}
|
|
17
18
|
});
|
|
18
|
-
|
|
19
19
|
var _TinyMDECommandBar = _interopRequireDefault(require("./TinyMDECommandBar"));
|
|
20
|
-
|
|
21
20
|
var _TinyMDE = _interopRequireDefault(require("./TinyMDE"));
|
|
22
|
-
|
|
23
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/lib/svg/svg.js
CHANGED
package/lib/tiny.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -9,7 +10,5 @@ Object.defineProperty(exports, "Editor", {
|
|
|
9
10
|
return _TinyMDE.default;
|
|
10
11
|
}
|
|
11
12
|
});
|
|
12
|
-
|
|
13
13
|
var _TinyMDE = _interopRequireDefault(require("./TinyMDE"));
|
|
14
|
-
|
|
15
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tiny-markdown-editor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "TinyMDE: A tiny, ultra low dependency, embeddable HTML/JavaScript Markdown editor.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -35,27 +35,27 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/core": "^7.11.6",
|
|
37
37
|
"@babel/preset-env": "^7.11.5",
|
|
38
|
-
"@rollup/plugin-babel": "^
|
|
39
|
-
"@rollup/plugin-commonjs": "^
|
|
40
|
-
"@rollup/plugin-node-resolve": "^
|
|
41
|
-
"@rollup/stream": "^
|
|
42
|
-
"autoprefixer": "^
|
|
43
|
-
"cssnano": "^
|
|
44
|
-
"del": "^
|
|
45
|
-
"eslint": "^
|
|
38
|
+
"@rollup/plugin-babel": "^6.0.2",
|
|
39
|
+
"@rollup/plugin-commonjs": "^23.0.2",
|
|
40
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
41
|
+
"@rollup/stream": "^2.0.0",
|
|
42
|
+
"autoprefixer": "^10.4.13",
|
|
43
|
+
"cssnano": "^5.1.14",
|
|
44
|
+
"del": "^7.0.0",
|
|
45
|
+
"eslint": "^8.26.0",
|
|
46
46
|
"express": "^4.17.1",
|
|
47
47
|
"gulp": "^4.0.2",
|
|
48
48
|
"gulp-babel": "^8.0.0",
|
|
49
|
-
"gulp-postcss": "^
|
|
49
|
+
"gulp-postcss": "^9.0.1",
|
|
50
50
|
"gulp-rename": "^2.0.0",
|
|
51
51
|
"gulp-size": "^3.0.0",
|
|
52
|
-
"gulp-terser": "^1.
|
|
53
|
-
"jest": "^
|
|
54
|
-
"jest-cli": "^
|
|
55
|
-
"jest-puppeteer": "^
|
|
56
|
-
"postcss-import": "^
|
|
57
|
-
"puppeteer": "^
|
|
58
|
-
"rollup": "^2.
|
|
52
|
+
"gulp-terser": "^2.1.0",
|
|
53
|
+
"jest": "^29.2.2",
|
|
54
|
+
"jest-cli": "^29.2.2",
|
|
55
|
+
"jest-puppeteer": "^6.1.1",
|
|
56
|
+
"postcss-import": "^15.0.0",
|
|
57
|
+
"puppeteer": "^19.2.2",
|
|
58
|
+
"rollup": "^2.79.1",
|
|
59
59
|
"rollup-plugin-eslint": "^7.0.0",
|
|
60
60
|
"terser": "^5.3.3",
|
|
61
61
|
"vinyl-buffer": "^1.0.1",
|