diff --git a/src/browser/dump.zig b/src/browser/dump.zig index 11ef239a..dab2d14d 100644 --- a/src/browser/dump.zig +++ b/src/browser/dump.zig @@ -26,7 +26,13 @@ pub const Opts = struct { // set to include element shadowroots in the dump page: ?*const Page = null, - exclude_scripts: bool = false, + strip_mode: StripMode = .{}, + + pub const StripMode = struct { + js: bool = false, + ui: bool = false, + css: bool = false, + }; }; // writer must be a std.io.Writer @@ -67,7 +73,7 @@ pub fn writeNode(node: *parser.Node, opts: Opts, writer: *std.Io.Writer) anyerro .element => { // open the tag const tag_type = try parser.nodeHTMLGetTagType(node) orelse .undef; - if (opts.exclude_scripts and try isScriptOrRelated(tag_type, node)) { + if (try isStripped(tag_type, node, opts.strip_mode)) { return; } @@ -159,9 +165,22 @@ pub fn writeChildren(root: *parser.Node, opts: Opts, writer: *std.Io.Writer) !vo } } -// When `exclude_scripts` is passed to dump, we don't include