import * as yaml from 'js-yaml' import Turndown from 'turndown' // @ts-ignore import * as turndownPluginGfm from 'turndown-plugin-gfm' const turndown = new Turndown({ headingStyle: 'atx', fence: '```', emDelimiter: '_', strongDelimiter: '**', linkStyle: 'inlined', linkReferenceStyle: 'full', codeBlockStyle: 'fenced', bulletListMarker: '-', }) turndown.use([turndownPluginGfm.tables, turndownPluginGfm.strikethrough]) export const htmlToMarkdown = async ( html: string, metadata?: Record, ) => { const markdown = turndown.turndown(html) if (!metadata) return markdown return metadataToMarkdown(metadata) + markdown } export const metadataToMarkdown = (metadata: Record) => { return `---\n${yaml.dump(metadata)}---\n\n` }