highmark-markdown 0.0.225 → 0.0.228

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 (41) hide show
  1. package/example.js +1003 -565
  2. package/lib/clonedNode.js +142 -0
  3. package/lib/elementMap.js +4 -1
  4. package/lib/example/view/div/preview.js +6 -4
  5. package/lib/example/view/xmp.js +12 -4
  6. package/lib/example/view.js +30 -15
  7. package/lib/markdown/bnf.js +2 -2
  8. package/lib/node/markdown/contentsItem.js +14 -2
  9. package/lib/node/markdown/contentsLink.js +48 -65
  10. package/lib/node/markdown/contentsList.js +30 -6
  11. package/lib/node/markdown/division.js +26 -23
  12. package/lib/node/markdown/ignore.js +120 -0
  13. package/lib/node/markdown/import.js +14 -17
  14. package/lib/node/markdown/link.js +30 -1
  15. package/lib/node/markdown.js +3 -4
  16. package/lib/nodeMap.js +3 -2
  17. package/lib/ruleNames.js +6 -1
  18. package/lib/style/selector.js +76 -30
  19. package/lib/utilities/query.js +10 -2
  20. package/lib/utilities/replace.js +57 -0
  21. package/package.json +5 -5
  22. package/src/clonedNode.js +146 -0
  23. package/src/elementMap.js +5 -0
  24. package/src/example/view/div/preview.js +6 -4
  25. package/src/example/view/xmp.js +14 -4
  26. package/src/example/view.js +41 -29
  27. package/src/markdown/bnf.js +6 -1
  28. package/src/node/markdown/contentsItem.js +11 -0
  29. package/src/node/markdown/contentsLink.js +26 -114
  30. package/src/node/markdown/contentsList.js +37 -6
  31. package/src/node/markdown/division.js +40 -38
  32. package/src/node/markdown/ignore.js +7 -0
  33. package/src/node/markdown/import.js +19 -26
  34. package/src/node/markdown/link.js +2 -0
  35. package/src/node/markdown.js +2 -4
  36. package/src/nodeMap.js +3 -0
  37. package/src/ruleNames.js +2 -0
  38. package/src/style/selector.js +33 -27
  39. package/src/utilities/query.js +8 -0
  40. package/src/utilities/{tokens.js → replace.js} +9 -3
  41. package/lib/utilities/tokens.js +0 -45
