You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-23 22:36:32 +02:00
33 lines
1022 B
TypeScript
33 lines
1022 B
TypeScript
const TurndownService = require('@joplin/turndown');
|
|
const turndownPluginGfm = require('@joplin/turndown-plugin-gfm').gfm;
|
|
|
|
// Avoid using @joplin/lib/HtmlToMd here. HtmlToMd may cause several megabytes
|
|
// of additional JavaScript and supporting data to be included.
|
|
|
|
const convertHtmlToMarkdown = (html: string|HTMLElement) => {
|
|
const turndownOpts = {
|
|
headingStyle: 'atx',
|
|
codeBlockStyle: 'fenced',
|
|
preserveImageTagsWithSize: true,
|
|
preserveNestedTables: true,
|
|
preserveColorStyles: true,
|
|
bulletListMarker: '-',
|
|
emDelimiter: '*',
|
|
strongDelimiter: '**',
|
|
allowResourcePlaceholders: true,
|
|
|
|
// If soft-breaks are enabled, lines need to end with two or more spaces for
|
|
// trailing <br/>s to render. See
|
|
// https://github.com/laurent22/joplin/issues/8430
|
|
br: ' ',
|
|
};
|
|
const turndown = new TurndownService(turndownOpts);
|
|
turndown.use(turndownPluginGfm);
|
|
turndown.remove('script');
|
|
turndown.remove('style');
|
|
const md = turndown.turndown(html);
|
|
return md;
|
|
};
|
|
|
|
export default convertHtmlToMarkdown;
|