Files
ChatGPT/src-tauri/src/scripts/markdown.export.js
2023-01-10 10:45:17 +08:00

37 lines
1.0 KiB
JavaScript
Vendored

var ExportMD = (function () {
if (!TurndownService || !turndownPluginGfm) return;
const hljsREG = /^.*(hljs).*(language-[a-z0-9]+).*$/i;
const gfm = turndownPluginGfm.gfm
const turndownService = new TurndownService()
.use(gfm)
.addRule('code', {
filter: (node) => {
if (node.nodeName === 'CODE' && hljsREG.test(node.classList.value)) {
return 'code';
}
},
replacement: (content, node) => {
const classStr = node.getAttribute('class');
if (hljsREG.test(classStr)) {
const lang = classStr.match(/.*language-(\w+)/)[1];
if (lang) {
return `\`\`\`${lang}\n${content}\n\`\`\``;
}
return `\`\`\`\n${content}\n\`\`\``;
}
}
})
.addRule('ignore', {
filter: ['button', 'img'],
replacement: () => '',
})
.addRule('table', {
filter: 'table',
replacement: function(content, node) {
return `\`\`\`${content}\n\`\`\``;
},
});
return turndownService;
}({}));