deno-markup-tag

ci deno.land vr scripts LICENSE deno.land nest badge

Usage

Import

From deno.land/x:

import { tag } from "https://deno.land/x/markup_tag@0.2.0/mod.ts";

From nest.land:

import { tag } from "https://x.nest.land/markup-tag@0.2.0/mod.ts";

From GitHub:

import { tag } from "https://raw.githubusercontent.com/kawarimidoll/deno-markup-tag/0.2.0/mod.ts";

tag

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>`,
);

Character references

These constants are exported.

const NBSP = "&nbsp;";
const LT = "&lt;";
const GT = "&gt;";
const AMP = "&amp;";
const QUOT = "&quot;";

sanitize

Sanitize '&', '<', '>' and '"' in string.

import { sanitize } from "./mod.ts"
import { assertEquals } from "https://deno.land/std/testing/asserts.ts"
 *
// common usage
assertEquals(
  sanitize(`<img src="https://www.example.com?width=10&height=10">`),
  "&lt;img src=&quot;https://www.example.com?width=10&amp;height=10&quot;&gt;",
);
 *
// ignore sanitizing specific characters
assertEquals(
  sanitize("<br>", { lt:false, gt:false }),
  "<br>",
);