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.
Files changed (43) hide show
  1. package/example.js +843 -424
  2. package/lib/example/constants.js +5 -1
  3. package/lib/example/view/div/preview.js +225 -0
  4. package/lib/example/view/div/sizeable/right.js +2 -2
  5. package/lib/example/view.js +11 -6
  6. package/lib/markdown/bnf.js +2 -2
  7. package/lib/node/markdown/anchor.js +2 -2
  8. package/lib/node/markdown/emailLink.js +175 -0
  9. package/lib/node/markdown/footnoteItem.js +2 -2
  10. package/lib/node/markdown/footnotesList.js +10 -7
  11. package/lib/node/markdown/line.js +6 -8
  12. package/lib/node/markdown/link.js +22 -6
  13. package/lib/node/markdown/markedText.js +139 -0
  14. package/lib/node/markdown/{text.js → plainText.js} +10 -10
  15. package/lib/node/markdown/stronglyEmphasisedText.js +2 -3
  16. package/lib/node/markdown/tableCell.js +6 -7
  17. package/lib/node/markdown.js +26 -26
  18. package/lib/nodeMap.js +5 -4
  19. package/lib/ruleNameToHTMLMap.js +10 -7
  20. package/lib/ruleNames.js +15 -10
  21. package/lib/utilities/childNodes.js +26 -26
  22. package/package.json +1 -1
  23. package/src/example/constants.js +2 -0
  24. package/src/example/view/div/preview.js +49 -0
  25. package/src/example/view/div/sizeable/right.js +1 -1
  26. package/src/example/view.js +19 -4
  27. package/src/markdown/bnf.js +40 -19
  28. package/src/node/markdown/anchor.js +1 -1
  29. package/src/node/markdown/{mailToLink.js → emailLink.js} +2 -2
  30. package/src/node/markdown/footnoteItem.js +1 -1
  31. package/src/node/markdown/footnotesList.js +11 -7
  32. package/src/node/markdown/line.js +11 -7
  33. package/src/node/markdown/link.js +30 -5
  34. package/src/node/markdown/markedText.js +29 -0
  35. package/src/node/markdown/{text.js → plainText.js} +2 -2
  36. package/src/node/markdown/stronglyEmphasisedText.js +1 -3
  37. package/src/node/markdown/tableCell.js +11 -10
  38. package/src/node/markdown.js +42 -41
  39. package/src/nodeMap.js +56 -51
  40. package/src/ruleNameToHTMLMap.js +15 -10
  41. package/src/ruleNames.js +6 -4
  42. package/src/utilities/childNodes.js +25 -25
  43. 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 _text = /*#__PURE__*/ _interop_require_default(require("../node/markdown/text"));
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 = [], textMarkdownNodes = [];
37
+ var domElements = [], plainTextMarkdownNodes = [];
38
38
  childNodes.forEach(function(childNode) {
39
39
  var childNodeNonTerminalNode = childNode.isNonTerminalNode();
40
40
  if (childNodeNonTerminalNode) {
41
- var childNodeTextMarkdownNode = _instanceof(childNode, _text.default);
42
- if (childNodeTextMarkdownNode) {
43
- var textMarkdownNode = childNode; ///
44
- textMarkdownNodes.push(textMarkdownNode);
41
+ var childNodePlainTextMarkdownNode = _instanceof(childNode, _plainText.default);
42
+ if (childNodePlainTextMarkdownNode) {
43
+ var plainTextMarkdownNode = childNode; ///
44
+ plainTextMarkdownNodes.push(plainTextMarkdownNode);
45
45
  } else {
46
- var textDOMElement = textDOMElementFromTextMarkdownNodes(textMarkdownNodes, context);
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 = textDOMElementFromTextMarkdownNodes(textMarkdownNodes, context);
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 = [], textMarkdownNodes = [];
67
+ var htmls = [], plainTextMarkdownNodes = [];
68
68
  childNodes.forEach(function(childNode) {
69
69
  var childNodeNonTerminalNode = childNode.isNonTerminalNode();
70
70
  if (childNodeNonTerminalNode) {
71
- var childNodeTextMarkdownNode = _instanceof(childNode, _text.default);
72
- if (childNodeTextMarkdownNode) {
73
- var textMarkdownNode = childNode; ///
74
- textMarkdownNodes.push(textMarkdownNode);
71
+ var childNodePlainTextMarkdownNode = _instanceof(childNode, _plainText.default);
72
+ if (childNodePlainTextMarkdownNode) {
73
+ var plainTextMarkdownNode = childNode; ///
74
+ plainTextMarkdownNodes.push(plainTextMarkdownNode);
75
75
  } else {
76
- html = htmlFromTextMarkdownNodes(textMarkdownNodes, context);
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 = htmlFromTextMarkdownNodes(textMarkdownNodes, context);
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 textDOMElementFromTextMarkdownNodes(textMarkdownNodes, context) {
95
+ function textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context) {
96
96
  var textDOMElement = null;
97
- var textMarkdownNodesLength = textMarkdownNodes.length;
98
- if (textMarkdownNodesLength > 0) {
99
- var markdownNodes = textMarkdownNodes, content = (0, _content.contentFromMarkdownNodes)(markdownNodes, context);
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(textMarkdownNodes);
101
+ clear(plainTextMarkdownNodes);
102
102
  }
103
103
  return textDOMElement;
104
104
  }
105
- function htmlFromTextMarkdownNodes(textMarkdownNodes, context) {
105
+ function htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context) {
106
106
  var html = null;
107
- var textMarkdownNodesLength = textMarkdownNodes.length;
108
- if (textMarkdownNodesLength > 0) {
109
- var markdownNodes = textMarkdownNodes, content = (0, _content.contentFromMarkdownNodes)(markdownNodes, context);
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(textMarkdownNodes);
111
+ clear(plainTextMarkdownNodes);
112
112
  }
113
113
  return html;
114
114
  }
115
115
 
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY2hpbGROb2Rlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBUZXh0TWFya2Rvd25Ob2RlIGZyb20gXCIuLi9ub2RlL21hcmtkb3duL3RleHRcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY29udGVudEZyb21NYXJrZG93bk5vZGVzIH0gZnJvbSBcIi4vY29udGVudFwiO1xuXG5jb25zdCB7IGNsZWFyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGRvbUVsZW1lbnRzRnJvbUNoaWxkTm9kZXMoY2hpbGROb2RlcywgY29udGV4dCkge1xuICBjb25zdCBkb21FbGVtZW50cyA9IFtdLFxuICAgICAgICB0ZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVUZXh0TWFya2Rvd25Ob2RlID0gKGNoaWxkTm9kZSBpbnN0YW5jZW9mIFRleHRNYXJrZG93bk5vZGUpO1xuXG4gICAgICBpZiAoY2hpbGROb2RlVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCB0ZXh0TWFya2Rvd25Ob2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgICB0ZXh0TWFya2Rvd25Ob2Rlcy5wdXNoKHRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dERPTUVsZW1lbnQgPSB0ZXh0RE9NRWxlbWVudEZyb21UZXh0TWFya2Rvd25Ob2Rlcyh0ZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dClcblxuICAgICAgICBpZiAodGV4dERPTUVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBkb21FbGVtZW50ID0gdGV4dERPTUVsZW1lbnQ7ICAvLy9cblxuICAgICAgICAgIGRvbUVsZW1lbnRzLnB1c2goZG9tRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkb21FbGVtZW50ID0gY2hpbGROb2RlLmNyZWF0ZURPTUVsZW1lbnQoY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGRvbUVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBkb21FbGVtZW50cy5wdXNoKGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBjb25zdCB0ZXh0RE9NRWxlbWVudCA9IHRleHRET01FbGVtZW50RnJvbVRleHRNYXJrZG93bk5vZGVzKHRleHRNYXJrZG93bk5vZGVzLCBjb250ZXh0KVxuXG4gIGlmICh0ZXh0RE9NRWxlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0ZXh0RE9NRWxlbWVudDsgIC8vL1xuXG4gICAgZG9tRWxlbWVudHMucHVzaChkb21FbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBkb21FbGVtZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzLCBjb250ZXh0KSB7XG4gIGxldCBodG1sO1xuXG4gIGNvbnN0IGh0bWxzID0gW10sXG4gICAgICAgIHRleHRNYXJrZG93bk5vZGVzID0gW107XG5cbiAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBjaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZVRleHRNYXJrZG93bk5vZGUgPSAoY2hpbGROb2RlIGluc3RhbmNlb2YgVGV4dE1hcmtkb3duTm9kZSk7XG5cbiAgICAgIGlmIChjaGlsZE5vZGVUZXh0TWFya2Rvd25Ob2RlKSB7XG4gICAgICAgIGNvbnN0IHRleHRNYXJrZG93bk5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICAgIHRleHRNYXJrZG93bk5vZGVzLnB1c2godGV4dE1hcmtkb3duTm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBodG1sID0gaHRtbEZyb21UZXh0TWFya2Rvd25Ob2Rlcyh0ZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dClcblxuICAgICAgICBpZiAoaHRtbCAhPT0gbnVsbCkge1xuICAgICAgICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmRlbnQgPSBudWxsO1xuXG4gICAgICAgIGh0bWwgPSBjaGlsZE5vZGUuYXNIVE1MKGluZGVudCwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGh0bWwgIT09IG51bGwpIHtcbiAgICAgICAgICBodG1scy5wdXNoKGh0bWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBodG1sID0gaHRtbEZyb21UZXh0TWFya2Rvd25Ob2Rlcyh0ZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dClcblxuICBpZiAoaHRtbCAhPT0gbnVsbCkge1xuICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gIH1cblxuICBodG1sID0gaHRtbHMuam9pbihFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiB0ZXh0RE9NRWxlbWVudEZyb21UZXh0TWFya2Rvd25Ob2Rlcyh0ZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBsZXQgdGV4dERPTUVsZW1lbnQgPSBudWxsO1xuXG4gIGNvbnN0IHRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID0gdGV4dE1hcmtkb3duTm9kZXMubGVuZ3RoO1xuXG4gIGlmICh0ZXh0TWFya2Rvd25Ob2Rlc0xlbmd0aCA+IDApIHtcbiAgICBjb25zdCBtYXJrZG93bk5vZGVzID0gdGV4dE1hcmtkb3duTm9kZXMsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gY29udGVudEZyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgdGV4dERPTUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcblxuICAgIGNsZWFyKHRleHRNYXJrZG93bk5vZGVzKTtcbiAgfVxuXG4gIHJldHVybiB0ZXh0RE9NRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaHRtbEZyb21UZXh0TWFya2Rvd25Ob2Rlcyh0ZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBsZXQgaHRtbCA9IG51bGw7XG5cbiAgY29uc3QgdGV4dE1hcmtkb3duTm9kZXNMZW5ndGggPSB0ZXh0TWFya2Rvd25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKHRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IG1hcmtkb3duTm9kZXMgPSB0ZXh0TWFya2Rvd25Ob2RlcywgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50RnJvbU1hcmtkb3duTm9kZXMobWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgICBodG1sID0gY29udGVudDtcblxuICAgIGNsZWFyKHRleHRNYXJrZG93bk5vZGVzKTtcbiAgfVxuXG4gIHJldHVybiBodG1sO1xufVxuIl0sIm5hbWVzIjpbImRvbUVsZW1lbnRzRnJvbUNoaWxkTm9kZXMiLCJodG1sRnJvbUNoaWxkTm9kZXMiLCJjbGVhciIsImFycmF5VXRpbGl0aWVzIiwiY2hpbGROb2RlcyIsImNvbnRleHQiLCJkb21FbGVtZW50cyIsInRleHRNYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlVGV4dE1hcmtkb3duTm9kZSIsIlRleHRNYXJrZG93bk5vZGUiLCJ0ZXh0TWFya2Rvd25Ob2RlIiwicHVzaCIsInRleHRET01FbGVtZW50IiwidGV4dERPTUVsZW1lbnRGcm9tVGV4dE1hcmtkb3duTm9kZXMiLCJkb21FbGVtZW50IiwiY3JlYXRlRE9NRWxlbWVudCIsImh0bWwiLCJodG1scyIsImh0bWxGcm9tVGV4dE1hcmtkb3duTm9kZXMiLCJpbmRlbnQiLCJhc0hUTUwiLCJqb2luIiwiRU1QVFlfU1RSSU5HIiwidGV4dE1hcmtkb3duTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtYXJrZG93bk5vZGVzIiwiY29udGVudCIsImNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVdnQkEseUJBQXlCO2VBQXpCQTs7SUEyQ0FDLGtCQUFrQjtlQUFsQkE7Ozt5QkFwRGU7MkRBRUY7eUJBRUE7dUJBQ1k7Ozs7Ozs7Ozs7Ozs7QUFFekMsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFRCxTQUFTRiwwQkFBMEJJLFVBQVUsRUFBRUMsT0FBTztJQUMzRCxJQUFNQyxjQUFjLEVBQUUsRUFDaEJDLG9CQUFvQixFQUFFO0lBRTVCSCxXQUFXSSxPQUFPLENBQUMsU0FBQ0M7UUFDbEIsSUFBTUMsMkJBQTJCRCxVQUFVRSxpQkFBaUI7UUFFNUQsSUFBSUQsMEJBQTBCO1lBQzVCLElBQU1FLDRCQUE2QkgsQUFBUyxZQUFUQSxXQUFxQkksYUFBZ0I7WUFFeEUsSUFBSUQsMkJBQTJCO2dCQUM3QixJQUFNRSxtQkFBbUJM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
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY2hpbGROb2Rlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBQbGFpblRleHRNYXJrZG93bk5vZGUgZnJvbSBcIi4uL25vZGUvbWFya2Rvd24vcGxhaW5UZXh0XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyB9IGZyb20gXCIuL2NvbnRlbnRcIjtcblxuY29uc3QgeyBjbGVhciB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBkb21FbGVtZW50c0Zyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZG9tRWxlbWVudHMgPSBbXSxcbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUgPSAoY2hpbGROb2RlIGluc3RhbmNlb2YgUGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMucHVzaChwbGFpblRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dERPTUVsZW1lbnQgPSB0ZXh0RE9NRWxlbWVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNvbnRleHQpXG5cbiAgICAgICAgaWYgKHRleHRET01FbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IHRleHRET01FbGVtZW50OyAgLy8vXG5cbiAgICAgICAgICBkb21FbGVtZW50cy5wdXNoKGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IGNoaWxkTm9kZS5jcmVhdGVET01FbGVtZW50KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChkb21FbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgZG9tRWxlbWVudHMucHVzaChkb21FbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgdGV4dERPTUVsZW1lbnQgPSB0ZXh0RE9NRWxlbWVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNvbnRleHQpXG5cbiAgaWYgKHRleHRET01FbGVtZW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRleHRET01FbGVtZW50OyAgLy8vXG5cbiAgICBkb21FbGVtZW50cy5wdXNoKGRvbUVsZW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGRvbUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IGh0bWw7XG5cbiAgY29uc3QgaHRtbHMgPSBbXSxcbiAgICAgICAgcGxhaW5UZXh0TWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVQbGFpblRleHRNYXJrZG93bk5vZGUgPSAoY2hpbGROb2RlIGluc3RhbmNlb2YgUGxhaW5UZXh0TWFya2Rvd25Ob2RlKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZVBsYWluVGV4dE1hcmtkb3duTm9kZSkge1xuICAgICAgICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICAgIHBsYWluVGV4dE1hcmtkb3duTm9kZXMucHVzaChwbGFpblRleHRNYXJrZG93bk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaHRtbCA9IGh0bWxGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyhwbGFpblRleHRNYXJrZG93bk5vZGVzLCBjb250ZXh0KVxuXG4gICAgICAgIGlmIChodG1sICE9PSBudWxsKSB7XG4gICAgICAgICAgaHRtbHMucHVzaChodG1sKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGVudCA9IG51bGw7XG5cbiAgICAgICAgaHRtbCA9IGNoaWxkTm9kZS5hc0hUTUwoaW5kZW50LCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoaHRtbCAhPT0gbnVsbCkge1xuICAgICAgICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGh0bWwgPSBodG1sRnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dClcblxuICBpZiAoaHRtbCAhPT0gbnVsbCkge1xuICAgIGh0bWxzLnB1c2goaHRtbCk7XG4gIH1cblxuICBodG1sID0gaHRtbHMuam9pbihFTVBUWV9TVFJJTkcpO1xuXG4gIHJldHVybiBodG1sO1xufVxuXG5mdW5jdGlvbiB0ZXh0RE9NRWxlbWVudEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzKHBsYWluVGV4dE1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IHRleHRET01FbGVtZW50ID0gbnVsbDtcblxuICBjb25zdCBwbGFpblRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID0gcGxhaW5UZXh0TWFya2Rvd25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKHBsYWluVGV4dE1hcmtkb3duTm9kZXNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgbWFya2Rvd25Ob2RlcyA9IHBsYWluVGV4dE1hcmtkb3duTm9kZXMsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gY29udGVudEZyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgdGV4dERPTUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcblxuICAgIGNsZWFyKHBsYWluVGV4dE1hcmtkb3duTm9kZXMpO1xuICB9XG5cbiAgcmV0dXJuIHRleHRET01FbGVtZW50O1xufVxuXG5mdW5jdGlvbiBodG1sRnJvbVBsYWluVGV4dE1hcmtkb3duTm9kZXMocGxhaW5UZXh0TWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBsZXQgaHRtbCA9IG51bGw7XG5cbiAgY29uc3QgcGxhaW5UZXh0TWFya2Rvd25Ob2Rlc0xlbmd0aCA9IHBsYWluVGV4dE1hcmtkb3duTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChwbGFpblRleHRNYXJrZG93bk5vZGVzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IG1hcmtkb3duTm9kZXMgPSBwbGFpblRleHRNYXJrZG93bk5vZGVzLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyhtYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICAgIGh0bWwgPSBjb250ZW50O1xuXG4gICAgY2xlYXIocGxhaW5UZXh0TWFya2Rvd25Ob2Rlcyk7XG4gIH1cblxuICByZXR1cm4gaHRtbDtcbn1cbiJdLCJuYW1lcyI6WyJkb21FbGVtZW50c0Zyb21DaGlsZE5vZGVzIiwiaHRtbEZyb21DaGlsZE5vZGVzIiwiY2xlYXIiLCJhcnJheVV0aWxpdGllcyIsImNoaWxkTm9kZXMiLCJjb250ZXh0IiwiZG9tRWxlbWVudHMiLCJwbGFpblRleHRNYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlUGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwiUGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwicGxhaW5UZXh0TWFya2Rvd25Ob2RlIiwicHVzaCIsInRleHRET01FbGVtZW50IiwidGV4dERPTUVsZW1lbnRGcm9tUGxhaW5UZXh0TWFya2Rvd25Ob2RlcyIsImRvbUVsZW1lbnQiLCJjcmVhdGVET01FbGVtZW50IiwiaHRtbCIsImh0bWxzIiwiaHRtbEZyb21QbGFpblRleHRNYXJrZG93bk5vZGVzIiwiaW5kZW50IiwiYXNIVE1MIiwiam9pbiIsIkVNUFRZX1NUUklORyIsInBsYWluVGV4dE1hcmtkb3duTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtYXJrZG93bk5vZGVzIiwiY29udGVudCIsImNvbnRlbnRGcm9tTWFya2Rvd25Ob2RlcyIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVdnQkEseUJBQXlCO2VBQXpCQTs7SUEyQ0FDLGtCQUFrQjtlQUFsQkE7Ozt5QkFwRGU7Z0VBRUc7eUJBRUw7dUJBQ1k7Ozs7Ozs7Ozs7Ozs7QUFFekMsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFRCxTQUFTRiwwQkFB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "highmark-markdown",
3
3
  "author": "James Smith",
4
- "version": "0.0.71",
4
+ "version": "0.0.73",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-markdown",
7
7
  "description": "Highmark's Markdown.",
@@ -2,3 +2,5 @@
2
2
 
3
3
  export const EMPTY_STRING = "";
4
4
  export const DOUBLE_SPACE = " ";
5
+ export const DOCUMENT_DIVISION_NAME = "document";
6
+
@@ -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
+ `;
@@ -12,7 +12,7 @@ class RightSizeableDiv extends SizeableDiv {
12
12
 
13
13
  export default withStyle(RightSizeableDiv)`
14
14
 
15
- height: 48rem;
15
+ height: 32rem;
16
16
  position: relative;
17
17
  min-height: 12rem;
18
18
 
@@ -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 context = {
42
- tokens
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
- https://react.js/react.js
126
+ |asdf|
127
+ ------
128
+ |asdf|
114
129
  `;
115
130
 
116
131
  static tagName = "div";
@@ -112,10 +112,29 @@ const bnf = `
112
112
  emptyTableCell ::= "." [vertical-bar];
113
113
 
114
114
 
115
- tableCell ::= ( link | image | mailToLink | hyperlink | inlineListing | stronglyEmphasisedText | emphasisedText | strongText | text )+ [vertical-bar] ;
115
+ tableCell ::= markedText... [vertical-bar] ;
116
116
 
117
117
 
118
- line. ::= ( link | image | mailToLink | hyperlink | inlineListing | stronglyEmphasisedText | emphasisedText | strongText | text )+ endOfLine ;
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
- hyperlink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" url ")"
146
+ emailLink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" address ")"
128
147
 
129
- | url
148
+ | address
130
149
 
131
150
  ;
132
151
 
133
152
 
134
- mailToLink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" address ")"
153
+ hyperlink. ::= "[" inlineText... "]"<NO_WHITESPACE>"(" url ")"
135
154
 
136
- | address
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
- blockText. ::= ( text | endOfLine )+ ;
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 = false,
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 MailToLinkMarkdownNode extends MarkdownNode {
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(MailToLinkMarkdownNode, ruleName, childNodes, opacity); }
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 = false,
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 = false;
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.map((footnoteMarkdownNode) => {
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
- return identifier;
49
- });
49
+ if (!identifiersIncludesIdentifier) {
50
+ identifiers.push(identifier);
51
+ }
52
+
53
+ return identifiers;
54
+ }, []);
50
55
 
51
56
  linkMarkdownNodes.forEach((linkMarkdownNode) => {
52
- const linkMarkdownNodeIdentifier = linkMarkdownNode.identifier(context),
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
- import { htmlFromChildNodes, domElementsFromChildNodes } from "../../utilities/childNodes";
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
- childNodesHTML = htmlFromChildNodes(childNodes, context);
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
- domElements = domElementsFromChildNodes(childNodes, context),
18
- childNodeDOMElements = domElements; ///
22
+ domElement = this.getDOMElement(),
23
+ firstChildNode = first(childNodes),
24
+ markedTextChildNode = firstChildNode;
19
25
 
20
- childNodeDOMElements.forEach((childNodeDOMElement) => {
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
- if (number === null) {
16
- const selfClosingTag = this.selfClosingTag(context);
16
+ indent = this.adjustIndent(indent);
17
17
 
18
- html = selfClosingTag; ///
19
- } else {
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 = `${startingTag}${number}${closingTag}`;
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 TextMarkdownNode extends MarkdownNode {
6
- static fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) { return MarkdownNode.fromRuleNameChildNodesAndOpacity(TextMarkdownNode, ruleName, childNodes, opacity); }
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
- domElement = childNodeDOMElement; ///
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
- import { htmlFromChildNodes, domElementsFromChildNodes } from "../../utilities/childNodes";
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
- childNodesHTML = htmlFromChildNodes(childNodes, context);
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
- domElements = domElementsFromChildNodes(childNodes, context),
18
- parentDOMElement = domElement, ///
19
- siblingDOMElement = null,
20
- childNodeDOMElements = domElements; ///
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); }