From deno.land/x:
import { tag } from "https://deno.land/x/[email protected]/mod.ts";
From x.nest.land:
import { tag } from "https://x.nest.land/[email protected]/mod.ts";
From pax.deno.dev:
import { tag } from "https://pax.deno.dev/kawarimidoll/[email protected]";
Render markup tag.
// common usage
assertEquals(
tag("div", { id: "foo", class: "bar" }, "Hello world!"),
`<div id="foo" class="bar">Hello world!</div>`,
);
// void (no-close) tag
assertEquals(tag("meta", { charset: "utf-8" }), `<meta charset="utf-8">`);
// nested tags
assertEquals(
tag("ul", { class: "nav" }, tag("li", "first"), tag("li", "second")),
`<ul class="nav"><li>first</li><li>second</li></ul>`,
);
// boolean attributes
assertEquals(
tag("button", { type: "button", disabled: true }, "disabled"),
`<button type="button" disabled>disabled</button>`,
);
// skip attributes
assertEquals(
tag("input", { type: "text", readonly: false }),
`<input type="text">`,
);
These constants are exported.
const NBSP = " ";
const LT = "<";
const GT = ">";
const AMP = "&";
const QUOT = """;
Sanitize &
, <
, >
and "
in string.
// common usage
assertEquals(
sanitize(`<img src="https://www.example.com?width=10&height=10">`),
"<img src="https://www.example.com?width=10&height=10">",
);
// ignore sanitizing specific characters
assertEquals(sanitize("<br>", { lt: false, gt: false }), "<br>");