highmark-markdown 0.0.71 → 0.0.73
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/example.js +843 -424
- package/lib/example/constants.js +5 -1
- package/lib/example/view/div/preview.js +225 -0
- package/lib/example/view/div/sizeable/right.js +2 -2
- package/lib/example/view.js +11 -6
- package/lib/markdown/bnf.js +2 -2
- package/lib/node/markdown/anchor.js +2 -2
- package/lib/node/markdown/emailLink.js +175 -0
- package/lib/node/markdown/footnoteItem.js +2 -2
- package/lib/node/markdown/footnotesList.js +10 -7
- package/lib/node/markdown/line.js +6 -8
- package/lib/node/markdown/link.js +22 -6
- package/lib/node/markdown/markedText.js +139 -0
- package/lib/node/markdown/{text.js → plainText.js} +10 -10
- package/lib/node/markdown/stronglyEmphasisedText.js +2 -3
- package/lib/node/markdown/tableCell.js +6 -7
- package/lib/node/markdown.js +26 -26
- package/lib/nodeMap.js +5 -4
- package/lib/ruleNameToHTMLMap.js +10 -7
- package/lib/ruleNames.js +15 -10
- package/lib/utilities/childNodes.js +26 -26
- package/package.json +1 -1
- package/src/example/constants.js +2 -0
- package/src/example/view/div/preview.js +49 -0
- package/src/example/view/div/sizeable/right.js +1 -1
- package/src/example/view.js +19 -4
- package/src/markdown/bnf.js +40 -19
- package/src/node/markdown/anchor.js +1 -1
- package/src/node/markdown/{mailToLink.js → emailLink.js} +2 -2
- package/src/node/markdown/footnoteItem.js +1 -1
- package/src/node/markdown/footnotesList.js +11 -7
- package/src/node/markdown/line.js +11 -7
- package/src/node/markdown/link.js +30 -5
- package/src/node/markdown/markedText.js +29 -0
- package/src/node/markdown/{text.js → plainText.js} +2 -2
- package/src/node/markdown/stronglyEmphasisedText.js +1 -3
- package/src/node/markdown/tableCell.js +11 -10
- package/src/node/markdown.js +42 -41
- package/src/nodeMap.js +56 -51
- package/src/ruleNameToHTMLMap.js +15 -10
- package/src/ruleNames.js +6 -4
- package/src/utilities/childNodes.js +25 -25
- package/lib/node/markdown/mailToLink.js +0 -175
|
@@ -17,7 +17,7 @@ _export(exports, {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
var _necessary = require("necessary");
|
|
20
|
-
var
|
|
20
|
+
var _plainText = /*#__PURE__*/ _interop_require_default(require("../node/markdown/plainText"));
|
|
21
21
|
var _constants = require("../constants");
|
|
22
22
|
var _content = require("./content");
|
|
23
23
|
function _instanceof(left, right) {
|
|
@@ -34,16 +34,16 @@ function _interop_require_default(obj) {
|
|
|
34
34
|
}
|
|
35
35
|
var clear = _necessary.arrayUtilities.clear;
|
|
36
36
|
function domElementsFromChildNodes(childNodes, context) {
|
|
37
|
-
var domElements = [],
|
|
37
|
+
var domElements = [], plainTextMarkdownNodes = [];
|
|
38
38
|
childNodes.forEach(function(childNode) {
|
|
39
39
|
var childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
40
40
|
if (childNodeNonTerminalNode) {
|
|
41
|
-
var
|
|
42
|
-
if (
|
|
43
|
-
var
|
|
44
|
-
|
|
41
|
+
var childNodePlainTextMarkdownNode = _instanceof(childNode, _plainText.default);
|
|
42
|
+
if (childNodePlainTextMarkdownNode) {
|
|
43
|
+
var plainTextMarkdownNode = childNode; ///
|
|
44
|
+
plainTextMarkdownNodes.push(plainTextMarkdownNode);
|
|
45
45
|
} else {
|
|
46
|
-
var textDOMElement =
|
|
46
|
+
var textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context);
|
|
47
47
|
if (textDOMElement !== null) {
|
|
48
48
|
var domElement = textDOMElement; ///
|
|
49
49
|
domElements.push(domElement);
|
|
@@ -55,7 +55,7 @@ function domElementsFromChildNodes(childNodes, context) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
-
var textDOMElement =
|
|
58
|
+
var textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context);
|
|
59
59
|
if (textDOMElement !== null) {
|
|
60
60
|
var domElement = textDOMElement; ///
|
|
61
61
|
domElements.push(domElement);
|
|
@@ -64,16 +64,16 @@ function domElementsFromChildNodes(childNodes, context) {
|
|
|
64
64
|
}
|
|
65
65
|
function htmlFromChildNodes(childNodes, context) {
|
|
66
66
|
var html;
|
|
67
|
-
var htmls = [],
|
|
67
|
+
var htmls = [], plainTextMarkdownNodes = [];
|
|
68
68
|
childNodes.forEach(function(childNode) {
|
|
69
69
|
var childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
70
70
|
if (childNodeNonTerminalNode) {
|
|
71
|
-
var
|
|
72
|
-
if (
|
|
73
|
-
var
|
|
74
|
-
|
|
71
|
+
var childNodePlainTextMarkdownNode = _instanceof(childNode, _plainText.default);
|
|
72
|
+
if (childNodePlainTextMarkdownNode) {
|
|
73
|
+
var plainTextMarkdownNode = childNode; ///
|
|
74
|
+
plainTextMarkdownNodes.push(plainTextMarkdownNode);
|
|
75
75
|
} else {
|
|
76
|
-
html =
|
|
76
|
+
html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context);
|
|
77
77
|
if (html !== null) {
|
|
78
78
|
htmls.push(html);
|
|
79
79
|
}
|
|
@@ -85,32 +85,32 @@ function htmlFromChildNodes(childNodes, context) {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
|
-
html =
|
|
88
|
+
html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context);
|
|
89
89
|
if (html !== null) {
|
|
90
90
|
htmls.push(html);
|
|
91
91
|
}
|
|
92
92
|
html = htmls.join(_constants.EMPTY_STRING);
|
|
93
93
|
return html;
|
|
94
94
|
}
|
|
95
|
-
function
|
|
95
|
+
function textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context) {
|
|
96
96
|
var textDOMElement = null;
|
|
97
|
-
var
|
|
98
|
-
if (
|
|
99
|
-
var markdownNodes =
|
|
97
|
+
var plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
|
|
98
|
+
if (plainTextMarkdownNodesLength > 0) {
|
|
99
|
+
var markdownNodes = plainTextMarkdownNodes, content = (0, _content.contentFromMarkdownNodes)(markdownNodes, context);
|
|
100
100
|
textDOMElement = document.createTextNode(content);
|
|
101
|
-
clear(
|
|
101
|
+
clear(plainTextMarkdownNodes);
|
|
102
102
|
}
|
|
103
103
|
return textDOMElement;
|
|
104
104
|
}
|
|
105
|
-
function
|
|
105
|
+
function htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context) {
|
|
106
106
|
var html = null;
|
|
107
|
-
var
|
|
108
|
-
if (
|
|
109
|
-
var markdownNodes =
|
|
107
|
+
var plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
|
|
108
|
+
if (plainTextMarkdownNodesLength > 0) {
|
|
109
|
+
var markdownNodes = plainTextMarkdownNodes, content = (0, _content.contentFromMarkdownNodes)(markdownNodes, context);
|
|
110
110
|
html = content;
|
|
111
|
-
clear(
|
|
111
|
+
clear(plainTextMarkdownNodes);
|
|
112
112
|
}
|
|
113
113
|
return html;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY2hpbGROb2Rlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBQbGFpblRleHRNYXJrZG93bk5vZGUgZnJvbSBcIi4uL25vZGUvbWFya2Rvd24vcGxhaW5UZXh0XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyB9IGZyb20gXCIuL2NvbnRlbnRcIjtcblxuY29uc3QgeyBjbGVhciB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBkb21FbGVtZW50c0Zyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZG9tRWxlbWVudHMgPSBbXSxcbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUgPSAoY2hpbGROb2RlIGluc3RhbmNlb2YgUGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMucHVzaChwbGFpblRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dERPTUVsZW1lbnQgPSB0ZXh0RE9NRWxlbWVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNvbnRleHQpXG5cbiAgICAgICAgaWYgKHRleHRET01FbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IHRleHRET01FbGVtZW50OyAgLy8vXG5cbiAgICAgICAgICBkb21FbGVtZW50cy5wdXNoKGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IGNoaWxkTm9kZS5jcmVhdGVET01FbGVtZW50KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChkb21FbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgZG9tRWxlbWVudHMucHVzaChkb21FbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgdGV4dERPTUVsZW1lbnQgPSB0ZXh0RE9NRWxlbWVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNvbnRleHQpXG5cbiAgaWYgKHRleHRET01FbGVtZW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRleHRET01FbGVtZW50OyAgLy8vXG5cbiAgICBkb21FbGVtZW50cy5wdXNoKGRvbUVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGRvbUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IGh0bWw7XG5cbiAgY29uc3QgaHRtbHMgPSBbXSxcbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUgPSAoY2hpbGROb2RlIGluc3RhbmNlb2YgUGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMucHVzaChwbGFpblRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaHRtbCA9IGh0bWxGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjb250ZXh0KVxuXG4gICAgICAgIGlmIChodG1sICE9PSBudWxsKSB7XG4gICAgICAgICAgaHRtbHMucHVzaChodG1sKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGVudCA9IG51bGw7XG5cbiAgICAgICAgaHRtbCA9IGNoaWxkTm9kZS5hc0hUTUwoaW5kZW50LCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoaHRtbCAhPT0gbnVsbCkge1xuICAgICAgICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGh0bWwgPSBodG1sRnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dClcblxuICBpZiAoaHRtbCAhPT0gbnVsbCkge1xuICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gIH1cblxuICBodG1sID0gaHRtbHMuam9pbihFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiB0ZXh0RE9NRWxlbWVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IHRleHRET01FbGVtZW50ID0gbnVsbDtcblxuICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID0gcGxhaW5UZXh0TWFya2Rvd25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKHBsYWluVGV4dE1hcmtkb3duTm9kZXNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgbWFya2Rvd25Ob2RlcyA9IHBsYWluVGV4dE1hcmtkb3duTm9kZXMsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gY29udGVudEZyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgdGV4dERPTUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcblxuICAgIGNsZWFyKHBsYWluVGV4dE1hcmtkb3duTm9kZXMpO1xuICB9XG5cbiAgcmV0dXJuIHRleHRET01FbGVtZW50O1xufVxuXG5mdW5jdGlvbiBodG1sRnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBsZXQgaHRtbCA9IG51bGw7XG5cbiAgY29uc3QgcGxhaW5UZXh0TWFya2Rvd25Ob2Rlc0xlbmd0aCA9IHBsYWluVGV4dE1hcmtkb3duTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChwbGFpblRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IG1hcmtkb3duTm9kZXMgPSBwbGFpblRleHRNYXJrZG93bk5vZGVzLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyhtYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICAgIGh0bWwgPSBjb250ZW50O1xuXG4gICAgY2xlYXIocGxhaW5UZXh0TWFya2Rvd25Ob2Rlcyk7XG4gIH1cblxuICByZXR1cm4gaHRtbDtcbn1cbiJdLCJuYW1lcyI6WyJkb21FbGVtZW50c0Zyb21DaGlsZE5vZGVzIiwiaHRtbEZyb21DaGlsZE5vZGVzIiwiY2xlYXIiLCJhcnJheVV0aWxpdGllcyIsImNoaWxkTm9kZXMiLCJjb250ZXh0IiwiZG9tRWxlbWVudHMiLCJwbGFpblRleHRNYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwiUGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwicGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwicHVzaCIsInRleHRET01FbGVtZW50IiwidGV4dERPTUVsZW1lbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyIsImRvbUVsZW1lbnQiLCJjcmVhdGVET01FbGVtZW50IiwiaHRtbCIsImh0bWxzIiwiaHRtbEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzIiwiaW5kZW50IiwiYXNIVE1MIiwiam9pbiIsIkVNUFRZX1NUUklORyIsInBsYWluVGV4dE1hcmtkb3duTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtYXJrZG93bk5vZGVzIiwiY29udGVudCIsImNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVdnQkEseUJBQXlCO2VBQXpCQTs7SUEyQ0FDLGtCQUFrQjtlQUFsQkE7Ozt5QkFwRGU7Z0VBRUc7eUJBRUw7dUJBQ1k7Ozs7Ozs7Ozs7Ozs7QUFFekMsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFRCxTQUFTRiwwQkFB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
|
package/package.json
CHANGED
package/src/example/constants.js
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import withStyle from "easy-with-style";
|
|
4
|
+
|
|
5
|
+
import { Element } from "easy";
|
|
6
|
+
|
|
7
|
+
import { EMPTY_STRING } from "../../constants";
|
|
8
|
+
|
|
9
|
+
class PreviewDiv extends Element {
|
|
10
|
+
clear() {
|
|
11
|
+
const html = EMPTY_STRING;
|
|
12
|
+
|
|
13
|
+
this.html(html);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
update(domElement) {
|
|
17
|
+
this.clear();
|
|
18
|
+
|
|
19
|
+
const childDOMElement = domElement; ///
|
|
20
|
+
|
|
21
|
+
domElement = this.getDOMElement();
|
|
22
|
+
|
|
23
|
+
domElement.appendChild(childDOMElement);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
parentContext() {
|
|
27
|
+
const clearPreviewDiv = this.clear.bind(this), ///
|
|
28
|
+
updatePreviewDiv = this.update.bind(this); ///
|
|
29
|
+
|
|
30
|
+
return ({
|
|
31
|
+
clearPreviewDiv,
|
|
32
|
+
updatePreviewDiv
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static tagName = "div";
|
|
37
|
+
|
|
38
|
+
static defaultProperties = {
|
|
39
|
+
className: "preview"
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default withStyle(PreviewDiv)`
|
|
44
|
+
|
|
45
|
+
border: 1px solid darkgrey;
|
|
46
|
+
padding: 3rem;
|
|
47
|
+
font-size: 1.6rem;
|
|
48
|
+
|
|
49
|
+
`;
|
package/src/example/view.js
CHANGED
|
@@ -6,6 +6,7 @@ import { Element } from "easy";
|
|
|
6
6
|
import { RowDiv, RowsDiv, ColumnDiv, ColumnsDiv, VerticalSplitterDiv, HorizontalSplitterDiv } from "easy-layout";
|
|
7
7
|
|
|
8
8
|
import XMP from "./view/xmp";
|
|
9
|
+
import PreviewDiv from "./view/div/preview";
|
|
9
10
|
import SubHeading from "./view/subHeading";
|
|
10
11
|
import BNFTextarea from "./view/textarea/bnf";
|
|
11
12
|
import LeftSizeableDiv from "./view/div/sizeable/left";
|
|
@@ -14,6 +15,7 @@ import MarkdownTextarea from "./view/textarea/markdown";
|
|
|
14
15
|
import ParseTreeTextarea from "./view/textarea/parseTree";
|
|
15
16
|
import LexicalEntriesTextarea from "./view/textarea/lexicalEntries";
|
|
16
17
|
|
|
18
|
+
import { DOCUMENT_DIVISION_NAME } from "./constants";
|
|
17
19
|
import { MarkdownLexer, MarkdownParser } from "../index";
|
|
18
20
|
|
|
19
21
|
const { bnf } = MarkdownParser,
|
|
@@ -38,16 +40,23 @@ class View extends Element {
|
|
|
38
40
|
let parseTree = null;
|
|
39
41
|
|
|
40
42
|
if (node !== null) {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
+
const divisionName = DOCUMENT_DIVISION_NAME,
|
|
44
|
+
context = {
|
|
45
|
+
tokens,
|
|
46
|
+
divisionName
|
|
43
47
|
},
|
|
44
|
-
html = node.asHTML(context)
|
|
48
|
+
html = node.asHTML(context),
|
|
49
|
+
domElement = node.createDOMElement(context);
|
|
45
50
|
|
|
46
51
|
this.xmpHTML(html);
|
|
47
52
|
|
|
53
|
+
this.updatePreviewDiv(domElement);
|
|
54
|
+
|
|
48
55
|
parseTree = node.asParseTree(tokens);
|
|
49
56
|
} else {
|
|
50
57
|
this.clearXMP();
|
|
58
|
+
|
|
59
|
+
this.clearPreviewDiv();
|
|
51
60
|
}
|
|
52
61
|
|
|
53
62
|
this.setParseTree(parseTree);
|
|
@@ -80,6 +89,10 @@ class View extends Element {
|
|
|
80
89
|
<HorizontalSplitterDiv/>
|
|
81
90
|
<RowDiv>
|
|
82
91
|
<RowsDiv>
|
|
92
|
+
<SubHeading>
|
|
93
|
+
Preview
|
|
94
|
+
</SubHeading>
|
|
95
|
+
<PreviewDiv/>
|
|
83
96
|
<SubHeading>
|
|
84
97
|
Markdown
|
|
85
98
|
</SubHeading>
|
|
@@ -110,7 +123,9 @@ class View extends Element {
|
|
|
110
123
|
}
|
|
111
124
|
|
|
112
125
|
static initialMarkdown = `
|
|
113
|
-
|
|
126
|
+
|asdf|
|
|
127
|
+
------
|
|
128
|
+
|asdf|
|
|
114
129
|
`;
|
|
115
130
|
|
|
116
131
|
static tagName = "div";
|
package/src/markdown/bnf.js
CHANGED
|
@@ -112,10 +112,29 @@ const bnf = `
|
|
|
112
112
|
emptyTableCell ::= "." [vertical-bar];
|
|
113
113
|
|
|
114
114
|
|
|
115
|
-
tableCell ::=
|
|
115
|
+
tableCell ::= markedText... [vertical-bar] ;
|
|
116
116
|
|
|
117
117
|
|
|
118
|
-
line. ::=
|
|
118
|
+
line. ::= markedText endOfLine ;
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
markedText ::= ( link
|
|
122
|
+
|
|
123
|
+
| image
|
|
124
|
+
|
|
125
|
+
| emailLink
|
|
126
|
+
|
|
127
|
+
| hyperlink
|
|
128
|
+
|
|
129
|
+
| inlineListing
|
|
130
|
+
|
|
131
|
+
| stronglyEmphasisedText
|
|
132
|
+
|
|
133
|
+
| emphasisedText
|
|
134
|
+
|
|
135
|
+
| strongText
|
|
136
|
+
|
|
137
|
+
| plainText )+ ;
|
|
119
138
|
|
|
120
139
|
|
|
121
140
|
link. ::= "[^" [identifier] "]" ;
|
|
@@ -124,23 +143,20 @@ const bnf = `
|
|
|
124
143
|
image. ::= "![" inlineText... "]"<NO_WHITESPACE>"(" [path] ")" ;
|
|
125
144
|
|
|
126
145
|
|
|
127
|
-
|
|
146
|
+
emailLink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" address ")"
|
|
128
147
|
|
|
129
|
-
|
|
|
148
|
+
| address
|
|
130
149
|
|
|
131
150
|
;
|
|
132
151
|
|
|
133
152
|
|
|
134
|
-
|
|
153
|
+
hyperlink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" url ")"
|
|
135
154
|
|
|
136
|
-
|
|
|
155
|
+
| url
|
|
137
156
|
|
|
138
157
|
;
|
|
139
158
|
|
|
140
159
|
|
|
141
|
-
reference. ::= "[^" [identifier] "]:" ;
|
|
142
|
-
|
|
143
|
-
|
|
144
160
|
inlineListing ::= [backticked-literal] ;
|
|
145
161
|
|
|
146
162
|
|
|
@@ -153,16 +169,7 @@ const bnf = `
|
|
|
153
169
|
strongText ::= [double-asterisk] inlineText... [double-asterisk] ;
|
|
154
170
|
|
|
155
171
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
inlineText ::= text+ ;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
anchor ::= [number] ;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
text ::= [regular-expression]
|
|
172
|
+
plainText ::= [regular-expression]
|
|
166
173
|
|
|
167
174
|
| [string-literal]
|
|
168
175
|
|
|
@@ -184,6 +191,8 @@ const bnf = `
|
|
|
184
191
|
|
|
185
192
|
| [single-dash]
|
|
186
193
|
|
|
194
|
+
| [vertical-bar]
|
|
195
|
+
|
|
187
196
|
| [many-dashes]
|
|
188
197
|
|
|
189
198
|
| [few-dashes]
|
|
@@ -207,6 +216,18 @@ const bnf = `
|
|
|
207
216
|
;
|
|
208
217
|
|
|
209
218
|
|
|
219
|
+
reference. ::= "[^" [identifier] "]:" ;
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
blockText. ::= ( plainText | endOfLine )+ ;
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
inlineText ::= plainText+ ;
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
anchor ::= [number] ;
|
|
229
|
+
|
|
230
|
+
|
|
210
231
|
url ::= [scheme]? [domain] [path]? ;
|
|
211
232
|
|
|
212
233
|
|
|
@@ -31,7 +31,7 @@ export default class AnchorMarkdownNode extends MarkdownNode {
|
|
|
31
31
|
static fromIdentifier(identifier) {
|
|
32
32
|
const ruleName = ANCHOR_RULE_NAME,
|
|
33
33
|
childNodes = [],
|
|
34
|
-
opacity =
|
|
34
|
+
opacity = null,
|
|
35
35
|
anchorMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(AnchorMarkdownNode, ruleName, childNodes, opacity, identifier);
|
|
36
36
|
|
|
37
37
|
return anchorMarkdownNode;
|
|
@@ -8,7 +8,7 @@ import { HREF_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
|
8
8
|
|
|
9
9
|
const { first, second, secondLast } = arrayUtilities;
|
|
10
10
|
|
|
11
|
-
export default class
|
|
11
|
+
export default class EmailLinkMarkdownNode extends MarkdownNode {
|
|
12
12
|
attributeName(context) {
|
|
13
13
|
const attributeName = HREF_ATTRIBUTE_NAME;
|
|
14
14
|
|
|
@@ -79,5 +79,5 @@ export default class MailToLinkMarkdownNode extends MarkdownNode {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(
|
|
82
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(EmailLinkMarkdownNode, ruleName, childNodes, opacity); }
|
|
83
83
|
}
|
|
@@ -29,7 +29,7 @@ export default class FootnoteItemMarkdownNode extends MarkdownNode {
|
|
|
29
29
|
anchorMarkdownNode,
|
|
30
30
|
paragraphMarkdownNode
|
|
31
31
|
],
|
|
32
|
-
opacity =
|
|
32
|
+
opacity = null,
|
|
33
33
|
footnoteItemMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(FootnoteItemMarkdownNode, ruleName, childNodes, opacity);
|
|
34
34
|
|
|
35
35
|
return footnoteItemMarkdownNode;
|
|
@@ -28,7 +28,7 @@ export default class FootnotesListMarkdownNode extends MarkdownNode {
|
|
|
28
28
|
if (footnoteItemMarkdownNodesLength > 0) {
|
|
29
29
|
const ruleName = FOOTNOTES_LIST_RULE_NAME,
|
|
30
30
|
childNodes = footnoteItemMarkdownNodes, ///
|
|
31
|
-
opacity =
|
|
31
|
+
opacity = null;
|
|
32
32
|
|
|
33
33
|
footnotesListMarkdownNode = MarkdownNode.fromRuleNameChildNodesAndOpacity(FootnotesListMarkdownNode, ruleName, childNodes, opacity);
|
|
34
34
|
}
|
|
@@ -42,15 +42,19 @@ function footnoteItemMarkdownNodesFromDivisionMarkdownNode(divisionMarkdownNode,
|
|
|
42
42
|
node = divisionMarkdownNode, ///
|
|
43
43
|
linkMarkdownNodes = linkMarkdownNodesFromNode(node),
|
|
44
44
|
footnoteMarkdownNodes = footnoteMarkdownNodesFromNode(node),
|
|
45
|
-
identifiers = footnoteMarkdownNodes.
|
|
46
|
-
const identifier = footnoteMarkdownNode.identifier(context)
|
|
45
|
+
identifiers = footnoteMarkdownNodes.reduce((identifiers, footnoteMarkdownNode) => {
|
|
46
|
+
const identifier = footnoteMarkdownNode.identifier(context),
|
|
47
|
+
identifiersIncludesIdentifier = identifiers.includes(identifier);
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
if (!identifiersIncludesIdentifier) {
|
|
50
|
+
identifiers.push(identifier);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return identifiers;
|
|
54
|
+
}, []);
|
|
50
55
|
|
|
51
56
|
linkMarkdownNodes.forEach((linkMarkdownNode) => {
|
|
52
|
-
const
|
|
53
|
-
identifier = linkMarkdownNodeIdentifier, ///
|
|
57
|
+
const identifier = linkMarkdownNode.identifier(context),
|
|
54
58
|
index = identifiers.indexOf(identifier);
|
|
55
59
|
|
|
56
60
|
if (index > -1) {
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
3
5
|
import MarkdownNode from "../../node/markdown";
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
const { first } = arrayUtilities;
|
|
6
8
|
|
|
7
9
|
export default class LineMarkdownNode extends MarkdownNode {
|
|
8
10
|
childNodesAsHTML(indent, context) {
|
|
9
11
|
const childNodes = this.getChildNodes(),
|
|
10
|
-
|
|
12
|
+
firstChildNode = first(childNodes),
|
|
13
|
+
markedTextChildNode = firstChildNode, ///
|
|
14
|
+
markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context),
|
|
15
|
+
childNodesHTML = markedTextChildNodeChildNodesHTML; ///
|
|
11
16
|
|
|
12
17
|
return childNodesHTML;
|
|
13
18
|
}
|
|
14
19
|
|
|
15
20
|
createChildNodeDOMElements(context) {
|
|
16
21
|
const childNodes = this.getChildNodes(),
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
domElement = this.getDOMElement(),
|
|
23
|
+
firstChildNode = first(childNodes),
|
|
24
|
+
markedTextChildNode = firstChildNode;
|
|
19
25
|
|
|
20
|
-
|
|
21
|
-
this.insertDOMElement(childNodeDOMElement);
|
|
22
|
-
});
|
|
26
|
+
markedTextChildNode.createChildNodeDOMElements(domElement, context);
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(LineMarkdownNode, ruleName, childNodes, opacity); }
|
|
@@ -4,6 +4,7 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import MarkdownNode from "../../node/markdown";
|
|
6
6
|
|
|
7
|
+
import { trim } from "../../utilities/string";
|
|
7
8
|
import { HREF_ATTRIBUTE_NAME } from "../../attributeNames";
|
|
8
9
|
|
|
9
10
|
const { second } = arrayUtilities;
|
|
@@ -12,20 +13,44 @@ export default class LinkMarkdownNode extends MarkdownNode {
|
|
|
12
13
|
asHTML(indent, context, number = null) {
|
|
13
14
|
let html;
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
const selfClosingTag = this.selfClosingTag(context);
|
|
16
|
+
indent = this.adjustIndent(indent);
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const childNodesHTML = this.childNodesAsHTML(indent, context, number);
|
|
19
|
+
|
|
20
|
+
if (childNodesHTML !== null) {
|
|
20
21
|
const startingTag = this.startingTag(context),
|
|
21
22
|
closingTag = this.closingTag(context);
|
|
22
23
|
|
|
23
|
-
html =
|
|
24
|
+
html = (indent === null) ?
|
|
25
|
+
`${startingTag}${trim(childNodesHTML)}${closingTag}` :
|
|
26
|
+
`${indent}${startingTag}
|
|
27
|
+
${trim(childNodesHTML)}
|
|
28
|
+
${indent}${closingTag}
|
|
29
|
+
`;
|
|
30
|
+
} else {
|
|
31
|
+
const selfClosingTag = this.selfClosingTag(context);
|
|
32
|
+
|
|
33
|
+
html = (indent === null) ?
|
|
34
|
+
selfClosingTag : ///
|
|
35
|
+
`${indent}${selfClosingTag}
|
|
36
|
+
`;
|
|
24
37
|
}
|
|
25
38
|
|
|
26
39
|
return html;
|
|
27
40
|
}
|
|
28
41
|
|
|
42
|
+
childNodesAsHTML(indent, context, number) {
|
|
43
|
+
const childNodesHTML = (number === null) ?
|
|
44
|
+
null :
|
|
45
|
+
`${number}`;
|
|
46
|
+
|
|
47
|
+
return childNodesHTML;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
createChildNodeDOMElements(context) {
|
|
51
|
+
///
|
|
52
|
+
}
|
|
53
|
+
|
|
29
54
|
identifier(context) {
|
|
30
55
|
const childNodes = this.getChildNodes(),
|
|
31
56
|
secondChildNode = second(childNodes),
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import MarkdownNode from "../../node/markdown";
|
|
4
|
+
|
|
5
|
+
import { htmlFromChildNodes, domElementsFromChildNodes } from "../../utilities/childNodes";
|
|
6
|
+
|
|
7
|
+
export default class MarkedTextMarkdownNode extends MarkdownNode {
|
|
8
|
+
childNodesAsHTML(indent, context) {
|
|
9
|
+
const childNodes = this.getChildNodes(),
|
|
10
|
+
html = htmlFromChildNodes(childNodes, context);
|
|
11
|
+
|
|
12
|
+
return html;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
createChildNodeDOMElements(domElement, context) {
|
|
16
|
+
const parentDOMElement = domElement, ///
|
|
17
|
+
siblingDOMElement = null;
|
|
18
|
+
|
|
19
|
+
const childNodes = this.getChildNodes(),
|
|
20
|
+
domElements = domElementsFromChildNodes(childNodes, context),
|
|
21
|
+
childNodeDOMElements = domElements; ///
|
|
22
|
+
|
|
23
|
+
childNodeDOMElements.forEach((childNodeDOMElement) => {
|
|
24
|
+
parentDOMElement.insertBefore(childNodeDOMElement, siblingDOMElement);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(MarkedTextMarkdownNode, ruleName, childNodes, opacity); }
|
|
29
|
+
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
|
-
export default class
|
|
6
|
-
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(
|
|
5
|
+
export default class PlainTextMarkdownNode extends MarkdownNode {
|
|
6
|
+
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(PlainTextMarkdownNode, ruleName, childNodes, opacity); }
|
|
7
7
|
}
|
|
@@ -33,9 +33,7 @@ class StronglyEmphasisedTextMarkdownNode extends MarkdownNode {
|
|
|
33
33
|
const parentDOMElement = domElement, ///
|
|
34
34
|
siblingDOMElement = null;
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
parentDOMElement.insertBefore(domElement, siblingDOMElement);
|
|
36
|
+
parentDOMElement.insertBefore(childNodeDOMElement, siblingDOMElement);
|
|
39
37
|
|
|
40
38
|
return domElement;
|
|
41
39
|
}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
3
5
|
import MarkdownNode from "../../node/markdown";
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
const { first } = arrayUtilities;
|
|
6
8
|
|
|
7
9
|
export default class TableCellMarkdownNode extends MarkdownNode {
|
|
8
10
|
childNodesAsHTML(indent, context) {
|
|
9
11
|
const childNodes = this.getChildNodes(),
|
|
10
|
-
|
|
12
|
+
firstChildNode = first(childNodes),
|
|
13
|
+
markedTextChildNode = firstChildNode, ///
|
|
14
|
+
markedTextChildNodeChildNodesHTML = markedTextChildNode.childNodesAsHTML(indent, context),
|
|
15
|
+
childNodesHTML = markedTextChildNodeChildNodesHTML; ///
|
|
11
16
|
|
|
12
17
|
return childNodesHTML;
|
|
13
18
|
}
|
|
14
19
|
|
|
15
20
|
createChildNodeDOMElements(domElement, context) {
|
|
16
21
|
const childNodes = this.getChildNodes(),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
childNodeDOMElements.forEach((childNodeDOMElement) => {
|
|
23
|
-
parentDOMElement.insertBefore(childNodeDOMElement, siblingDOMElement);
|
|
24
|
-
});
|
|
22
|
+
firstChildNode = first(childNodes),
|
|
23
|
+
markedTextChildNode = firstChildNode;
|
|
24
|
+
|
|
25
|
+
markedTextChildNode.createChildNodeDOMElements(domElement, context);
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(TableCellMarkdownNode, ruleName, childNodes, opacity); }
|