blob: bcc07b128a7b8bc503aafcac5d660da42d162a96 (
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
|
// Widow word removal from text within HTML
import { strict as assert } from "assert";
import { stripHtml } from "../dist/string-strip-html.esm.js";
import { removeWidows } from "../../string-remove-widows";
const someHtml = `The quick brown fox jumps of the lazy dog.<div class="a">`;
// default widow word removal libs are not aware of HTML:
// -----------------------------------------------------------------------------
assert.equal(
removeWidows(someHtml).res,
`The quick brown fox jumps of the lazy dog.<div class="a">` // 😱
);
// luckily, removeWidows() consumes optional HTML tag locations
assert.equal(
removeWidows(someHtml, {
tagRanges: stripHtml(someHtml)
// remove the third argument, what to insert (" " string in these cases)
.ranges.map(([from, to]) => [from, to]),
}).res,
`The quick brown fox jumps of the lazy dog.<div class="a">` // ✅
);
|