blob: 91dcbf7ff83c5cd5516acf0d6e60963369a9a817 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// Minimal example using Ranges
// We strip tags and fix apostrophes
// that's part of what https://codsen.com/os/detergent/ does
import { strict as assert } from "assert";
import { rApply } from "../../ranges-apply";
import { stripHtml } from "../dist/string-strip-html.esm.js";
import { convertAll } from "../../string-apostrophes";
function stripAndFixApos(str) {
if (!str || typeof str !== "string") {
return "";
}
// Keep in mind, Ranges are array of 2-3 element arrays.
// But absent Ranges are marked as null, not empty array.
// It's so that we could test in "if-else" easily - null
// is falsy but empty array is truthy.
// That's why below we take precautions with "|| []".
return rApply(
str,
(stripHtml(str).ranges || []).concat(convertAll(str).ranges || [])
);
}
// strips tags and fixes apostrophes:
assert.equal(
stripAndFixApos(`Let's Go <strong>Larval</strong>`),
`Let’s Go Larval`
);
// no tags, no apostrophes:
assert.equal(stripAndFixApos(`zzz`), `zzz`);
|