You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
50 lines
1.0 KiB
var htmlPaths = require("../styles/html-paths");
|
|
|
|
|
|
function nonFreshElement(tagName, attributes, children) {
|
|
return elementWithTag(
|
|
htmlPaths.element(tagName, attributes, {fresh: false}),
|
|
children);
|
|
}
|
|
|
|
function freshElement(tagName, attributes, children) {
|
|
var tag = htmlPaths.element(tagName, attributes, {fresh: true});
|
|
return elementWithTag(tag, children);
|
|
}
|
|
|
|
function elementWithTag(tag, children) {
|
|
return {
|
|
type: "element",
|
|
tag: tag,
|
|
children: children || []
|
|
};
|
|
}
|
|
|
|
function text(value) {
|
|
return {
|
|
type: "text",
|
|
value: value
|
|
};
|
|
}
|
|
|
|
var forceWrite = {
|
|
type: "forceWrite"
|
|
};
|
|
|
|
exports.freshElement = freshElement;
|
|
exports.nonFreshElement = nonFreshElement;
|
|
exports.elementWithTag = elementWithTag;
|
|
exports.text = text;
|
|
exports.forceWrite = forceWrite;
|
|
|
|
var voidTagNames = {
|
|
"br": true,
|
|
"hr": true,
|
|
"img": true
|
|
};
|
|
|
|
function isVoidElement(node) {
|
|
return (node.children.length === 0) && voidTagNames[node.tag.tagName];
|
|
}
|
|
|
|
exports.isVoidElement = isVoidElement;
|
|
|