aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/html-generator.js2
-rw-r--r--lib/html-paths.js29
2 files changed, 25 insertions, 6 deletions
diff --git a/lib/html-generator.js b/lib/html-generator.js
index 3705767..62c58a8 100644
--- a/lib/html-generator.js
+++ b/lib/html-generator.js
@@ -47,7 +47,7 @@ function HtmlGenerator() {
}
function stylePartMatchesStackElement(stylePart, stackElement) {
- return stackElement && stylePart.tagName === stackElement.tagName;
+ return stackElement && stylePart.matchesElement(stackElement);
}
function open(htmlPathElement) {
diff --git a/lib/html-paths.js b/lib/html-paths.js
index 1d3b1f4..9ecb6dd 100644
--- a/lib/html-paths.js
+++ b/lib/html-paths.js
@@ -20,10 +20,29 @@ function elements(elementStyles) {
function element(tagName, attributes, options) {
options = options || {};
- return {
- tagName: tagName,
- attributes: attributes || {},
- fresh: options.fresh
- };
+ 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;
+}
+
+Element.prototype.matchesElement = function(element) {
+ return this.tagNames[element.tagName];
+}
+
+
+