highmark-markdown 0.0.215 → 0.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.
- package/example.js +478 -52
- package/lib/defaultMarkdownStyle.js +2 -2
- package/lib/example/view.js +3 -3
- package/lib/example.js +5 -5
- package/lib/index.js +5 -1
- package/lib/markdownStyle/bnf.js +2 -2
- package/lib/markdownStyle/entries.js +2 -2
- package/lib/mediaTypeNames.js +34 -0
- package/lib/node/markdown/division.js +6 -4
- package/lib/style/declarations.js +1 -8
- package/lib/style/division.js +21 -7
- package/lib/style/media.js +97 -0
- package/lib/style/mediaType.js +81 -0
- package/lib/style/mediaTypes.js +93 -0
- package/lib/style/medias.js +81 -0
- package/lib/style/ruleSet.js +3 -3
- package/lib/style/ruleSets.js +2 -9
- package/lib/styleElement/markdown.js +17 -9
- package/lib/utilities/css.js +12 -11
- package/lib/utilities/query.js +1 -1
- package/package.json +1 -1
- package/src/defaultMarkdownStyle.js +6 -3
- package/src/example/view.js +9 -4
- package/src/example.js +7 -5
- package/src/index.js +1 -0
- package/src/markdownStyle/bnf.js +10 -1
- package/src/markdownStyle/entries.js +1 -1
- package/src/mediaTypeNames.js +11 -0
- package/src/node/markdown/division.js +5 -3
- package/src/style/declarations.js +0 -7
- package/src/style/division.js +24 -10
- package/src/style/media.js +68 -0
- package/src/style/mediaType.js +50 -0
- package/src/style/mediaTypes.js +63 -0
- package/src/style/medias.js +50 -0
- package/src/style/ruleSet.js +1 -1
- package/src/style/ruleSets.js +1 -8
- package/src/styleElement/markdown.js +16 -7
- package/src/utilities/css.js +8 -6
- package/src/utilities/query.js +1 -1
package/src/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { default as elementMap } from "./elementMap";
|
|
|
7
7
|
export { default as cssUtilities } from "./utilities/css";
|
|
8
8
|
export { default as MarkdownNode } from "./node/markdown";
|
|
9
9
|
export { default as MarkdownLexer } from "./markdown/lexer";
|
|
10
|
+
export { default as mediaTypeNames } from "./mediaTypeNames";
|
|
10
11
|
export { default as MarkdownParser } from "./markdown/parser";
|
|
11
12
|
export { default as queryUtilities } from "./utilities/query";
|
|
12
13
|
export { default as MarkdownStyleLexer } from "./markdownStyle/lexer";
|
package/src/markdownStyle/bnf.js
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
const bnf = `
|
|
4
4
|
|
|
5
|
-
style ::= ( ruleSet | declaration | nonsense | error )+ ;
|
|
5
|
+
style ::= ( media | ruleSet | declaration | nonsense | error )+ ;
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
media ::= "@"<NO_WHITESPACE>"media" mediaTypes "{" ( ruleSet | declaration | nonsense )* "}" ;
|
|
9
|
+
|
|
10
|
+
|
|
8
11
|
ruleSet.. ::= selectorsList "{" ( ruleSet | declaration | nonsense )* "}" ;
|
|
9
12
|
|
|
10
13
|
|
|
@@ -17,6 +20,12 @@ const bnf = `
|
|
|
17
20
|
error. ::= . ;
|
|
18
21
|
|
|
19
22
|
|
|
23
|
+
mediaTypes ::= mediaType ( "and" mediaType )* ;
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
mediaType ::= [name] ;
|
|
27
|
+
|
|
28
|
+
|
|
20
29
|
selectorsList ::= selectors ( "," selectors )* ;
|
|
21
30
|
|
|
22
31
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const WEB_MEDIA_TYPE_NAME = "web";
|
|
4
|
+
export const PRINT_MEDIA_TYPE_NAME = "print";
|
|
5
|
+
export const PREVIEW_MEDIA_TYPE_NAME = "preview";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
WEB_MEDIA_TYPE_NAME,
|
|
9
|
+
PRINT_MEDIA_TYPE_NAME,
|
|
10
|
+
PREVIEW_MEDIA_TYPE_NAME
|
|
11
|
+
};
|
|
@@ -133,11 +133,13 @@ export default class DivisionMarkdownNode extends MarkdownNode {
|
|
|
133
133
|
const divisionMarkdownNode = parentNode, ///
|
|
134
134
|
footnotesListMarkdownNode = FootnotesListMarkdownNode.fromDivisionMarkdownNode(divisionMarkdownNode, context);
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
if (footnotesListMarkdownNode !== null) {
|
|
137
|
+
childNode = footnotesListMarkdownNode; ///
|
|
137
138
|
|
|
138
|
-
|
|
139
|
+
divisionMarkdownNode.addChildNode(childNode);
|
|
139
140
|
|
|
140
|
-
|
|
141
|
+
renumberLinkMarkdownNodes(divisionMarkdownNode, footnotesListMarkdownNode, context)
|
|
142
|
+
}
|
|
141
143
|
});
|
|
142
144
|
}
|
|
143
145
|
|
|
@@ -42,13 +42,6 @@ ${declarationsCSS}
|
|
|
42
42
|
return css;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
static fromNothing() {
|
|
46
|
-
const array = [],
|
|
47
|
-
declarations = new Declarations(array);
|
|
48
|
-
|
|
49
|
-
return declarations;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
45
|
static fromNodeAndTokens(node, tokens) {
|
|
53
46
|
const declarationNonTerminalNodes = declarationNonTerminalNodesQuery(node),
|
|
54
47
|
array = declarationNonTerminalNodes.map((declarationNonTerminalNode) => {
|
package/src/style/division.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Medias from "./medias";
|
|
3
4
|
import RuleSets from "./ruleSets";
|
|
4
5
|
import Declarations from "./declarations";
|
|
5
6
|
|
|
6
|
-
import { EMPTY_STRING } from "../constants";
|
|
7
|
-
|
|
8
7
|
export default class Division {
|
|
9
|
-
constructor(ruleSets, declarations, selectorsList) {
|
|
8
|
+
constructor(medias, ruleSets, declarations, mediaType, selectorsList) {
|
|
9
|
+
this.medias = medias;
|
|
10
10
|
this.ruleSets = ruleSets;
|
|
11
11
|
this.declarations = declarations;
|
|
12
|
+
this.mediaType = mediaType;
|
|
12
13
|
this.selectorsList = selectorsList;
|
|
13
14
|
}
|
|
14
15
|
|
|
16
|
+
getMedias() {
|
|
17
|
+
return this.medias;
|
|
18
|
+
}
|
|
19
|
+
|
|
15
20
|
getRuleSets() {
|
|
16
21
|
return this.ruleSets;
|
|
17
22
|
}
|
|
@@ -20,26 +25,35 @@ export default class Division {
|
|
|
20
25
|
return this.declarations;
|
|
21
26
|
}
|
|
22
27
|
|
|
28
|
+
getMediaType() {
|
|
29
|
+
return this.mediaType;
|
|
30
|
+
}
|
|
31
|
+
|
|
23
32
|
getSelectorsList() {
|
|
24
33
|
return this.selectorsList;
|
|
25
34
|
}
|
|
26
35
|
|
|
27
36
|
asCSS() {
|
|
28
37
|
const outermost = true,
|
|
38
|
+
mediasCSS = this.medias.asCSS(this.mediaType, this.selectorsList, outermost),
|
|
29
39
|
ruleSetsCSS = this.ruleSets.asCSS(this.selectorsList, outermost),
|
|
30
40
|
declarationsCSS = this.declarations.asCSS(this.selectorsList, outermost),
|
|
31
|
-
css =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
${
|
|
41
|
+
css = `
|
|
42
|
+
|
|
43
|
+
${declarationsCSS}
|
|
44
|
+
${mediasCSS}
|
|
45
|
+
${ruleSetsCSS}
|
|
46
|
+
|
|
47
|
+
`;
|
|
35
48
|
|
|
36
49
|
return css;
|
|
37
50
|
}
|
|
38
51
|
|
|
39
|
-
static
|
|
40
|
-
const
|
|
52
|
+
static fromNodeTokensMediaTypeAndSelectorsList(node, tokens, mediaType, selectorsList) {
|
|
53
|
+
const medias = Medias.fromNodeAndTokens(node, tokens),
|
|
54
|
+
ruleSets = RuleSets.fromNodeAndTokens(node, tokens),
|
|
41
55
|
declarations = Declarations.fromNodeAndTokens(node, tokens),
|
|
42
|
-
division = new Division(ruleSets, declarations, selectorsList);
|
|
56
|
+
division = new Division(medias, ruleSets, declarations, mediaType, selectorsList);
|
|
43
57
|
|
|
44
58
|
return division;
|
|
45
59
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import RuleSets from "./ruleSets";
|
|
4
|
+
import MediaTypes from "./mediaTypes";
|
|
5
|
+
import Declarations from "./declarations";
|
|
6
|
+
|
|
7
|
+
import { nodeQuery } from "../utilities/query";
|
|
8
|
+
import { EMPTY_STRING } from "../constants";
|
|
9
|
+
|
|
10
|
+
const mediaTypesNonTerminalNodeQuery = nodeQuery("/*/mediaTypes");
|
|
11
|
+
|
|
12
|
+
export default class Media {
|
|
13
|
+
constructor(types, ruleSets, declarations) {
|
|
14
|
+
this.types = types;
|
|
15
|
+
this.ruleSets = ruleSets;
|
|
16
|
+
this.declarations = declarations;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getTypes() {
|
|
20
|
+
return this.types;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getRuleSets() {
|
|
24
|
+
return this.ruleSets;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getDeclarations() {
|
|
28
|
+
return this.declarations;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
asCSS(mediaType, selectorsList, outermost) {
|
|
32
|
+
let css = EMPTY_STRING;
|
|
33
|
+
|
|
34
|
+
const typeMatchMediaType = this.types.matchMediaType(mediaType);
|
|
35
|
+
|
|
36
|
+
if (typeMatchMediaType) {
|
|
37
|
+
const declarationsCSS = this.declarations.asCSS(selectorsList, outermost),
|
|
38
|
+
ruleSetsCSS = this.ruleSets.asCSS(selectorsList, outermost);
|
|
39
|
+
|
|
40
|
+
css = (declarationsCSS === EMPTY_STRING) ?
|
|
41
|
+
ruleSetsCSS : ///
|
|
42
|
+
`${declarationsCSS}
|
|
43
|
+
${ruleSetsCSS}`;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return css;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static fromNodeAndTokens(node, tokens) {
|
|
50
|
+
const types = typesFromNodeAndTokens(node, tokens),
|
|
51
|
+
ruleSets = RuleSets.fromNodeAndTokens(node, tokens),
|
|
52
|
+
declarations = Declarations.fromNodeAndTokens(node, tokens),
|
|
53
|
+
media = new Media(types, ruleSets, declarations);
|
|
54
|
+
|
|
55
|
+
return media;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function typesFromNodeAndTokens(node, tokens) {
|
|
60
|
+
const mediaTypesNonTerminalNode = mediaTypesNonTerminalNodeQuery(node);
|
|
61
|
+
|
|
62
|
+
node = mediaTypesNonTerminalNode; ///
|
|
63
|
+
|
|
64
|
+
const mediaTypes = MediaTypes.fromNodeAndTokens(node, tokens),
|
|
65
|
+
types = mediaTypes;
|
|
66
|
+
|
|
67
|
+
return types;
|
|
68
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { nodeQuery } from "../utilities/query";
|
|
4
|
+
|
|
5
|
+
const nameTerminalNodesQuery = nodeQuery("/*/@name");
|
|
6
|
+
|
|
7
|
+
export default class MediaType {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
this.name = name;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
getName() {
|
|
13
|
+
return this.name;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
asCSS() {
|
|
17
|
+
const css = this.name; ///
|
|
18
|
+
|
|
19
|
+
return css;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
match(mediaType) {
|
|
23
|
+
const name = mediaType.getName(),
|
|
24
|
+
matches = (this.name === name);
|
|
25
|
+
|
|
26
|
+
return matches;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static fromMediaTypeName(mediaTypeName) {
|
|
30
|
+
const name = mediaTypeName, ///
|
|
31
|
+
mediaType = new MediaType(name);
|
|
32
|
+
|
|
33
|
+
return mediaType;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static fromNodeAndTokens(node, tokens) {
|
|
37
|
+
const name = nameFromNode(node),
|
|
38
|
+
mediaType = new MediaType(name);
|
|
39
|
+
|
|
40
|
+
return mediaType;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function nameFromNode(node) {
|
|
45
|
+
const nameTerminalNode = nameTerminalNodesQuery(node),
|
|
46
|
+
nameTerminalNodeContent = nameTerminalNode.getContent(),
|
|
47
|
+
name = nameTerminalNodeContent; ///
|
|
48
|
+
|
|
49
|
+
return name;
|
|
50
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import MediaType from "./mediaType";
|
|
4
|
+
|
|
5
|
+
import { nodesQuery } from "../utilities/query";
|
|
6
|
+
import { EMPTY_STRING } from "../constants";
|
|
7
|
+
|
|
8
|
+
const mediaTypeNonTerminalNodesQuery = nodesQuery("/*/mediaType");
|
|
9
|
+
|
|
10
|
+
export default class MediaTypes {
|
|
11
|
+
constructor(array) {
|
|
12
|
+
this.array = array;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getLength() { return this.array.length; }
|
|
16
|
+
|
|
17
|
+
asCSS() {
|
|
18
|
+
let css = EMPTY_STRING;
|
|
19
|
+
|
|
20
|
+
const length = this.getLength();
|
|
21
|
+
|
|
22
|
+
if (length > 0) {
|
|
23
|
+
css = this.array.reduce((css, media) => {
|
|
24
|
+
const mediaTypeCSS = mediaType.asCSS();
|
|
25
|
+
|
|
26
|
+
css = (css === null) ?
|
|
27
|
+
mediaTypeCSS : ///
|
|
28
|
+
`${css} and ${mediaTypeCSS}`;
|
|
29
|
+
|
|
30
|
+
return css;
|
|
31
|
+
}, null);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return css;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
matchMediaType(mediaType) {
|
|
38
|
+
const mediaTypeA = mediaType, ///
|
|
39
|
+
matchesMediaType = this.array.some((mediaType) => {
|
|
40
|
+
const mediaTypeB = mediaType, ///
|
|
41
|
+
matches = mediaTypeA.match(mediaTypeB);
|
|
42
|
+
|
|
43
|
+
if (matches) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
return matchesMediaType;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static fromNodeAndTokens(node, tokens) {
|
|
52
|
+
const mediaTypeNonTerminalNodes = mediaTypeNonTerminalNodesQuery(node),
|
|
53
|
+
array = mediaTypeNonTerminalNodes.map((mediaTypeNonTerminalNode) => {
|
|
54
|
+
const node = mediaTypeNonTerminalNode, ///
|
|
55
|
+
mediaType = MediaType.fromNodeAndTokens(node, tokens);
|
|
56
|
+
|
|
57
|
+
return mediaType;
|
|
58
|
+
}),
|
|
59
|
+
medias = new MediaTypes(array);
|
|
60
|
+
|
|
61
|
+
return medias;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Media from "./media";
|
|
4
|
+
|
|
5
|
+
import { nodesQuery } from "../utilities/query";
|
|
6
|
+
import { EMPTY_STRING } from "../constants";
|
|
7
|
+
|
|
8
|
+
const mediaNonTerminalNodesQuery = nodesQuery("/*/media");
|
|
9
|
+
|
|
10
|
+
export default class Medias {
|
|
11
|
+
constructor(array) {
|
|
12
|
+
this.array = array;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getLength() { return this.array.length; }
|
|
16
|
+
|
|
17
|
+
asCSS(mediaType, selectorsList, outermost) {
|
|
18
|
+
let css = EMPTY_STRING;
|
|
19
|
+
|
|
20
|
+
const length = this.getLength(),
|
|
21
|
+
selectorsListLength = selectorsList.getLength();
|
|
22
|
+
|
|
23
|
+
if ((length > 0) && (selectorsListLength > 0)) {
|
|
24
|
+
css = this.array.reduce((css, media) => {
|
|
25
|
+
const mediaCSS = media.asCSS(mediaType, selectorsList, outermost);
|
|
26
|
+
|
|
27
|
+
css = (css === null) ?
|
|
28
|
+
mediaCSS : ///
|
|
29
|
+
`${css}${mediaCSS}`;
|
|
30
|
+
|
|
31
|
+
return css;
|
|
32
|
+
}, null);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return css;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static fromNodeAndTokens(node, tokens) {
|
|
39
|
+
const mediaNonTerminalNodes = mediaNonTerminalNodesQuery(node),
|
|
40
|
+
array = mediaNonTerminalNodes.map((mediaNonTerminalNode) => {
|
|
41
|
+
const node = mediaNonTerminalNode, ///
|
|
42
|
+
media = Media.fromNodeAndTokens(node, tokens);
|
|
43
|
+
|
|
44
|
+
return media;
|
|
45
|
+
}),
|
|
46
|
+
medias = new Medias(array);
|
|
47
|
+
|
|
48
|
+
return medias;
|
|
49
|
+
}
|
|
50
|
+
}
|
package/src/style/ruleSet.js
CHANGED
|
@@ -37,7 +37,7 @@ ${ruleSetsCSS}`;
|
|
|
37
37
|
return css;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
static
|
|
40
|
+
static fromNodeAndTokens(node, tokens, RuleSets) {
|
|
41
41
|
const ruleSets = RuleSets.fromNodeAndTokens(node, tokens),
|
|
42
42
|
declarations = Declarations.fromNodeAndTokens(node, tokens),
|
|
43
43
|
selectorsList = SelectorsList.fromNodeAndTokens(node, tokens),
|
package/src/style/ruleSets.js
CHANGED
|
@@ -35,18 +35,11 @@ export default class RuleSets {
|
|
|
35
35
|
return css;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
static fromNothing() {
|
|
39
|
-
const array = [],
|
|
40
|
-
ruleSets = new RuleSets(array);
|
|
41
|
-
|
|
42
|
-
return ruleSets;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
38
|
static fromNodeAndTokens(node, tokens) {
|
|
46
39
|
const ruleSetNonTerminalNodes = ruleSetNonTerminalNodesQuery(node),
|
|
47
40
|
array = ruleSetNonTerminalNodes.map((ruleSetNonTerminalNode) => {
|
|
48
41
|
const node = ruleSetNonTerminalNode, ///
|
|
49
|
-
ruleSet = RuleSet.
|
|
42
|
+
ruleSet = RuleSet.fromNodeAndTokens(node, tokens, RuleSets);
|
|
50
43
|
|
|
51
44
|
return ruleSet;
|
|
52
45
|
}),
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import MediaType from "../style/mediaType";
|
|
3
4
|
import StyleElement from "../styleElement";
|
|
4
5
|
import SelectorsList from "../style/selectorsList";
|
|
5
6
|
|
|
6
7
|
import { EMPTY_STRING } from "../constants";
|
|
7
8
|
import { createDOMElement } from "../styleElement";
|
|
8
|
-
import {
|
|
9
|
+
import { cssFromMarkdownStyleMediaTypeAndSelectorsList } from "../utilities/css";
|
|
9
10
|
|
|
10
11
|
export default class MarkdownStyleElement extends StyleElement {
|
|
11
|
-
constructor(domElement, selectorsList) {
|
|
12
|
+
constructor(domElement, mediaType, selectorsList) {
|
|
12
13
|
super(domElement);
|
|
13
14
|
|
|
15
|
+
this.mediaType = mediaType;
|
|
14
16
|
this.selectorsList = selectorsList;
|
|
15
17
|
}
|
|
16
18
|
|
|
19
|
+
getMediaType() {
|
|
20
|
+
return this.mediaType;
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
getSelectorsList() {
|
|
18
24
|
return this.selectorsList;
|
|
19
25
|
}
|
|
20
26
|
|
|
21
|
-
update(markdownStyle
|
|
22
|
-
const css =
|
|
27
|
+
update(markdownStyle) {
|
|
28
|
+
const css = cssFromMarkdownStyleMediaTypeAndSelectorsList(markdownStyle, this.mediaType, this.selectorsList);
|
|
23
29
|
|
|
24
30
|
this.setCSS(css);
|
|
25
31
|
|
|
@@ -32,16 +38,19 @@ export default class MarkdownStyleElement extends StyleElement {
|
|
|
32
38
|
this.update(markdownStyle)
|
|
33
39
|
}
|
|
34
40
|
|
|
35
|
-
static
|
|
41
|
+
static fromMediaTypeNameAndSelectorsString(Class, mediaTypeName, selectorString) {
|
|
36
42
|
if (selectorString === undefined) {
|
|
37
|
-
selectorString =
|
|
43
|
+
selectorString = mediaTypeName; ///
|
|
44
|
+
|
|
45
|
+
mediaTypeName = Class; ///
|
|
38
46
|
|
|
39
47
|
Class = MarkdownStyleElement; ///
|
|
40
48
|
}
|
|
41
49
|
|
|
42
50
|
const domElement = createDOMElement(),
|
|
51
|
+
mediaType = MediaType.fromMediaTypeName(mediaTypeName),
|
|
43
52
|
selectorsList = SelectorsList.fromSelectorsString(selectorString),
|
|
44
|
-
markdownStyleElement = new Class(domElement, selectorsList);
|
|
53
|
+
markdownStyleElement = new Class(domElement, mediaType, selectorsList);
|
|
45
54
|
|
|
46
55
|
return markdownStyleElement;
|
|
47
56
|
}
|
package/src/utilities/css.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Division from "../style/division";
|
|
4
|
+
import MediaType from "../style/mediaType";
|
|
4
5
|
import SelectorsList from "../style/selectorsList";
|
|
5
6
|
import MarkdownStyleLexer from "../markdownStyle/lexer";
|
|
6
7
|
import MarkdownStyleParser from "../markdownStyle/parser";
|
|
@@ -10,7 +11,7 @@ import { EMPTY_STRING } from "../constants";
|
|
|
10
11
|
const markdownStyleLexer = MarkdownStyleLexer.fromNothing(),
|
|
11
12
|
markdownStyleParser = MarkdownStyleParser.fromNothing();
|
|
12
13
|
|
|
13
|
-
export function
|
|
14
|
+
export function cssFromMarkdownStyleMediaTypeAndSelectorsList(markdownStyle, mediaType, selectorsList) {
|
|
14
15
|
let css = EMPTY_STRING;
|
|
15
16
|
|
|
16
17
|
const lexer = markdownStyleLexer, ///
|
|
@@ -20,7 +21,7 @@ export function cssFromMarkdownStyleAndSelectorsList(markdownStyle, selectorsLis
|
|
|
20
21
|
node = parser.parse(tokens);
|
|
21
22
|
|
|
22
23
|
if (node !== null) {
|
|
23
|
-
const division = Division.
|
|
24
|
+
const division = Division.fromNodeTokensMediaTypeAndSelectorsList(node, tokens, mediaType, selectorsList);
|
|
24
25
|
|
|
25
26
|
css = division.asCSS();
|
|
26
27
|
}
|
|
@@ -28,14 +29,15 @@ export function cssFromMarkdownStyleAndSelectorsList(markdownStyle, selectorsLis
|
|
|
28
29
|
return css;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
export function
|
|
32
|
+
export function cssFromMarkdownStyleMediaTypeNameAndSelectorString(markdownStyle, mediaTypeName, selectorString) {
|
|
32
33
|
const selectorsList = SelectorsList.fromSelectorsString(selectorString),
|
|
33
|
-
|
|
34
|
+
mediaType = MediaType.fromMediaTypeName(mediaTypeName),
|
|
35
|
+
css = cssFromMarkdownStyleMediaTypeAndSelectorsList(markdownStyle, mediaType, selectorsList);
|
|
34
36
|
|
|
35
37
|
return css;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
export default {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
cssFromMarkdownStyleMediaTypeAndSelectorsList,
|
|
42
|
+
cssFromMarkdownStyleMediaTypeNameAndSelectorString
|
|
41
43
|
};
|
package/src/utilities/query.js
CHANGED