aboutsummaryrefslogtreecommitdiff
path: root/lib/html-paths.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-19 11:54:43 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-19 11:54:43 +0000
commit68d8c8140fb6ef1118fa2815243817f8e4f55b59 (patch)
treed4e4be8d3b124d98f2d204ed5f97585a8729ca94 /lib/html-paths.js
parent5f84e7887b262b96fd6fd47ce6bb1cd96c196f69 (diff)
Move html-paths and document-matchers to styles module
Diffstat (limited to 'lib/html-paths.js')
-rw-r--r--lib/html-paths.js75
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 [];
- }
-};