highmark-markdown 1.0.217 → 1.0.219

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.
@@ -0,0 +1,155 @@
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: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get CSSClassFromMarkdownStyleNode () {
13
+ return CSSClassFromMarkdownStyleNode;
14
+ },
15
+ get HTMLClassFromMarkdownNode () {
16
+ return HTMLClassFromMarkdownNode;
17
+ },
18
+ get cssFromMarkdownStyleAndSelectorsString () {
19
+ return cssFromMarkdownStyleAndSelectorsString;
20
+ },
21
+ get default () {
22
+ return _default;
23
+ },
24
+ get markdownNodeFromTokens () {
25
+ return markdownNodeFromTokens;
26
+ },
27
+ get markdownStyleNodeFromTokens () {
28
+ return markdownStyleNodeFromTokens;
29
+ },
30
+ get tokensFromMarkdown () {
31
+ return tokensFromMarkdown;
32
+ },
33
+ get tokensFromMarkdownStyle () {
34
+ return tokensFromMarkdownStyle;
35
+ },
36
+ get topmostCSSNodeFromMarkdownStyleNode () {
37
+ return topmostCSSNodeFromMarkdownStyleNode;
38
+ },
39
+ get topmostCSSNodeFromMarkdownStyleNodes () {
40
+ return topmostCSSNodeFromMarkdownStyleNodes;
41
+ },
42
+ get topmostHTMLNodeFromMarkdownNode () {
43
+ return topmostHTMLNodeFromMarkdownNode;
44
+ },
45
+ get topmostHTMLNodeFromMarkdownNodes () {
46
+ return topmostHTMLNodeFromMarkdownNodes;
47
+ }
48
+ });
49
+ var _occamdom = require("occam-dom");
50
+ var _css = /*#__PURE__*/ _interop_require_default(require("../node/css"));
51
+ var _html = /*#__PURE__*/ _interop_require_default(require("../node/html"));
52
+ var _css1 = /*#__PURE__*/ _interop_require_default(require("../map/node/css"));
53
+ var _html1 = /*#__PURE__*/ _interop_require_default(require("../map/node/html"));
54
+ var _lexer = /*#__PURE__*/ _interop_require_default(require("../markdown/lexer"));
55
+ var _parser = /*#__PURE__*/ _interop_require_default(require("../markdown/parser"));
56
+ var _topmost = /*#__PURE__*/ _interop_require_default(require("../node/css/topmost"));
57
+ var _topmost1 = /*#__PURE__*/ _interop_require_default(require("../node/html/topmost"));
58
+ var _markdown = /*#__PURE__*/ _interop_require_default(require("../queries/markdown"));
59
+ var _lexer1 = /*#__PURE__*/ _interop_require_default(require("../markdownStyle/lexer"));
60
+ var _parser1 = /*#__PURE__*/ _interop_require_default(require("../markdownStyle/parser"));
61
+ var _markdownStyle = /*#__PURE__*/ _interop_require_default(require("../queries/markdownStyle"));
62
+ var _query = require("../utilities/query");
63
+ function _interop_require_default(obj) {
64
+ return obj && obj.__esModule ? obj : {
65
+ default: obj
66
+ };
67
+ }
68
+ var topmostNodeFromOuterNodes = _occamdom.nodeUtilities.topmostNodeFromOuterNodes;
69
+ var markdownLexer = _lexer.default.fromNothing(), markdownParser = _parser.default.fromNothing(), markdownStyleLexer = _lexer1.default.fromNothing(), markdownStyleParser = _parser1.default.fromNothing();
70
+ function tokensFromMarkdown(markdown) {
71
+ var lexer = markdownLexer, content = markdown, tokens = lexer.tokenise(content);
72
+ return tokens;
73
+ }
74
+ function markdownNodeFromTokens(tokens) {
75
+ var parser = markdownParser, startRule = parser.getStartRule(), node = parser.parse(tokens, startRule), markdownNode = node; ///
76
+ return node;
77
+ }
78
+ function tokensFromMarkdownStyle(markdownStyle) {
79
+ var lexer = markdownStyleLexer, content = markdownStyle, tokens = lexer.tokenise(content);
80
+ return tokens;
81
+ }
82
+ function HTMLClassFromMarkdownNode(markdownNode) {
83
+ var Class;
84
+ if (markdownNode === null) {
85
+ Class = _topmost1.default; ///
86
+ } else {
87
+ var nonTerminalNode = markdownNode, ruleName = nonTerminalNode.getRuleName();
88
+ Class = _html1.default[ruleName] || _html.default;
89
+ }
90
+ return Class;
91
+ }
92
+ function markdownStyleNodeFromTokens(tokens) {
93
+ var parser = markdownStyleParser, startRule = parser.getStartRule(), node = parser.parse(tokens, startRule), markdownStyleNode = node; ///
94
+ return markdownStyleNode;
95
+ }
96
+ function CSSClassFromMarkdownStyleNode(markdownStyleNode) {
97
+ var Class;
98
+ if (markdownStyleNode === null) {
99
+ Class = _topmost.default; ///
100
+ } else {
101
+ var nonTerminalNode = markdownStyleNode, ruleName = nonTerminalNode.getRuleName();
102
+ Class = _css1.default[ruleName] || _css.default;
103
+ }
104
+ return Class;
105
+ }
106
+ function topmostHTMLNodeFromMarkdownNode(markdownNode) {
107
+ var node = markdownNode, queries = _markdown.default, nodes = (0, _query.nodesFromNodeAndQueries)(node, queries), outerNodes = nodes, topmostNode = topmostNodeFromOuterNodes(HTMLClassFromMarkdownNode, outerNodes), topmostHTMLNode = topmostNode; ///
108
+ return topmostHTMLNode;
109
+ }
110
+ function topmostHTMLNodeFromMarkdownNodes(markdownNodes) {
111
+ var nodes = [], queries = _markdown.default; ///
112
+ markdownNodes.forEach(function(markdownNode) {
113
+ var node = markdownNode; ///
114
+ (0, _query.nodesFromNodeAndQueries)(node, queries, nodes);
115
+ });
116
+ var outerNodes = nodes, topmostNode = topmostNodeFromOuterNodes(HTMLClassFromMarkdownNode, outerNodes), topmostHTMLNode = topmostNode; ///
117
+ return topmostHTMLNode;
118
+ }
119
+ function topmostCSSNodeFromMarkdownStyleNode(markdownStyleNode) {
120
+ var node = markdownStyleNode, queries = _markdownStyle.default, nodes = (0, _query.nodesFromNodeAndQueries)(node, queries), outerNodes = nodes, topmostNode = topmostNodeFromOuterNodes(CSSClassFromMarkdownStyleNode, outerNodes), topmostCSSNode = topmostNode; ///
121
+ return topmostCSSNode;
122
+ }
123
+ function topmostCSSNodeFromMarkdownStyleNodes(markdownStyleNodes) {
124
+ var nodes = [], queries = _markdownStyle.default; ///
125
+ markdownStyleNodes.forEach(function(markdownStyleNode) {
126
+ var node = markdownStyleNode; ///
127
+ (0, _query.nodesFromNodeAndQueries)(node, queries, nodes);
128
+ });
129
+ var outerNodes = nodes, topmostNode = topmostNodeFromOuterNodes(CSSClassFromMarkdownStyleNode, outerNodes), topmostCSSNode = topmostNode; ///
130
+ return topmostCSSNode;
131
+ }
132
+ function cssFromMarkdownStyleAndSelectorsString(markdownStyle, selectorsString) {
133
+ markdownStyle = "".concat(selectorsString, " {\n ").concat(markdownStyle, "\n}");
134
+ var tokens = tokensFromMarkdownStyle(markdownStyle), markdownStyleNode = markdownStyleNodeFromTokens(tokens), topmostCSSNode = topmostCSSNodeFromMarkdownStyleNode(markdownStyleNode), context = {
135
+ tokens: tokens
136
+ };
137
+ topmostCSSNode.resolve(context);
138
+ var css = topmostCSSNode.asCSS(context);
139
+ return css;
140
+ }
141
+ var _default = {
142
+ tokensFromMarkdown: tokensFromMarkdown,
143
+ markdownNodeFromTokens: markdownNodeFromTokens,
144
+ tokensFromMarkdownStyle: tokensFromMarkdownStyle,
145
+ HTMLClassFromMarkdownNode: HTMLClassFromMarkdownNode,
146
+ markdownStyleNodeFromTokens: markdownStyleNodeFromTokens,
147
+ CSSClassFromMarkdownStyleNode: CSSClassFromMarkdownStyleNode,
148
+ topmostHTMLNodeFromMarkdownNode: topmostHTMLNodeFromMarkdownNode,
149
+ topmostHTMLNodeFromMarkdownNodes: topmostHTMLNodeFromMarkdownNodes,
150
+ topmostCSSNodeFromMarkdownStyleNode: topmostCSSNodeFromMarkdownStyleNode,
151
+ topmostCSSNodeFromMarkdownStyleNodes: topmostCSSNodeFromMarkdownStyleNodes,
152
+ cssFromMarkdownStyleAndSelectorsString: cssFromMarkdownStyleAndSelectorsString
153
+ };
154
+
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ3JhbW1hci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1kb21cIjtcblxuaW1wb3J0IENTU05vZGUgZnJvbSBcIi4uL25vZGUvY3NzXCI7XG5pbXBvcnQgSFRNTE5vZGUgZnJvbSBcIi4uL25vZGUvaHRtbFwiO1xuaW1wb3J0IGNzc05vZGVNYXAgZnJvbSBcIi4uL21hcC9ub2RlL2Nzc1wiO1xuaW1wb3J0IGh0bWxOb2RlTWFwIGZyb20gXCIuLi9tYXAvbm9kZS9odG1sXCI7XG5pbXBvcnQgTWFya2Rvd25MZXhlciBmcm9tIFwiLi4vbWFya2Rvd24vbGV4ZXJcIjtcbmltcG9ydCBNYXJrZG93blBhcnNlciBmcm9tIFwiLi4vbWFya2Rvd24vcGFyc2VyXCI7XG5pbXBvcnQgVG9wbW9zdENTU05vZGUgZnJvbSBcIi4uL25vZGUvY3NzL3RvcG1vc3RcIjtcbmltcG9ydCBUb3Btb3N0SFRNTE5vZGUgZnJvbSBcIi4uL25vZGUvaHRtbC90b3Btb3N0XCI7XG5pbXBvcnQgbWFya2Rvd25RdWVyaWVzIGZyb20gXCIuLi9xdWVyaWVzL21hcmtkb3duXCI7XG5pbXBvcnQgTWFya2Rvd25TdHlsZUxleGVyIGZyb20gXCIuLi9tYXJrZG93blN0eWxlL2xleGVyXCI7XG5pbXBvcnQgTWFya2Rvd25TdHlsZVBhcnNlciBmcm9tIFwiLi4vbWFya2Rvd25TdHlsZS9wYXJzZXJcIjtcbmltcG9ydCBtYXJrZG93blN0eWxlUXVlcmllcyBmcm9tIFwiLi4vcXVlcmllcy9tYXJrZG93blN0eWxlXCI7XG5cbmltcG9ydCB7IG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB7IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMgfSA9IG5vZGVVdGlsaXRpZXM7XG5cbmNvbnN0IG1hcmtkb3duTGV4ZXIgPSBNYXJrZG93bkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtYXJrZG93blBhcnNlciA9IE1hcmtkb3duUGFyc2VyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtYXJrZG93blN0eWxlTGV4ZXIgPSBNYXJrZG93blN0eWxlTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIG1hcmtkb3duU3R5bGVQYXJzZXIgPSBNYXJrZG93blN0eWxlUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbnNGcm9tTWFya2Rvd24obWFya2Rvd24pIHtcbiAgY29uc3QgbGV4ZXIgPSBtYXJrZG93bkxleGVyLCAvLy9cbiAgICAgICAgY29udGVudCA9IG1hcmtkb3duLCAgLy8vXG4gICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrZG93bk5vZGVGcm9tVG9rZW5zKHRva2Vucykge1xuICBjb25zdCBwYXJzZXIgPSBtYXJrZG93blBhcnNlciwgLy8vXG4gICAgICAgIHN0YXJ0UnVsZSA9IHBhcnNlci5nZXRTdGFydFJ1bGUoKSxcbiAgICAgICAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSksXG4gICAgICAgIG1hcmtkb3duTm9kZSA9IG5vZGU7ICAvLy9cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRva2Vuc0Zyb21NYXJrZG93blN0eWxlKG1hcmtkb3duU3R5bGUpIHtcbiAgY29uc3QgbGV4ZXIgPSBtYXJrZG93blN0eWxlTGV4ZXIsIC8vL1xuICAgICAgICBjb250ZW50ID0gbWFya2Rvd25TdHlsZSwgIC8vL1xuICAgICAgICB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICByZXR1cm4gdG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZShtYXJrZG93bk5vZGUpIHtcbiAgbGV0IENsYXNzO1xuXG4gIGlmIChtYXJrZG93bk5vZGUgPT09IG51bGwpIHtcbiAgICBDbGFzcyA9IFRvcG1vc3RIVE1MTm9kZTsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBDbGFzcyA9IGh0bWxOb2RlTWFwW3J1bGVOYW1lXSB8fCBIVE1MTm9kZTtcbiAgfVxuXG4gIHJldHVybiBDbGFzcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2Vucyh0b2tlbnMpIHtcbiAgY29uc3QgcGFyc2VyID0gbWFya2Rvd25TdHlsZVBhcnNlciwgLy8vXG4gICAgICAgIHN0YXJ0UnVsZSA9IHBhcnNlci5nZXRTdGFydFJ1bGUoKSxcbiAgICAgICAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSksXG4gICAgICAgIG1hcmtkb3duU3R5bGVOb2RlID0gbm9kZTsgLy8vXG5cbiAgcmV0dXJuIG1hcmtkb3duU3R5bGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ1NTQ2xhc3NGcm9tTWFya2Rvd25TdHlsZU5vZGUobWFya2Rvd25TdHlsZU5vZGUpIHtcbiAgbGV0IENsYXNzO1xuXG4gIGlmIChtYXJrZG93blN0eWxlTm9kZSA9PT0gbnVsbCkge1xuICAgIENsYXNzID0gVG9wbW9zdENTU05vZGU7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtYXJrZG93blN0eWxlTm9kZSwgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBDbGFzcyA9IGNzc05vZGVNYXBbcnVsZU5hbWVdIHx8IENTU05vZGU7XG4gIH1cblxuICByZXR1cm4gQ2xhc3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b3Btb3N0SFRNTE5vZGVGcm9tTWFya2Rvd25Ob2RlKG1hcmtkb3duTm9kZSkge1xuICBjb25zdCBub2RlID0gbWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgIHF1ZXJpZXMgPSBtYXJrZG93blF1ZXJpZXMsIC8vL1xuICAgICAgICBub2RlcyA9IG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzKG5vZGUsIHF1ZXJpZXMpLFxuICAgICAgICBvdXRlck5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICB0b3Btb3N0Tm9kZSA9IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSwgb3V0ZXJOb2RlcyksXG4gICAgICAgIHRvcG1vc3RIVE1MTm9kZSA9IHRvcG1vc3ROb2RlOyAgLy8vXG5cbiAgcmV0dXJuIHRvcG1vc3RIVE1MTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvcG1vc3RIVE1MTm9kZUZyb21NYXJrZG93bk5vZGVzKG1hcmtkb3duTm9kZXMpIHtcbiAgY29uc3Qgbm9kZXMgPSBbXSxcbiAgICAgICAgcXVlcmllcyA9IG1hcmtkb3duUXVlcmllczsgIC8vL1xuXG4gIG1hcmtkb3duTm9kZXMuZm9yRWFjaCgobWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IG1hcmtkb3duTm9kZTsgIC8vL1xuXG4gICAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMobm9kZSwgcXVlcmllcywgbm9kZXMpO1xuICB9KTtcblxuICBjb25zdCBvdXRlck5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICB0b3Btb3N0Tm9kZSA9IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSwgb3V0ZXJOb2RlcyksXG4gICAgICAgIHRvcG1vc3RIVE1MTm9kZSA9IHRvcG1vc3ROb2RlOyAgLy8vXG5cbiAgcmV0dXJuIHRvcG1vc3RIVE1MTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvcG1vc3RDU1NOb2RlRnJvbU1hcmtkb3duU3R5bGVOb2RlKG1hcmtkb3duU3R5bGVOb2RlKSB7XG4gIGNvbnN0IG5vZGUgPSBtYXJrZG93blN0eWxlTm9kZSwgIC8vL1xuICAgICAgICBxdWVyaWVzID0gbWFya2Rvd25TdHlsZVF1ZXJpZXMsIC8vL1xuICAgICAgICBub2RlcyA9IG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzKG5vZGUsIHF1ZXJpZXMpLFxuICAgICAgICBvdXRlck5vZGVzID0gbm9kZXMsIC8vL1xuICAgICAgICB0b3Btb3N0Tm9kZSA9IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoQ1NTQ2xhc3NGcm9tTWFya2Rvd25TdHlsZU5vZGUsIG91dGVyTm9kZXMpLFxuICAgICAgICB0b3Btb3N0Q1NTTm9kZSA9IHRvcG1vc3ROb2RlOyAgLy8vXG5cbiAgcmV0dXJuIHRvcG1vc3RDU1NOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9wbW9zdENTU05vZGVGcm9tTWFya2Rvd25TdHlsZU5vZGVzKG1hcmtkb3duU3R5bGVOb2Rlcykge1xuICBjb25zdCBub2RlcyA9IFtdLFxuICAgICAgICBxdWVyaWVzID0gbWFya2Rvd25TdHlsZVF1ZXJpZXM7ICAvLy9cblxuICBtYXJrZG93blN0eWxlTm9kZXMuZm9yRWFjaCgobWFya2Rvd25TdHlsZU5vZGUpID0+IHtcbiAgICBjb25zdCBub2RlID0gbWFya2Rvd25TdHlsZU5vZGU7ICAvLy9cblxuICAgIG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzKG5vZGUsIHF1ZXJpZXMsIG5vZGVzKTtcbiAgfSk7XG5cbiAgY29uc3Qgb3V0ZXJOb2RlcyA9IG5vZGVzLCAvLy9cbiAgICAgICAgdG9wbW9zdE5vZGUgPSB0b3Btb3N0Tm9kZUZyb21PdXRlck5vZGVzKENTU0NsYXNzRnJvbU1hcmtkb3duU3R5bGVOb2RlLCBvdXRlck5vZGVzKSxcbiAgICAgICAgdG9wbW9zdENTU05vZGUgPSB0b3Btb3N0Tm9kZTsgIC8vL1xuXG4gIHJldHVybiB0b3Btb3N0Q1NTTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNzc0Zyb21NYXJrZG93blN0eWxlQW5kU2VsZWN0b3JzU3RyaW5nKG1hcmtkb3duU3R5bGUsIHNlbGVjdG9yc1N0cmluZykge1xuICBtYXJrZG93blN0eWxlID0gYCR7c2VsZWN0b3JzU3RyaW5nfSB7XG4gICR7bWFya2Rvd25TdHlsZX1cbn1gO1xuXG4gIGNvbnN0IHRva2VucyA9IHRva2Vuc0Zyb21NYXJrZG93blN0eWxlKG1hcmtkb3duU3R5bGUpLFxuICAgICAgICBtYXJrZG93blN0eWxlTm9kZSA9IG1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2Vucyh0b2tlbnMpLFxuICAgICAgICB0b3Btb3N0Q1NTTm9kZSA9IHRvcG1vc3RDU1NOb2RlRnJvbU1hcmtkb3duU3R5bGVOb2RlKG1hcmtkb3duU3R5bGVOb2RlKSxcbiAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICB0b2tlbnNcbiAgICAgICAgfTtcblxuICB0b3Btb3N0Q1NTTm9kZS5yZXNvbHZlKGNvbnRleHQpO1xuXG4gIGNvbnN0IGNzcyA9IHRvcG1vc3RDU1NOb2RlLmFzQ1NTKGNvbnRleHQpO1xuXG4gIHJldHVybiBjc3M7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9rZW5zRnJvbU1hcmtkb3duLFxuICBtYXJrZG93bk5vZGVGcm9tVG9rZW5zLFxuICB0b2tlbnNGcm9tTWFya2Rvd25TdHlsZSxcbiAgSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSxcbiAgbWFya2Rvd25TdHlsZU5vZGVGcm9tVG9rZW5zLFxuICBDU1NDbGFzc0Zyb21NYXJrZG93blN0eWxlTm9kZSxcbiAgdG9wbW9zdEhUTUxOb2RlRnJvbU1hcmtkb3duTm9kZSxcbiAgdG9wbW9zdEhUTUxOb2RlRnJvbU1hcmtkb3duTm9kZXMsXG4gIHRvcG1vc3RDU1NOb2RlRnJvbU1hcmtkb3duU3R5bGVOb2RlLFxuICB0b3Btb3N0Q1NTTm9kZUZyb21NYXJrZG93blN0eWxlTm9kZXMsXG4gIGNzc0Zyb21NYXJrZG93blN0eWxlQW5kU2VsZWN0b3JzU3RyaW5nXG59O1xuIl0sIm5hbWVzIjpbIkNTU0NsYXNzRnJvbU1hcmtkb3duU3R5bGVOb2RlIiwiSFRNTENsYXNzRnJvbU1hcmtkb3duTm9kZSIsImNzc0Zyb21NYXJrZG93blN0eWxlQW5kU2VsZWN0b3JzU3RyaW5nIiwibWFya2Rvd25Ob2RlRnJvbVRva2VucyIsIm1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2VucyIsInRva2Vuc0Zyb21NYXJrZG93biIsInRva2Vuc0Zyb21NYXJrZG93blN0eWxlIiwidG9wbW9zdENTU05vZGVGcm9tTWFya2Rvd25TdHlsZU5vZGUiLCJ0b3Btb3N0Q1NTTm9kZUZyb21NYXJrZG93blN0eWxlTm9kZXMiLCJ0b3Btb3N0SFRNTE5vZGVGcm9tTWFya2Rvd25Ob2RlIiwidG9wbW9zdEhUTUxOb2RlRnJvbU1hcmtkb3duTm9kZXMiLCJ0b3Btb3N0Tm9kZUZyb21PdXRlck5vZGVzIiwibm9kZVV0aWxpdGllcyIsIm1hcmtkb3duTGV4ZXIiLCJNYXJrZG93bkxleGVyIiwiZnJvbU5vdGhpbmciLCJtYXJrZG93blBhcnNlciIsIk1hcmtkb3duUGFyc2VyIiwibWFya2Rvd25TdHlsZUxleGVyIiwiTWFya2Rvd25TdHlsZUxleGVyIiwibWFya2Rvd25TdHlsZVBhcnNlciIsIk1hcmtkb3duU3R5bGVQYXJzZXIiLCJtYXJrZG93biIsImxleGVyIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwicGFyc2VyIiwic3RhcnRSdWxlIiwiZ2V0U3RhcnRSdWxlIiwibm9kZSIsInBhcnNlIiwibWFya2Rvd25Ob2RlIiwibWFya2Rvd25TdHlsZSIsIkNsYXNzIiwiVG9wbW9zdEhUTUxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImh0bWxOb2RlTWFwIiwiSFRNTE5vZGUiLCJtYXJrZG93blN0eWxlTm9kZSIsIlRvcG1vc3RDU1NOb2RlIiwiY3NzTm9kZU1hcCIsIkNTU05vZGUiLCJxdWVyaWVzIiwibWFya2Rvd25RdWVyaWVzIiwibm9kZXMiLCJub2Rlc0Zyb21Ob2RlQW5kUXVlcmllcyIsIm91dGVyTm9kZXMiLCJ0b3Btb3N0Tm9kZSIsInRvcG1vc3RIVE1MTm9kZSIsIm1hcmtkb3duTm9kZXMiLCJmb3JFYWNoIiwibWFya2Rvd25TdHlsZVF1ZXJpZXMiLCJ0b3Btb3N0Q1NTTm9kZSIsIm1hcmtkb3duU3R5bGVOb2RlcyIsInNlbGVjdG9yc1N0cmluZyIsImNvbnRleHQiLCJyZXNvbHZlIiwiY3NzIiwiYXNDU1MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTJFZ0JBO2VBQUFBOztRQXhCQUM7ZUFBQUE7O1FBK0ZBQztlQUFBQTs7UUFtQmhCO2VBQUE7O1FBbklnQkM7ZUFBQUE7O1FBZ0NBQztlQUFBQTs7UUF4Q0FDO2VBQUFBOztRQWlCQUM7ZUFBQUE7O1FBMkVBQztlQUFBQTs7UUFXQUM7ZUFBQUE7O1FBdkNBQztlQUFBQTs7UUFXQUM7ZUFBQUE7Ozt3QkFuR2M7MERBRVY7MkRBQ0M7MkRBQ0U7NERBQ0M7NERBQ0U7NkRBQ0M7OERBQ0E7K0RBQ0M7K0RBQ0E7NkRBQ0c7OERBQ0M7b0VBQ0M7cUJBRU87Ozs7OztBQUV4QyxJQUFNLEFBQUVDLDRCQUE4QkMsdUJBQWEsQ0FBM0NEO0FBRVIsSUFBTUUsZ0JBQWdCQyxjQUFhLENBQUNDLFdBQVcsSUFDekNDLGlCQUFpQkMsZUFBYyxDQUFDRixXQUFXLElBQzNDRyxxQkFBcUJDLGVBQWtCLENBQUNKLFdBQVcsSUFDbkRLLHNCQUFzQkMsZ0JBQW1CLENBQUNOLFdBQVc7QUFFcEQsU0FBU1YsbUJBQW1CaUIsUUFBUTtJQUN6QyxJQUFNQyxRQUFRVixlQUNSVyxVQUFVRixVQUNWRyxTQUFTRixNQUFNRyxRQUFRLENBQUNGO0lBRTlCLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTdEIsdUJBQXVCc0IsTUFBTTtJQUMzQyxJQUFNRSxTQUFTWCxnQkFDVFksWUFBWUQsT0FBT0UsWUFBWSxJQUMvQkMsT0FBT0gsT0FBT0ksS0FBSyxDQUFDTixRQUFRRyxZQUM1QkksZUFBZUYsTUFB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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": "1.0.217",
4
+ "version": "1.0.219",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-markdown",
7
7
  "description": "Highmark's Markdown and Markdown Style languages.",
