diff --git a/index.js b/index.js index 6f23dae..ff21a58 100644 --- a/index.js +++ b/index.js @@ -26,6 +26,9 @@ var inlineScriptFinder = pred.AND( ), pred.NOT( pred.hasAttr('src') + ), + pred.NOT( + pred.hasAttr('data-ignore') ) ); @@ -37,9 +40,11 @@ module.exports = function crisp(options) { var scriptInHead = options.scriptInHead !== false; var onlySplit = options.onlySplit || false; var alwaysWriteScript = options.alwaysWriteScript || false; + var parseAsFragment = options.parseAsFragment || false; - var doc = dom5.parse(source); + var doc = (parseAsFragment) ? dom5.parseFragment(source) : dom5.parse(source); var body = dom5.query(doc, pred.hasTagName('body')); + var head = dom5.query(doc, pred.hasTagName('head')); var scripts = dom5.queryAll(doc, inlineScriptFinder); @@ -70,7 +75,11 @@ module.exports = function crisp(options) { head.childNodes.unshift(newScript); newScript.parentNode = head; } else { - dom5.append(body, newScript); + if (!parseAsFragment) { + dom5.append(body, newScript); + } else { + dom5.append(doc, newScript); + } } } }