diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-19 12:03:32 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-19 12:03:32 +0000 |
| commit | 6bef85a8fde03b50de4aa78064ab4c32ad54041c (patch) | |
| tree | 84bc1ab1c337f0ca045b1cb34487ec07f4c84c76 /lib | |
| parent | 68d8c8140fb6ef1118fa2815243817f8e4f55b59 (diff) | |
Introduce matcher for style name
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/style-reader.js | 2 | ||||
| -rw-r--r-- | lib/styles/document-matchers.js | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/style-reader.js b/lib/style-reader.js index 2889554..fe80006 100644 --- a/lib/style-reader.js +++ b/lib/style-reader.js @@ -74,7 +74,7 @@ function documentMatcherRule() { lop.rules.tokenOfType("close-square-bracket") ).head(), function(styleName) { - return {styleName: styleName}; + return {styleName: documentMatchers.equalTo(styleName)}; } ); diff --git a/lib/styles/document-matchers.js b/lib/styles/document-matchers.js index bdc213c..38ac049 100644 --- a/lib/styles/document-matchers.js +++ b/lib/styles/document-matchers.js @@ -5,6 +5,7 @@ exports.italic = new Matcher("italic"); exports.underline = new Matcher("underline"); exports.strikethrough = new Matcher("strikethrough"); exports.commentReference = new Matcher("commentReference"); +exports.equalTo = equalTo; function paragraph(options) { @@ -29,7 +30,7 @@ function Matcher(elementType, options) { Matcher.prototype.matches = function(element) { return element.type === this._elementType && (this._styleId === undefined || element.styleId === this._styleId) && - (this._styleName === undefined || (element.styleName && element.styleName.toUpperCase() === this._styleName.toUpperCase())) && + (this._styleName === undefined || (element.styleName && this._styleName.operator(this._styleName.operand, element.styleName))) && (this._listIndex === undefined || isList(element, this._listIndex, this._listIsOrdered)); }; @@ -38,3 +39,14 @@ function isList(element, levelIndex, isOrdered) { element.numbering.level == levelIndex && element.numbering.isOrdered == isOrdered; } + +function equalTo(value) { + return { + operator: equals, + operand: value + }; +} + +function equals(first, second) { + return first.toUpperCase() === second.toUpperCase(); +} |