@@ -3,7 +3,7 @@
3
3
  import withStyle from "easy-with-style"; ///
4
4
 
5
5
  import { Element } from "easy";
6
- import { domUtilities } from "../index"; ///
6
+ import { grammarUtilities } from "../index"; ///
7
7
  import { RowsDiv, ColumnDiv, ColumnsDiv, VerticalSplitterDiv } from "easy-layout";
8
8
 
9
9
  import indexOptions from "./indexOptions";
@@ -28,7 +28,7 @@ const { tokensFromMarkdown,
28
28
  tokensFromMarkdownStyle,
29
29
  markdownStyleNodeFromTokens,
30
30
  topmostHTMLNodeFromMarkdownNode,
31
- topmostCSSNodeFromMarkdownStyleNode } = domUtilities;
31
+ topmostCSSNodeFromMarkdownStyleNode } = grammarUtilities;
32
32
 
33
33
  class View extends Element {
34
34
  pageUpdateCustomHandler = (event, element, index) => {
package/src/index.js CHANGED
@@ -9,6 +9,7 @@ export { default as domUtilities } from "./utilities/dom";
9
9
  export { default as cssUtilities } from "./utilities/css";
10
10
  export { default as htmlUtilities } from "./utilities/html";
11
11
  export { default as queryUtilities } from "./utilities/query";
12
+ export { default as grammarUtilities } from "./utilities/grammar";
12
13
  export { default as markdownUtilities } from "./utilities/markdown";
13
14
  export { default as markdownStyleUtilities } from "./utilities/markdownStyle";
14
15
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../node/html";
4
4
 
5
+ import { insertAfter } from "../../utilities/dom";
5
6
  import { assignIndexes, deleteIndexes } from "../../utilities/whitespace";
6
7
  import { EMPTY_STRING, CARRIAGE_RETURN } from "../../constants";
7
8
 
@@ -26,7 +27,7 @@ export default class BlockLineHTMLNode extends HTMLNode {
26
27
 
27
28
  domElement = textNode; ///
28
29
 
29
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
30
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
30
31
 
31
32
  deleteIndexes(context);
32
33
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../../node/html";
4
4
 
5
+ import { insertAfter } from "../../../utilities/dom";
5
6
  import { INDEX_HEADING_MARKDOWN_RULE_NAME } from "../../../ruleNames/markdown";
6
7
 
7
8
  export default class IndexHeadingHTMLNode extends HTMLNode {
@@ -28,7 +29,7 @@ export default class IndexHeadingHTMLNode extends HTMLNode {
28
29
 
29
30
  this.setDOMElement(domElement);
30
31
 
31
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
32
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
32
33
 
33
34
  parentDOMElement = domElement; ///
34
35
 
@@ -39,7 +40,7 @@ export default class IndexHeadingHTMLNode extends HTMLNode {
39
40
 
40
41
  domElement = textNode; ///
41
42
 
42
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
43
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
43
44
  }
44
45
 
45
46
  unmount(parentDOMElement, context) {
@@ -3,6 +3,7 @@
3
3
  import HTMLNode from "../../node/html";
4
4
 
5
5
  import { EMPTY_STRING } from "../../constants";
6
+ import { insertAfter } from "../../utilities/dom";
6
7
  import { ALT_ATTRIBUTE_NAME, SRC_ATTRIBUTE_NAME } from "../../attributeNames";
7
8
 
8
9
  export default class ImageHTMLNode extends HTMLNode {
@@ -64,7 +65,7 @@ export default class ImageHTMLNode extends HTMLNode {
64
65
 
65
66
  this.setDOMElement(domElement);
66
67
 
67
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
68
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
68
69
  }
69
70
 
70
71
  unmount(parentDOMElement, context) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../../node/html";
4
4
 
5
+ import { insertAfter } from "../../../utilities/dom";
5
6
  import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
6
7
 
7
8
  export default class EmailLinkHTMLNode extends HTMLNode {
@@ -44,7 +45,7 @@ export default class EmailLinkHTMLNode extends HTMLNode {
44
45
 
45
46
  this.setDOMElement(domElement);
46
47
 
47
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
48
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
48
49
 
49
50
  parentDOMElement = domElement; ///
50
51
 
@@ -55,7 +56,7 @@ export default class EmailLinkHTMLNode extends HTMLNode {
55
56
 
56
57
  domElement = textNode; ///
57
58
 
58
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
59
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
59
60
  }
60
61
 
61
62
  unmount(parentDOMElement, context) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../../node/html";
4
4
 
5
+ import { insertAfter } from "../../../utilities/dom";
5
6
  import { EMPTY_STRING } from "../../../constants";
6
7
  import { FOOTNOTE_PREPEND } from "../../../prepends";
7
8
  import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
@@ -52,7 +53,7 @@ export default class FootnoteLinkHTMLNode extends HTMLNode {
52
53
 
53
54
  this.setDOMElement(domElement);
54
55
 
55
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
56
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
56
57
 
57
58
  parentDOMElement = domElement; ///
58
59
 
@@ -63,7 +64,7 @@ export default class FootnoteLinkHTMLNode extends HTMLNode {
63
64
 
64
65
  domElement = textNode; ///
65
66
 
66
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
67
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
67
68
  }
68
69
 
69
70
  unmount(parentDOMElement, context) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../../node/html";
4
4
 
5
+ import { insertAfter } from "../../../utilities/dom";
5
6
  import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
6
7
 
7
8
  export default class HyperlinkHTMLNode extends HTMLNode {
@@ -44,7 +45,7 @@ export default class HyperlinkHTMLNode extends HTMLNode {
44
45
 
45
46
  this.setDOMElement(domElement);
46
47
 
47
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
48
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
48
49
 
49
50
  parentDOMElement = domElement; ///
50
51
 
@@ -55,7 +56,7 @@ export default class HyperlinkHTMLNode extends HTMLNode {
55
56
 
56
57
  domElement = textNode; ///
57
58
 
58
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
59
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
59
60
  }
60
61
 
61
62
  unmount(parentDOMElement, context) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../../node/html";
4
4
 
5
+ import { insertAfter } from "../../../utilities/dom";
5
6
  import { EMPTY_STRING } from "../../../constants";
6
7
  import { INDEX_PREPEND } from "../../../prepends";
7
8
  import { HREF_ATTRIBUTE_NAME } from "../../../attributeNames";
@@ -53,7 +54,7 @@ export default class IndexLinkHTMLNode extends HTMLNode {
53
54
 
54
55
  domElement = textNode; ///
55
56
 
56
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
57
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
57
58
  }
58
59
 
59
60
  unmount(parentDOMElement, context) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import HTMLNode from "../../node/html";
4
4
 
5
+ import { insertAfter } from "../../utilities/dom";
5
6
  import { EMPTY_STRING } from "../../constants";
6
7
  import { PAGE_NUMBER_MARKDOWN_RULE_NAME } from "../../ruleNames/markdown";
7
8
 
@@ -38,7 +39,7 @@ export default class PageNumberHTMLNode extends HTMLNode {
38
39
 
39
40
  domElement = textNode; ///
40
41
 
41
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
42
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
42
43
  }
43
44
 
44
45
  unmount(parentDOMElement, context) {
@@ -3,6 +3,7 @@
3
3
  import HTMLNode from "../../../node/html";
4
4
  import tagNameMap from "../../../map/tagName";
5
5
 
6
+ import { insertAfter } from "../../../utilities/dom";
6
7
  import { EMPTY_STRING } from "../../../constants";
7
8
  import { STRONG_TEXT_MARKDOWN_RULE_NAME } from "../../../ruleNames/markdown";
8
9
 
@@ -35,7 +36,7 @@ export default class StronglyEmphasisedTextHTMLNode extends HTMLNode {
35
36
 
36
37
  this.setDOMElement(domElement);
37
38
 
38
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
39
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
39
40
 
40
41
  parentDOMElement = domElement; ///
41
42
 
@@ -45,7 +46,7 @@ export default class StronglyEmphasisedTextHTMLNode extends HTMLNode {
45
46
 
46
47
  domElement = childDOMElement; ///
47
48
 
48
- parentDOMElement.insertBefore(domElement, siblingDOMElement);
49
+ insertAfter(domElement, parentDOMElement, siblingDOMElement);
49
50
  }
50
51
 
51
52
  unmount(parentDOMElement, context) {
package/src/node/html.js CHANGED
@@ -4,6 +4,7 @@ import { Node } from "occam-dom";
4
4
 
5
5
  import nodeMixins from "../mixins/node";
6
6
 
7
+ import { insertAfter } from "../utilities/dom";
7
8
  import { EMPTY_STRING, DOUBLE_SPACE } from "../constants";
8
9
 
9
10
  class HTMLNode extends Node {
@@ -268,7 +269,7 @@ class HTMLNode extends Node {
268
269
  mount(parentDOMElement, siblingDOMElement, context) {
269
270
  this.domElement = this.createDOMElement(context);
270
271
 
271
- parentDOMElement.insertBefore(this.domElement, siblingDOMElement)
272
+ insertAfter(this.domElement, parentDOMElement, siblingDOMElement)
272
273
 
273
274
  parentDOMElement = this.domElement; ///
274
275
 
@@ -4,7 +4,7 @@ import StyleElement from "../styleElement";
4
4
 
5
5
  import { EMPTY_STRING } from "../constants";
6
6
  import { createDOMElement } from "../styleElement";
7
- import { cssFromMarkdownStyleAndSelectorsString } from "../utilities/dom";
7
+ import { cssFromMarkdownStyleAndSelectorsString } from "../utilities/grammar";
8
8
 
9
9
  export default class MarkdownStyleElement extends StyleElement {
10
10
  constructor(domElement, selectorsString) {
@@ -1,178 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { nodeUtilities } from "occam-dom";
3
+ export function insertAfter(domElement, parentDOMElement, siblingDOMElement) {
4
+ const nextSiblingDOMElement = (siblingDOMElement !== null) ?
5
+ siblingDOMElement.nextSibling : ///
6
+ null;
4
7
 
5
- import CSSNode from "../node/css";
6
- import HTMLNode from "../node/html";
7
- import cssNodeMap from "../map/node/css";
8
- import htmlNodeMap from "../map/node/html";
9
- import MarkdownLexer from "../markdown/lexer";
10
- import MarkdownParser from "../markdown/parser";
11
- import TopmostCSSNode from "../node/css/topmost";
12
- import TopmostHTMLNode from "../node/html/topmost";
13
- import markdownQueries from "../queries/markdown";
14
- import MarkdownStyleLexer from "../markdownStyle/lexer";
15
- import MarkdownStyleParser from "../markdownStyle/parser";
16
- import markdownStyleQueries from "../queries/markdownStyle";
17
-
18
- import { nodesFromNodeAndQueries } from "../utilities/query";
19
-
20
- const { topmostNodeFromOuterNodes } = nodeUtilities;
21
-
22
- const markdownLexer = MarkdownLexer.fromNothing(),
23
- markdownParser = MarkdownParser.fromNothing(),
24
- markdownStyleLexer = MarkdownStyleLexer.fromNothing(),
25
- markdownStyleParser = MarkdownStyleParser.fromNothing();
26
-
27
- export function tokensFromMarkdown(markdown) {
28
- const lexer = markdownLexer, ///
29
- content = markdown, ///
30
- tokens = lexer.tokenise(content);
31
-
32
- return tokens;
33
- }
34
-
35
- export function CSSClassFromOuterNode(outerNode) {
36
- let Class;
37
-
38
- if (outerNode === null) {
39
- Class = TopmostCSSNode; ///
40
- } else {
41
- const nonTerminalNode = outerNode, ///
42
- ruleName = nonTerminalNode.getRuleName();
43
-
44
- Class = cssNodeMap[ruleName] || CSSNode;
45
- }
46
-
47
- return Class;
48
- }
49
-
50
- export function HTMLClassFromOuterNode(outerNode) {
51
- let Class;
52
-
53
- if (outerNode === null) {
54
- Class = TopmostHTMLNode; ///
55
- } else {
56
- const nonTerminalNode = outerNode, ///
57
- ruleName = nonTerminalNode.getRuleName();
58
-
59
- Class = htmlNodeMap[ruleName] || HTMLNode;
60
- }
61
-
62
- return Class;
63
- }
64
-
65
- export function markdownNodeFromTokens(tokens) {
66
- const parser = markdownParser, ///
67
- startRule = parser.getStartRule(),
68
- node = parser.parse(tokens, startRule),
69
- markdownNode = node; ///
70
-
71
- return node;
72
- }
73
-
74
- export function tokensFromMarkdownStyle(markdownStyle) {
75
- const lexer = markdownStyleLexer, ///
76
- content = markdownStyle, ///
77
- tokens = lexer.tokenise(content);
78
-
79
- return tokens;
80
- }
81
-
82
- export function markdownStyleNodeFromTokens(tokens) {
83
- const parser = markdownStyleParser, ///
84
- startRule = parser.getStartRule(),
85
- node = parser.parse(tokens, startRule),
86
- markdownStyleNode = node; ///
87
-
88
- return markdownStyleNode;
89
- }
90
-
91
- export function topmostHTMLNodeFromMarkdownNode(markdownNode) {
92
- const node = markdownNode, ///
93
- queries = markdownQueries, ///
94
- nodes = nodesFromNodeAndQueries(node, queries),
95
- outerNodes = nodes, ///
96
- topmostNode = topmostNodeFromOuterNodes(HTMLClassFromOuterNode, outerNodes),
97
- topmostHTMLNode = topmostNode; ///
98
-
99
- return topmostHTMLNode;
100
- }
101
-
102
- export function topmostHTMLNodeFromMarkdownNodes(markdownNodes) {
103
- const nodes = [],
104
- queries = markdownQueries; ///
105
-
106
- markdownNodes.forEach((markdownNode) => {
107
- const node = markdownNode; ///
108
-
109
- nodesFromNodeAndQueries(node, queries, nodes);
110
- });
111
-
112
- const outerNodes = nodes, ///
113
- topmostNode = topmostNodeFromOuterNodes(HTMLClassFromOuterNode, outerNodes),
114
- topmostHTMLNode = topmostNode; ///
115
-
116
- return topmostHTMLNode;
117
- }
118
-
119
- export function topmostCSSNodeFromMarkdownStyleNode(markdownStyleNode) {
120
- const node = markdownStyleNode, ///
121
- queries = markdownStyleQueries, ///
122
- nodes = nodesFromNodeAndQueries(node, queries),
123
- outerNodes = nodes, ///
124
- topmostNode = topmostNodeFromOuterNodes(CSSClassFromOuterNode, outerNodes),
125
- topmostCSSNode = topmostNode; ///
126
-
127
- return topmostCSSNode;
128
- }
129
-
130
- export function topmostCSSNodeFromMarkdownStyleNodes(markdownStyleNodes) {
131
- const nodes = [],
132
- queries = markdownStyleQueries; ///
133
-
134
- markdownStyleNodes.forEach((markdownStyleNode) => {
135
- const node = markdownStyleNode; ///
136
-
137
- nodesFromNodeAndQueries(node, queries, nodes);
138
- });
139
-
140
- const outerNodes = nodes, ///
141
- topmostNode = topmostNodeFromOuterNodes(CSSClassFromOuterNode, outerNodes),
142
- topmostCSSNode = topmostNode; ///
143
-
144
- return topmostCSSNode;
145
- }
146
-
147
- export function cssFromMarkdownStyleAndSelectorsString(markdownStyle, selectorsString) {
148
- markdownStyle = `${selectorsString} {
149
- ${markdownStyle}
150
- }`;
151
-
152
- const tokens = tokensFromMarkdownStyle(markdownStyle),
153
- markdownStyleNode = markdownStyleNodeFromTokens(tokens),
154
- topmostCSSNode = topmostCSSNodeFromMarkdownStyleNode(markdownStyleNode),
155
- context = {
156
- tokens
157
- };
158
-
159
- topmostCSSNode.resolve(context);
160
-
161
- const css = topmostCSSNode.asCSS(context);
162
-
163
- return css;
8
+ parentDOMElement.insertBefore(domElement, nextSiblingDOMElement);
164
9
  }
165
10
 
166
11
  export default {
167
- tokensFromMarkdown,
168
- CSSClassFromOuterNode,
169
- HTMLClassFromOuterNode,
170
- markdownNodeFromTokens,
171
- tokensFromMarkdownStyle,
172
- markdownStyleNodeFromTokens,
173
- topmostHTMLNodeFromMarkdownNode,
174
- topmostHTMLNodeFromMarkdownNodes,
175
- topmostCSSNodeFromMarkdownStyleNode,
176
- topmostCSSNodeFromMarkdownStyleNodes,
177
- cssFromMarkdownStyleAndSelectorsString
12
+ insertAfter,
178
13
  };