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.
29 lines
615 B
29 lines
615 B
'use strict' |
|
|
|
module.exports = toString |
|
|
|
// Get the text content of a node. |
|
// Prefer the node’s plain-text fields, otherwise serialize its children, |
|
// and if the given value is an array, serialize the nodes in it. |
|
function toString(node) { |
|
return ( |
|
(node && |
|
(node.value || |
|
node.alt || |
|
node.title || |
|
('children' in node && all(node.children)) || |
|
('length' in node && all(node)))) || |
|
'' |
|
) |
|
} |
|
|
|
function all(values) { |
|
var result = [] |
|
var index = -1 |
|
|
|
while (++index < values.length) { |
|
result[index] = toString(values[index]) |
|
} |
|
|
|
return result.join('') |
|
}
|
|
|