diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-19 11:54:43 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-19 11:54:43 +0000 |
| commit | 68d8c8140fb6ef1118fa2815243817f8e4f55b59 (patch) | |
| tree | d4e4be8d3b124d98f2d204ed5f97585a8729ca94 /lib/html-paths.js | |
| parent | 5f84e7887b262b96fd6fd47ce6bb1cd96c196f69 (diff) | |
Move html-paths and document-matchers to styles module
Diffstat (limited to 'lib/html-paths.js')
| -rw-r--r-- | lib/html-paths.js | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/lib/html-paths.js b/lib/html-paths.js deleted file mode 100644 index 8906329..0000000 --- a/lib/html-paths.js +++ /dev/null @@ -1,75 +0,0 @@ -var _ = require("underscore"); - -var html = require("./html"); - -exports.topLevelElement = topLevelElement; -exports.elements = elements; -exports.element = element; - -function topLevelElement(tagName, attributes) { - return elements([element(tagName, attributes, {fresh: true})]); -} - -function elements(elementStyles) { - return new HtmlPath(elementStyles.map(function(elementStyle) { - if (_.isString(elementStyle)) { - return element(elementStyle); - } else { - return elementStyle; - } - })); -} - -function HtmlPath(elements) { - this._elements = elements; -} - -HtmlPath.prototype.wrap = function wrap(children) { - var result = children(); - for (var index = this._elements.length - 1; index >= 0; index--) { - result = this._elements[index].wrapNodes(result); - } - return result; -}; - -function element(tagName, attributes, options) { - options = options || {}; - return new Element(tagName, attributes, options); -} - -function Element(tagName, attributes, options) { - var tagNames = {}; - if (_.isArray(tagName)) { - tagName.forEach(function(tagName) { - tagNames[tagName] = true; - }); - tagName = tagName[0]; - } else { - tagNames[tagName] = true; - } - - this.tagName = tagName; - this.tagNames = tagNames; - this.attributes = attributes || {}; - this.fresh = options.fresh; - this.separator = options.separator; -} - -Element.prototype.matchesElement = function(element) { - return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {}); -}; - -Element.prototype.wrap = function wrap(generateNodes) { - return this.wrapNodes(generateNodes()); -}; - -Element.prototype.wrapNodes = function wrapNodes(nodes) { - return [html.elementWithTag(this, nodes)]; -}; - -exports.empty = elements([]); -exports.ignore = { - wrap: function() { - return []; - } -}; |
