diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/util/html.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/util/html.js b/src/util/html.js index d1d509e2..0f190e25 100644 --- a/src/util/html.js +++ b/src/util/html.js @@ -1338,6 +1338,22 @@ export function smush(smushee) { return smush(Tag.normalize(smushee)); } +// Much gentler version of smush - this only flattens nested html.tags(), and +// guarantees the result is itself an html.tags(). It doesn't manipulate text +// content, and it doesn't resolve templates. +export function smooth(smoothie) { + // Helper function to avoid intermediate html.tags() calls. + function helper(tag) { + if (tag instanceof Tag && tag.contentOnly) { + return tag.content.flatMap(helper); + } else { + return tag; + } + } + + return tags(helper(smoothie)); +} + export function template(description) { return new Template(description); } |