Files
outline/server/utils/turndown/frames.ts
2023-08-28 18:37:39 -04:00

22 lines
686 B
TypeScript

import TurndownService from "turndown";
/**
* A turndown plugin to convert iframes to markdown links.
*
* @param turndownService The TurndownService instance.
*/
export default function images(turndownService: TurndownService) {
turndownService.addRule("frames", {
filter: "iframe",
replacement(content, node: HTMLIFrameElement) {
const src = (node.getAttribute("src") || "").replace(/\n+/g, "");
const title = cleanAttribute(node.getAttribute("title") || "");
return src ? "[" + (title || src) + "]" + "(" + src + ")" : "";
},
});
}
function cleanAttribute(attribute: string) {
return attribute ? attribute.replace(/(\n+\s*)+/g, "\n") : "";
}