@@ -27,6 +27,9 @@ _export(exports, {
27
27
  headingMarkdownNodesFromNode: function() {
28
28
  return headingMarkdownNodesFromNode;
29
29
  },
30
+ ignoreMarkdownNodeFromNode: function() {
31
+ return ignoreMarkdownNodeFromNode;
32
+ },
30
33
  linkMarkdownNodesFromNode: function() {
31
34
  return linkMarkdownNodesFromNode;
32
35
  },
@@ -46,7 +49,7 @@ _export(exports, {
46
49
  var _occamquery = require("occam-query");
47
50
  var _necessary = require("necessary");
48
51
  var first = _necessary.arrayUtilities.first, push = _necessary.arrayUtilities.push;
49
- var linkMarkdownNodesQuery = _occamquery.Query.fromExpression("//link"), headingMarkdownNodesQuery = _occamquery.Query.fromExpression("//primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"), contentsMarkdownNodeQuery = _occamquery.Query.fromExpression("//contents"), footnoteMarkdownNodesQuery = _occamquery.Query.fromExpression("//footnote"), footnotesMarkdownNodeQuery = _occamquery.Query.fromExpression("/division/subDivision/footnotes"), footnotesMarkdownNodesQuery = _occamquery.Query.fromExpression("//footnotes"), referenceMarkdownNodesQuery = _occamquery.Query.fromExpression("//reference"), linkReferenceOrFootnotesMarkdownNodesQuery = _occamquery.Query.fromExpression("//link|reference|footnotes");
52
+ var linkMarkdownNodesQuery = _occamquery.Query.fromExpression("//link"), ignoreMarkdownNodeQuery = _occamquery.Query.fromExpression("//ignore"), headingMarkdownNodesQuery = _occamquery.Query.fromExpression("//primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"), contentsMarkdownNodeQuery = _occamquery.Query.fromExpression("//contents"), footnoteMarkdownNodesQuery = _occamquery.Query.fromExpression("//footnote"), footnotesMarkdownNodeQuery = _occamquery.Query.fromExpression("/division/subDivision/footnotes"), footnotesMarkdownNodesQuery = _occamquery.Query.fromExpression("//footnotes"), referenceMarkdownNodesQuery = _occamquery.Query.fromExpression("//reference"), linkReferenceOrFootnotesMarkdownNodesQuery = _occamquery.Query.fromExpression("//link|reference|footnotes");
50
53
  function nodeQuery(expression) {
51
54
  var query = _occamquery.Query.fromExpression(expression);
52
55
  return function(node) {
@@ -72,6 +75,10 @@ function linkMarkdownNodesFromNode(node) {
72
75
  nodesFromNodeAndQuery(node, linkMarkdownNodesQuery, linkMarkdownNodes);
73
76
  return linkMarkdownNodes;
74
77
  }
78
+ function ignoreMarkdownNodeFromNode(node) {
79
+ var ignoreMarkdownNode = nodeFromNodeAndQuery(node, ignoreMarkdownNodeQuery);
80
+ return ignoreMarkdownNode;
81
+ }
75
82
  function contentsMarkdownNodeFromNode(node) {
76
83
  var contentsMarkdownNode = nodeFromNodeAndQuery(node, contentsMarkdownNodeQuery);
77
84
  return contentsMarkdownNode;
@@ -107,6 +114,7 @@ function linkReferenceOrFootnotesMarkdownNodesFromNode(node) {
107
114
  }
108
115
  var _default = {
109
116
  linkMarkdownNodesFromNode: linkMarkdownNodesFromNode,
117
+ ignoreMarkdownNodeFromNode: ignoreMarkdownNodeFromNode,
110
118
  contentsMarkdownNodeFromNode: contentsMarkdownNodeFromNode,
111
119
  footnotesMarkdownNodeFromNode: footnotesMarkdownNodeFromNode,
112
120
  headingMarkdownNodesFromNode: headingMarkdownNodesFromNode,
@@ -131,4 +139,4 @@ function nodesFromNodeAndQuery(node, query, nodes) {
131
139
  return nodes;
132
140
  }
133
141
 
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCwgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IGxpbmtNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgLy9saW5rYCksXG4gICAgICBoZWFkaW5nTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oYC8vcHJpbWFyeUhlYWRpbmd8c2Vjb25kYXJ5SGVhZGluZ3x0ZXJ0aWFyeUhlYWRpbmd8cXVhdGVybmFyeUhlYWRpbmdgKSxcbiAgICAgIGNvbnRlbnRzTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgLy9jb250ZW50c2ApLFxuICAgICAgZm9vdG5vdGVNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgLy9mb290bm90ZWApLFxuICAgICAgZm9vdG5vdGVzTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2Zvb3Rub3Rlc2ApLFxuICAgICAgZm9vdG5vdGVzTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oYC8vZm9vdG5vdGVzYCksXG4gICAgICByZWZlcmVuY2VNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgLy9yZWZlcmVuY2VgKSxcbiAgICAgIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKGAvL2xpbmt8cmVmZXJlbmNlfGZvb3Rub3Rlc2ApO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9kZVF1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChub2Rlc0xlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpcnN0Tm9kZSA9IGZpcnN0KG5vZGVzKTtcblxuICAgICAgbm9kZSA9IGZpcnN0Tm9kZTsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2Rlc1F1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBsaW5rTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBsaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBsaW5rTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGxpbmtNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudHNNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGNvbnRlbnRzTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgY29udGVudHNNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGNvbnRlbnRzTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVzTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBmb290bm90ZXNNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZXNNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGZvb3Rub3Rlc01hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgaGVhZGluZ01hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSwgaGVhZGluZ01hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBoZWFkaW5nTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvb3Rub3RlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGZvb3Rub3RlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZU1hcmtkb3duTm9kZXNRdWVyeSwgZm9vdG5vdGVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gZm9vdG5vdGVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIHJlZmVyZW5jZU1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgcmVmZXJlbmNlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCByZWZlcmVuY2VNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gcmVmZXJlbmNlTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBmb290bm90ZXNNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3Rlc01hcmtkb3duTm9kZXNRdWVyeSwgZm9vdG5vdGVzTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGZvb3Rub3Rlc01hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgbGlua1JlZmVyZW5jZU9yRm9vdG5vdGVzTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzUXVlcnksIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxpbmtNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gIGNvbnRlbnRzTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGZvb3Rub3Rlc01hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBmb290bm90ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgcmVmZXJlbmNlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBmb290bm90ZXNNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcblxuZnVuY3Rpb24gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnkpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgIHF1ZXJ5Tm9kZXNMZW5ndGggPSBxdWVyeU5vZGVzLmxlbmd0aDtcblxuICBpZiAocXVlcnlOb2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgIG5vZGUgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGZpcnN0UXVlcnlOb2RlID0gZmlyc3QocXVlcnlOb2Rlcyk7XG5cbiAgICBub2RlID0gZmlyc3RRdWVyeU5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG5mdW5jdGlvbiBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnksIG5vZGVzKSB7XG4gIGNvbnN0IHF1ZXJ5Tm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gIHB1c2gobm9kZXMsIHF1ZXJ5Tm9kZXMpO1xuXG4gIHJldHVybiBub2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50c01hcmtkb3duTm9kZUZyb21Ob2RlIiwiZm9vdG5vdGVNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJmb290bm90ZXNNYXJrZG93bk5vZGVGcm9tTm9kZSIsImZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJsaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwibGlua1JlZmVyZW5jZU9yRm9vdG5vdGVzTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsInJlZmVyZW5jZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJwdXNoIiwibGlua01hcmtkb3duTm9kZXNRdWVyeSIsIlF1ZXJ5IiwiZnJvbUV4cHJlc3Npb24iLCJoZWFkaW5nTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiY29udGVudHNNYXJrZG93bk5vZGVRdWVyeSIsImZvb3Rub3RlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZm9vdG5vdGVzTWFya2Rvd25Ob2RlUXVlcnkiLCJmb290bm90ZXNNYXJrZG93bk5vZGVzUXVlcnkiLCJyZWZlcmVuY2VNYXJrZG93bk5vZGVzUXVlcnkiLCJsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzUXVlcnkiLCJleHByZXNzaW9uIiwicXVlcnkiLCJub2RlIiwibm9kZXMiLCJleGVjdXRlIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdE5vZGUiLCJsaW5rTWFya2Rvd25Ob2RlcyIsIm5vZGVzRnJvbU5vZGVBbmRRdWVyeSIsImNvbnRlbnRzTWFya2Rvd25Ob2RlIiwibm9kZUZyb21Ob2RlQW5kUXVlcnkiLCJmb290bm90ZXNNYXJrZG93bk5vZGUiLCJoZWFkaW5nTWFya2Rvd25Ob2RlcyIsImZvb3Rub3RlTWFya2Rvd25Ob2RlcyIsInJlZmVyZW5jZU1hcmtkb3duTm9kZXMiLCJmb290bm90ZXNNYXJrZG93bk5vZGVzIiwibGlua1JlZmVyZW5jZU9yRm9vdG5vdGVzTWFya2Rvd25Ob2RlcyIsInF1ZXJ5Tm9kZXMiLCJxdWVyeU5vZGVzTGVuZ3RoIiwiZmlyc3RRdWVyeU5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW1EZ0JBLDRCQUE0QjtlQUE1QkE7O0lBMENoQixPQVNFO2VBVEY7O0lBeEJnQkMsNkJBQTZCO2VBQTdCQTs7SUFaQUMsNkJBQTZCO2VBQTdCQTs7SUF3QkFDLDhCQUE4QjtlQUE5QkE7O0lBbEJBQyw0QkFBNEI7ZUFBNUJBOztJQWxCQUMseUJBQXlCO2VBQXpCQTs7SUEwQ0FDLDZDQUE2QztlQUE3Q0E7O0lBdkVBQyxTQUFTO2VBQVRBOztJQW1CQUMsVUFBVTtlQUFWQTs7SUF3Q0FDLDhCQUE4QjtlQUE5QkE7OzswQkF6RU07eUJBQ1M7QUFFL0IsSUFBUUMsUUFBZ0JDLHlCQUFjLENBQTlCRCxPQUFPRSxPQUFTRCx5QkFBYyxDQUF2QkM7QUFFZixJQUFNQyx5QkFBeUJDLGlCQUFLLENB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
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCwgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IGxpbmtNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgLy9saW5rYCksXG4gICAgICBpZ25vcmVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKGAvL2lnbm9yZWApLFxuICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKGAvL3ByaW1hcnlIZWFkaW5nfHNlY29uZGFyeUhlYWRpbmd8dGVydGlhcnlIZWFkaW5nfHF1YXRlcm5hcnlIZWFkaW5nYCksXG4gICAgICBjb250ZW50c01hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oYC8vY29udGVudHNgKSxcbiAgICAgIGZvb3Rub3RlTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oYC8vZm9vdG5vdGVgKSxcbiAgICAgIGZvb3Rub3Rlc01hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oYC9kaXZpc2lvbi9zdWJEaXZpc2lvbi9mb290bm90ZXNgKSxcbiAgICAgIGZvb3Rub3Rlc01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKGAvL2Zvb3Rub3Rlc2ApLFxuICAgICAgcmVmZXJlbmNlTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oYC8vcmVmZXJlbmNlYCksXG4gICAgICBsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihgLy9saW5rfHJlZmVyZW5jZXxmb290bm90ZXNgKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVRdWVyeShleHByZXNzaW9uKSB7XG4gIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBjb25zdCBub2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgICAgbm9kZXNMZW5ndGggPSBub2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAobm9kZXNMZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaXJzdE5vZGUgPSBmaXJzdChub2Rlcyk7XG5cbiAgICAgIG5vZGUgPSBmaXJzdE5vZGU7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZXNRdWVyeShleHByZXNzaW9uKSB7XG4gIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBjb25zdCBub2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgbGlua01hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgbGlua01hcmtkb3duTm9kZXNRdWVyeSwgbGlua01hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBsaW5rTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgaWdub3JlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgaWdub3JlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpZ25vcmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50c01hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgY29udGVudHNNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBjb250ZW50c01hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gY29udGVudHNNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZXNNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGZvb3Rub3Rlc01hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3Rlc01hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gZm9vdG5vdGVzTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBoZWFkaW5nTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGhlYWRpbmdNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgZm9vdG5vdGVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3RlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBmb290bm90ZU1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBmb290bm90ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVuY2VNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgcmVmZXJlbmNlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCByZWZlcmVuY2VNYXJrZG93bk5vZGVzUXVlcnksIHJlZmVyZW5jZU1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiByZWZlcmVuY2VNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVzTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGZvb3Rub3Rlc01hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgZm9vdG5vdGVzTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBmb290bm90ZXNNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gZm9vdG5vdGVzTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXNRdWVyeSwgbGlua1JlZmVyZW5jZU9yRm9vdG5vdGVzTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaWdub3JlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGNvbnRlbnRzTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGZvb3Rub3Rlc01hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBmb290bm90ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgcmVmZXJlbmNlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBmb290bm90ZXNNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gIGxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcblxuZnVuY3Rpb24gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnkpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgIHF1ZXJ5Tm9kZXNMZW5ndGggPSBxdWVyeU5vZGVzLmxlbmd0aDtcblxuICBpZiAocXVlcnlOb2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgIG5vZGUgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGZpcnN0UXVlcnlOb2RlID0gZmlyc3QocXVlcnlOb2Rlcyk7XG5cbiAgICBub2RlID0gZmlyc3RRdWVyeU5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG5mdW5jdGlvbiBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnksIG5vZGVzKSB7XG4gIGNvbnN0IHF1ZXJ5Tm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gIHB1c2gobm9kZXMsIHF1ZXJ5Tm9kZXMpO1xuXG4gIHJldHVybiBub2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50c01hcmtkb3duTm9kZUZyb21Ob2RlIiwiZm9vdG5vdGVNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJmb290bm90ZXNNYXJrZG93bk5vZGVGcm9tTm9kZSIsImZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJpZ25vcmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImxpbmtNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJsaW5rUmVmZXJlbmNlT3JGb290bm90ZXNNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicmVmZXJlbmNlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsInB1c2giLCJsaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiUXVlcnkiLCJmcm9tRXhwcmVzc2lvbiIsImlnbm9yZU1hcmtkb3duTm9kZVF1ZXJ5IiwiaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSIsImNvbnRlbnRzTWFya2Rvd25Ob2RlUXVlcnkiLCJmb290bm90ZU1hcmtkb3duTm9kZXNRdWVyeSIsImZvb3Rub3Rlc01hcmtkb3duTm9kZVF1ZXJ5IiwiZm9vdG5vdGVzTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwicmVmZXJlbmNlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwibGlua1JlZmVyZW5jZU9yRm9vdG5vdGVzTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZXhwcmVzc2lvbiIsInF1ZXJ5Iiwibm9kZSIsIm5vZGVzIiwiZXhlY3V0ZSIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3ROb2RlIiwibGlua01hcmtkb3duTm9kZXMiLCJub2Rlc0Zyb21Ob2RlQW5kUXVlcnkiLCJpZ25vcmVNYXJrZG93bk5vZGUiLCJub2RlRnJvbU5vZGVBbmRRdWVyeSIsImNvbnRlbnRzTWFya2Rvd25Ob2RlIiwiZm9vdG5vdGVzTWFya2Rvd25Ob2RlIiwiaGVhZGluZ01hcmtkb3duTm9kZXMiLCJmb290bm90ZU1hcmtkb3duTm9kZXMiLCJyZWZlcmVuY2VNYXJrZG93bk5vZGVzIiwiZm9vdG5vdGVzTWFya2Rvd25Ob2RlcyIsImxpbmtSZWZlcmVuY2VPckZvb3Rub3Rlc01hcmtkb3duTm9kZXMiLCJxdWVyeU5vZGVzIiwicXVlcnlOb2Rlc0xlbmd0aCIsImZpcnN0UXVlcnlOb2RlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFw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
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ replaceNode: function() {
13
+ return replaceNode;
14
+ },
15
+ replaceTokens: function() {
16
+ return replaceTokens;
17
+ }
18
+ });
19
+ function _array_like_to_array(arr, len) {
20
+ if (len == null || len > arr.length) len = arr.length;
21
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
22
+ return arr2;
23
+ }
24
+ function _array_without_holes(arr) {
25
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
26
+ }
27
+ function _iterable_to_array(iter) {
28
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
29
+ }
30
+ function _non_iterable_spread() {
31
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
32
+ }
33
+ function _to_consumable_array(arr) {
34
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
35
+ }
36
+ function _unsupported_iterable_to_array(o, minLen) {
37
+ if (!o) return;
38
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
39
+ var n = Object.prototype.toString.call(o).slice(8, -1);
40
+ if (n === "Object" && o.constructor) n = o.constructor.name;
41
+ if (n === "Map" || n === "Set") return Array.from(n);
42
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
43
+ }
44
+ function replaceNode(replacementNode, replacedNode, parentNode) {
45
+ var replacedChildNode = replacedNode, replacementChildNode = replacementNode; ///
46
+ parentNode.replaceChildNode(replacedChildNode, replacementChildNode);
47
+ }
48
+ function replaceTokens(replacementTokens, replacedNode, tokens) {
49
+ var _tokens;
50
+ var nonTerminalNode = replacedNode, lastSignificantToken = nonTerminalNode.getLastSignificantToken(), firstSignificantToken = nonTerminalNode.getFirstSignificantToken(), lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken), firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1, deleteCount = end - start;
51
+ (_tokens = tokens).splice.apply(_tokens, [
52
+ start,
53
+ deleteCount
54
+ ].concat(_to_consumable_array(replacementTokens)));
55
+ }
56
+
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVwbGFjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VOb2RlKHJlcGxhY2VtZW50Tm9kZSwgcmVwbGFjZWROb2RlLCBwYXJlbnROb2RlKSB7XG4gIGNvbnN0IHJlcGxhY2VkQ2hpbGROb2RlID0gcmVwbGFjZWROb2RlLCAgLy8vXG4gICAgICAgIHJlcGxhY2VtZW50Q2hpbGROb2RlID0gcmVwbGFjZW1lbnROb2RlOyAvLy9cblxuICBwYXJlbnROb2RlLnJlcGxhY2VDaGlsZE5vZGUocmVwbGFjZWRDaGlsZE5vZGUsIHJlcGxhY2VtZW50Q2hpbGROb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUb2tlbnMocmVwbGFjZW1lbnRUb2tlbnMsIHJlcGxhY2VkTm9kZSwgdG9rZW5zKSB7XG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHJlcGxhY2VkTm9kZSwgIC8vL1xuICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbiA9IG5vblRlcm1pbmFsTm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbigpLFxuICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW4gPSBub25UZXJtaW5hbE5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuKCksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZihsYXN0U2lnbmlmaWNhbnRUb2tlbiksXG4gICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdG9rZW5zLmluZGV4T2YoZmlyc3RTaWduaWZpY2FudFRva2VuKSxcbiAgICAgICAgc3RhcnQgPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCwgLy8vXG4gICAgICAgIGVuZCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggKyAxLFxuICAgICAgICBkZWxldGVDb3VudCA9IGVuZCAtIHN0YXJ0O1xuXG4gIHRva2Vucy5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50LCAuLi5yZXBsYWNlbWVudFRva2Vucyk7XG59XG4iXSwibmFtZXMiOlsicmVwbGFjZU5vZGUiLCJyZXBsYWNlVG9rZW5zIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZWROb2RlIiwicGFyZW50Tm9kZSIsInJlcGxhY2VkQ2hpbGROb2RlIiwicmVwbGFjZW1lbnRDaGlsZE5vZGUiLCJyZXBsYWNlQ2hpbGROb2RlIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJ0b2tlbnMiLCJub25UZXJtaW5hbE5vZGUiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbiIsImdldExhc3RTaWduaWZpY2FudFRva2VuIiwiZmlyc3RTaWduaWZpY2FudFRva2VuIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuIiwibGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImluZGV4T2YiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInN0YXJ0IiwiZW5kIiwiZGVsZXRlQ291bnQiLCJzcGxpY2UiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFZ0JBLFdBQVc7ZUFBWEE7O0lBT0FDLGFBQWE7ZUFBYkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFQVCxTQUFTRCxZQUFZRSxlQUFlLEVBQUVDLFlBQVksRUFBRUMsVUFBVTtJQUNuRSxJQUFNQyxvQkFBb0JGLGNBQ3BCRyx1QkFBdUJKLGlCQUFpQixHQUFHO0lBRWpERSxXQUFXRyxnQkFBZ0IsQ0FBQ0YsbUJBQW1CQztBQUNqRDtBQUVPLFNBQVNMLGNBQWNPLGlCQUFpQixFQUFFTCxZQUFZLEVBQUVNLE1BQU07UUFVbkVBO0lBVEEsSUFBTUMsa0JBQWtCUCxjQUNsQlEsdUJBQXVCRCxnQkFBZ0JFLHVCQUF1QixJQUM5REMsd0JBQXdCSCxnQkFBZ0JJLHdCQUF3QixJQUNoRUMsNEJBQTRCTixPQUFPTyxPQUFPLENBQUNMLHVCQUMzQ00sNkJBQTZCUixPQUFPTyxPQUFPLENBQUNILHdCQUM1Q0ssUUFBUUQsNEJBQ1JFLE1BQU1KLDRCQUE0QixHQUNsQ0ssY0FBY0QsTUFBTUQ7SUFFMUJULENBQUFBLFVBQUFBLFFBQU9ZLE1BQU0sQ0FBYlosTUFBQUEsU0FBQUE7UUFBY1M7UUFBT0U7S0FBa0MsQ0FBdkRYLE9BQWtDLHFCQUFHRDtBQUN2QyJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "highmark-markdown",
3
3
  "author": "James Smith",
4
- "version": "0.0.225",
4
+ "version": "0.0.228",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-markdown",
7
7
  "description": "Highmark's Markdown.",
@@ -17,12 +17,12 @@
17
17
  },
18
18
  "devDependencies": {
19
19
  "@swc/core": "1.2.52",
20
- "easy": "^16.0.19",
21
- "easy-layout": "^6.0.144",
22
- "easy-with-style": "^3.0.348",
20
+ "easy": "^16.0.21",
21
+ "easy-layout": "^6.0.145",
22
+ "easy-with-style": "^3.0.349",
23
23
  "esbuild": "^0.9.2",
24
24
  "express": "^4.17.1",
25
- "juxtapose": "^4.0.80",
25
+ "juxtapose": "^4.0.81",
26
26
  "lively-cli": "^2.0.52",
27
27
  "watchful-cli": "^1.7.44"
28
28
  },
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ export default class ClonedNode {
4
+ constructor(node, tokens) {
5
+ this.node = node;
6
+ this.tokens = tokens;
7
+ }
8
+
9
+ getNode() {
10
+ return this.node;
11
+ }
12
+
13
+ getTokens() {
14
+ return this.tokens;
15
+ }
16
+
17
+ getChildNodes() { return this.node.getChildNodes(); }
18
+
19
+ static fromNode(node, context) {
20
+ let { tokens } = context;
21
+
22
+ const offset = offsetFromNodeAndTokens(node, tokens),
23
+ replacementTokens = replacementTokensFromNodeAndTokens(node, tokens);
24
+
25
+ node = node.clone(); ///
26
+
27
+ replaceNodeTokens(node, replacementTokens, offset, tokens);
28
+
29
+ tokens = replacementTokens; ///
30
+
31
+ const clonedNode = new ClonedNode(node, tokens);
32
+
33
+ return clonedNode;
34
+ }
35
+ }
36
+
37
+ function replaceNodeTokens(node, replacementTokens, offset, tokens) {
38
+ const nodeTerminalNode = node.isTerminalNode();
39
+
40
+ if (nodeTerminalNode) {
41
+ const terminalNode = node; ///
42
+
43
+ replaceTerminalNodeTokens(terminalNode, replacementTokens, offset, tokens);
44
+ } else {
45
+ const nonTerminalNode = node; ///
46
+
47
+ replaceNonTerminalNodeTokens(nonTerminalNode, replacementTokens, offset, tokens);
48
+ }
49
+ }
50
+
51
+ function replaceChildNodesTokens(childNodes, replacementTokens, offset, tokens) {
52
+ childNodes.forEach((childNode) => {
53
+ const node = childNode; ///
54
+
55
+ replaceNodeTokens(node, replacementTokens, offset, tokens);
56
+ });
57
+ }
58
+
59
+ function replaceTerminalNodeTokens(terminalNode, replacementTokens, offset, tokens) {
60
+ let index,
61
+ significantToken;
62
+
63
+ significantToken = terminalNode.getSignificantToken();
64
+
65
+ if (significantToken !== null) {
66
+ index = tokens.indexOf(significantToken);
67
+
68
+ index -= offset;
69
+
70
+ const replacementToken = replacementTokens[index];
71
+
72
+ significantToken = replacementToken; ///
73
+
74
+ terminalNode.setSignificantToken(significantToken);
75
+ }
76
+ }
77
+
78
+ function replaceNonTerminalNodeTokens(nonTerminalNode, replacementTokens, offset, tokens) {
79
+ const childNodes = nonTerminalNode.getChildNodes();
80
+
81
+ replaceChildNodesTokens(childNodes, replacementTokens, offset, tokens);
82
+ }
83
+
84
+ function offsetFromNodeAndTokens(node, tokens) {
85
+ let offset;
86
+
87
+ const nodeTerminalNode = node.isTerminalNode();
88
+
89
+ if (nodeTerminalNode) {
90
+ const terminalNode = node, ///
91
+ significantToken = terminalNode.getSignificantToken();
92
+
93
+ if (significantToken === null) {
94
+ offset = -1;
95
+ } else {
96
+ const significantTokenIndex = tokens.indexOf(significantToken);
97
+
98
+ offset = significantTokenIndex; ///
99
+ }
100
+ } else {
101
+ const nonTerminalNode = node, ///
102
+ firstSignificantToken = nonTerminalNode.getFirstSignificantToken(),
103
+ firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken);
104
+
105
+ offset = firstSignificantTokenIndex; ///
106
+ }
107
+
108
+ return offset;
109
+ }
110
+
111
+ function replacementTokensFromNodeAndTokens(node, tokens) {
112
+ const nodeTerminalNode = node.isTerminalNode();
113
+
114
+ if (nodeTerminalNode) {
115
+ const terminalNode = node, ///
116
+ significantToken = terminalNode.getSignificantToken();
117
+
118
+ if (significantToken === null) {
119
+ tokens = [];
120
+ } else {
121
+ const token = significantToken; ///
122
+
123
+ tokens = [
124
+ token
125
+ ];
126
+ }
127
+ } else {
128
+ const nonTerminalNode = node, ///
129
+ lastSignificantToken = nonTerminalNode.getLastSignificantToken(),
130
+ firstSignificantToken = nonTerminalNode.getFirstSignificantToken(),
131
+ lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken),
132
+ firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken),
133
+ start = firstSignificantTokenIndex, ///
134
+ end = lastSignificantTokenIndex + 1;
135
+
136
+ tokens = tokens.slice(start, end); ///
137
+ }
138
+
139
+ const replacementTokens = tokens.map((token) => { ///
140
+ const replacementToken = token.clone(); ///;
141
+
142
+ return replacementToken;
143
+ });
144
+
145
+ return replacementTokens;
146
+ }
package/src/elementMap.js CHANGED
@@ -8,6 +8,7 @@ import { LINK_RULE_NAME,
8
8
  ANCHOR_RULE_NAME,
9
9
  MARKER_RULE_NAME,
10
10
  BULLET_RULE_NAME,
11
+ IGNORE_RULE_NAME,
11
12
  IMPORT_RULE_NAME,
12
13
  IMPORTS_RULE_NAME,
13
14
  CONTENTS_RULE_NAME,
@@ -88,6 +89,10 @@ const elementMap = {
88
89
  tagName: null,
89
90
  className: null
90
91
  },
92
+ [IGNORE_RULE_NAME]: {
93
+ tagName: null,
94
+ className: null
95
+ },
91
96
  [IMPORT_RULE_NAME]: {
92
97
  tagName: null,
93
98
  className: null
@@ -23,12 +23,14 @@ class PreviewDiv extends Element {
23
23
  });
24
24
  }
25
25
 
26
- update(domElement) {
27
- this.clear();
28
-
26
+ update(domElements) {
29
27
  const parentDOMElement = this.getParentDOMElement();
30
28
 
31
- parentDOMElement.appendChild(domElement);
29
+ this.clear();
30
+
31
+ domElements.forEach((domElement) => {
32
+ parentDOMElement.appendChild(domElement);
33
+ });
32
34
  }
33
35
 
34
36
  parentContext() {
@@ -7,6 +7,16 @@ import { Element } from "easy";
7
7
  import { EMPTY_STRING } from "../constants";
8
8
 
9
9
  class XMP extends Element {
10
+ update(htmls) {
11
+ htmls = htmls.join(EMPTY_STRING);
12
+
13
+ const body = `<body>
14
+ ${htmls}</body>`,
15
+ html = body;
16
+
17
+ this.html(html);
18
+ }
19
+
10
20
  clear() {
11
21
  const html = EMPTY_STRING;
12
22
 
@@ -14,12 +24,12 @@ class XMP extends Element {
14
24
  }
15
25
 
16
26
  parentContext() {
17
- const xmpHTML = this.html.bind(this), ///
18
- clearXMP = this.clear.bind(this); ///
27
+ const clearXMP = this.clear.bind(this), ///
28
+ updateXMP = this.update.bind(this); ///
19
29
 
20
30
  return ({
21
- xmpHTML,
22
- clearXMP
31
+ clearXMP,
32
+ updateXMP
23
33
  });
24
34
  }
25
35
 
@@ -40,24 +40,44 @@ class View extends Element {
40
40
 
41
41
  if (node !== null) {
42
42
  const divisionMarkdownNode = node, ///
43
- parentNode = null,
43
+ divisionMarkdownNodes = [
44
+ divisionMarkdownNode
45
+ ],
44
46
  context = {
45
47
  tokens,
46
- importer
48
+ importer,
49
+ divisionMarkdownNodes
47
50
  };
48
51
 
49
- divisionMarkdownNode.resolveImports(parentNode, context);
52
+ divisionMarkdownNode.resolveImports(context);
50
53
 
51
- divisionMarkdownNode.createContents(context);
54
+ divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
55
+ divisionMarkdownNode.createFootnotes(context);
56
+ });
52
57
 
53
- divisionMarkdownNode.createFootnotes(context);
58
+ divisionMarkdownNodes.some((divisionMarkdownNode) => {
59
+ const contentsCreated = divisionMarkdownNode.createContents(context);
54
60
 
55
- const html = divisionMarkdownNode.asHTML(context),
56
- domElement = divisionMarkdownNode.createDOMElement(context);
61
+ if (contentsCreated) {
62
+ return true;
63
+ }
64
+ });
57
65
 
58
- this.xmpHTML(html);
66
+ const htmls = [],
67
+ domElements = [];
59
68
 
60
- this.updatePreviewDiv(domElement);
69
+ divisionMarkdownNodes.forEach((divisionMarkdownNode) => {
70
+ const html = divisionMarkdownNode.asHTML(context),
71
+ domElement = divisionMarkdownNode.createDOMElement(context);
72
+
73
+ htmls.push(html);
74
+
75
+ domElements.push(domElement);
76
+ });
77
+
78
+ this.updateXMP(htmls);
79
+
80
+ this.updatePreviewDiv(domElements);
61
81
  } else {
62
82
  this.clearXMP();
63
83
 
@@ -120,23 +140,14 @@ class View extends Element {
120
140
  this.update();
121
141
  }
122
142
 
123
- static initialMarkdownStyle = `
124
- min-height: initial;
125
-
126
- @media preview {
127
- division division {
128
- padding: 24pt;
129
- }
130
- }
143
+ static initialMarkdownStyle = `min-height: initial;
131
144
 
145
+ colour: red;
132
146
  `;
133
147
 
134
148
  static initialMarkdown = `Occam [^occam]
135
-
136
- [^occam]: Footnote
137
-
138
- @footnotes
139
-
149
+
150
+ @import example.md
140
151
  `;
141
152
 
142
153
  static tagName = "div";
@@ -157,19 +168,20 @@ export default withStyle(View)`
157
168
  `;
158
169
 
159
170
  function importer(filePath, context) {
160
- const content = `
161
- Occam.[^occam]
171
+ const content = `Occam.[^occam]
162
172
 
163
173
  [^another]: Occam footnote.
164
174
 
165
175
  `,
166
- className = "introduction",
167
176
  tokens = markdownLexer.tokenise(content),
168
- node = markdownParser.parse(tokens);
177
+ node = markdownParser.parse(tokens),
178
+ importedNode = node, ///
179
+ importedTokens = tokens,
180
+ importedClassName = "introduction";
169
181
 
170
182
  Object.assign(context, {
171
- node,
172
- tokens,
173
- className
183
+ importedNode,
184
+ importedTokens,
185
+ importedClassName
174
186
  });
175
187
  }
@@ -5,7 +5,9 @@ const bnf = `
5
5
  division ::= ( subDivision | endOfLine | error )+ ;
6
6
 
7
7
 
8
- subDivision.. ::= ( endOfLine | <START_OF_CONTENT> ) ( imports
8
+ subDivision.. ::= ( endOfLine | <START_OF_CONTENT> ) ( ignore
9
+
10
+ | imports
9
11
 
10
12
  | contents
11
13
 
@@ -79,6 +81,9 @@ const bnf = `
79
81
  blockListing ::= blockListingStart blockText blockListingEnd ;
80
82
 
81
83
 
84
+ ignore ::= "@"<NO_WHITESPACE>"ignore" ;
85
+
86
+
82
87
  imports ::= import+ ;
83
88
 
84
89
 
@@ -6,6 +6,17 @@ import ContentsLinkMarkdownNode from "../../node/markdown/contentsLink";
6
6
  import { CONTENTS_ITEM_RULE_NAME } from "../../ruleNames";
7
7
 
8
8
  export default class ContentsItemMarkdownNode extends MarkdownNode {
9
+ getTokens(tokens = []) {
10
+ const childNodes = this.getChildNodes(),
11
+ contentsItemMarkdownNodes = childNodes; ///
12
+
13
+ contentsItemMarkdownNodes.forEach((contentsItemMarkdownNode) => {
14
+ contentsItemMarkdownNode.getTokens(tokens);
15
+ });
16
+
17
+ return tokens;
18
+ }
19
+
9
20
  static fromContentsListMarkdownNodeAndNestedHeadingMarkdownNode(ContentsListMarkdownNode, nestedHeadingMarkdownNode, context) {
10
21
  const ruleName = CONTENTS_ITEM_RULE_NAME,
11
22
  childNodes = [],