highmark-markdown 0.0.217 → 0.0.221
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 +481 -59
- 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/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 +11 -10
- package/lib/styleElement.js +15 -10
- 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/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 +14 -9
- package/src/styleElement.js +10 -8
- package/src/utilities/css.js +8 -6
- package/src/utilities/query.js +1 -1
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
|
+
};
|
|
@@ -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,15 +1,16 @@
|
|
|
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
|
-
super(domElement);
|
|
12
|
+
constructor(mediaType, domElement, selectorsList) {
|
|
13
|
+
super(mediaType, domElement);
|
|
13
14
|
|
|
14
15
|
this.selectorsList = selectorsList;
|
|
15
16
|
}
|
|
@@ -18,8 +19,9 @@ export default class MarkdownStyleElement extends StyleElement {
|
|
|
18
19
|
return this.selectorsList;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
update(markdownStyle
|
|
22
|
-
const
|
|
22
|
+
update(markdownStyle) {
|
|
23
|
+
const mediaType = this.getMediaType(),
|
|
24
|
+
css = cssFromMarkdownStyleMediaTypeAndSelectorsList(markdownStyle, mediaType, this.selectorsList);
|
|
23
25
|
|
|
24
26
|
this.setCSS(css);
|
|
25
27
|
|
|
@@ -32,16 +34,19 @@ export default class MarkdownStyleElement extends StyleElement {
|
|
|
32
34
|
this.update(markdownStyle)
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
static
|
|
37
|
+
static fromMediaTypeNameAndSelectorsString(Class, mediaTypeName, selectorString) {
|
|
36
38
|
if (selectorString === undefined) {
|
|
37
|
-
selectorString =
|
|
39
|
+
selectorString = mediaTypeName; ///
|
|
40
|
+
|
|
41
|
+
mediaTypeName = Class; ///
|
|
38
42
|
|
|
39
43
|
Class = MarkdownStyleElement; ///
|
|
40
44
|
}
|
|
41
45
|
|
|
42
|
-
const
|
|
46
|
+
const mediaType = MediaType.fromMediaTypeName(mediaTypeName),
|
|
47
|
+
domElement = createDOMElement(),
|
|
43
48
|
selectorsList = SelectorsList.fromSelectorsString(selectorString),
|
|
44
|
-
markdownStyleElement = new Class(domElement, selectorsList);
|
|
49
|
+
markdownStyleElement = new Class(mediaType, domElement, selectorsList);
|
|
45
50
|
|
|
46
51
|
return markdownStyleElement;
|
|
47
52
|
}
|
package/src/styleElement.js
CHANGED
|
@@ -3,14 +3,23 @@
|
|
|
3
3
|
import { HEAD, STYLE } from "./constants";
|
|
4
4
|
|
|
5
5
|
export default class StyleElement {
|
|
6
|
-
constructor(domElement) {
|
|
6
|
+
constructor(mediaType, domElement) {
|
|
7
|
+
this.mediaType = mediaType;
|
|
7
8
|
this.domElement = domElement;
|
|
8
9
|
}
|
|
9
10
|
|
|
11
|
+
getMediaType() {
|
|
12
|
+
return this.mediaType;
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
getDOMElement() {
|
|
11
16
|
return this.domElement;
|
|
12
17
|
}
|
|
13
18
|
|
|
19
|
+
setMediaType(mediaType) {
|
|
20
|
+
this.mediaType = mediaType;
|
|
21
|
+
}
|
|
22
|
+
|
|
14
23
|
setDOMElement(domElement) {
|
|
15
24
|
this.domElement = domElement;
|
|
16
25
|
}
|
|
@@ -28,13 +37,6 @@ ${css}
|
|
|
28
37
|
}
|
|
29
38
|
|
|
30
39
|
remove() { this.domElement.remove(); }
|
|
31
|
-
|
|
32
|
-
static fromNothing() {
|
|
33
|
-
const domElement = createDOMElement(),
|
|
34
|
-
styleElement = new StyleElement(domElement);
|
|
35
|
-
|
|
36
|
-
return styleElement;
|
|
37
|
-
}
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
export function createDOMElement() {
|
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