diff options
Diffstat (limited to 'school/node_modules/string-strip-html/examples/extract-html-head-contents.js')
-rw-r--r-- | school/node_modules/string-strip-html/examples/extract-html-head-contents.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/school/node_modules/string-strip-html/examples/extract-html-head-contents.js b/school/node_modules/string-strip-html/examples/extract-html-head-contents.js new file mode 100644 index 0000000..5c09d52 --- /dev/null +++ b/school/node_modules/string-strip-html/examples/extract-html-head-contents.js @@ -0,0 +1,42 @@ +// Extract HTML `<head>` contents + +import { strict as assert } from "assert"; +import { stripHtml } from "../dist/string-strip-html.esm.js"; + +const someHtml = `<!DOCTYPE html> +<html lang="en" dir="ltr"> + <head> + <meta charset="utf-8"> + <title>the title</title> + </head> + <body> + the content + </body> +</html>`; + +// The task asks not to include <head...> and </head>. +// First, extract head tag-to-head tag, including contents +const headWithHeadTags = stripHtml(someHtml, { + onlyStripTags: ["head"], + stripTogetherWithTheirContents: ["head"], +}) + .filteredTagLocations.reduce( + (acc, [from, to]) => `${acc}${someHtml.slice(from, to)}`, + "" + ) + .trim(); + +assert.equal( + headWithHeadTags, + `<head> + <meta charset="utf-8"> + <title>the title</title> + </head>` +); + +const headContents = headWithHeadTags.replace(/<\/?head>/g, "").trim(); +assert.equal( + headContents, + `<meta charset="utf-8"> + <title>the title</title>` +); |