fix: Remove empty top-level list items in imported HTML content

This commit is contained in:
Tom Moor
2023-05-25 21:34:26 -04:00
parent e9ec31e5b8
commit be3bcebf6b
5 changed files with 39 additions and 15 deletions

View File

@@ -0,0 +1,22 @@
import TurndownService from "turndown";
/**
* A turndown plugin for unwrapping top-level empty list items.
*
* @param turndownService The TurndownService instance.
*/
export default function emptyLists(turndownService: TurndownService) {
turndownService.addRule("empty-lists", {
filter(node) {
return (
node.nodeName === "LI" &&
node.childNodes.length === 1 &&
(node.firstChild?.nodeName === "OL" ||
node.firstChild?.nodeName === "UL")
);
},
replacement(content) {
return content;
},
});
}