diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-07-07 20:44:20 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-07-07 20:44:20 +0100 |
| commit | baf9808eae3441de70a00cd043e10e0ebf06b7c0 (patch) | |
| tree | 869bcc8376caf7b730f501472d507e816733e565 /lib | |
| parent | b5768bced10c6dafe8bc621c6ef01aa0bd9d975c (diff) | |
Add HTML path for ignoring elements
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/html-paths.js | 5 | ||||
| -rw-r--r-- | lib/style-reader.js | 28 |
2 files changed, 22 insertions, 11 deletions
diff --git a/lib/html-paths.js b/lib/html-paths.js index 4021887..5a00cd8 100644 --- a/lib/html-paths.js +++ b/lib/html-paths.js @@ -67,3 +67,8 @@ Element.prototype.wrapNodes = function wrapNodes(nodes) { }; exports.empty = elements([]); +exports.ignore = { + wrap: function() { + return []; + } +}; diff --git a/lib/style-reader.js b/lib/style-reader.js index ab9a171..fe60930 100644 --- a/lib/style-reader.js +++ b/lib/style-reader.js @@ -177,16 +177,21 @@ function htmlPathRule() { return htmlPaths.element(tagName, attributes, options); }); - return lop.rules.then( - lop.rules.zeroOrMoreWithSeparator( - styleElementRule, - lop.rules.sequence( - whitespaceRule, - lop.rules.tokenOfType("gt"), - whitespaceRule - ) - ), - htmlPaths.elements + return lop.rules.firstOf("html path", + lop.rules.then(lop.rules.tokenOfType("bang"), function() { + return htmlPaths.ignore; + }), + lop.rules.then( + lop.rules.zeroOrMoreWithSeparator( + styleElementRule, + lop.rules.sequence( + whitespaceRule, + lop.rules.tokenOfType("gt"), + whitespaceRule + ) + ), + htmlPaths.elements + ) ); } @@ -234,7 +239,8 @@ function tokenise(string) { {name: "close-square-bracket", regex: /\]/}, {name: "string", regex: /'([^']*)'/}, {name: "integer", regex: /([0-9]+)/}, - {name: "choice", regex: /\|/} + {name: "choice", regex: /\|/}, + {name: "bang", regex: /(!)/} ]); return tokeniser.tokenise(string); } |
