mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-23 21:17:11 +08:00
feat(export/markdown): preserve include section
This commit is contained in:
parent
539e3f1b6a
commit
2e4524361b
@ -315,4 +315,10 @@ describe("Markdown export", () => {
|
|||||||
expect(markdownExportService.toMarkdown(html)).toBe(expected);
|
expect(markdownExportService.toMarkdown(html)).toBe(expected);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("preserves include note", () => {
|
||||||
|
const html = /*html*/`<section class="include-note" data-note-id="i4A5g9iOg9I0" data-box-size="full"> </section>`;
|
||||||
|
const expected = /*markdown*/`<section class="include-note" data-note-id="i4A5g9iOg9I0" data-box-size="full"> </section>`;
|
||||||
|
expect(markdownExportService.toMarkdown(html)).toBe(expected);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -37,7 +37,15 @@ function toMarkdown(content: string) {
|
|||||||
if (instance === null) {
|
if (instance === null) {
|
||||||
instance = new TurndownService({
|
instance = new TurndownService({
|
||||||
headingStyle: "atx",
|
headingStyle: "atx",
|
||||||
codeBlockStyle: "fenced"
|
codeBlockStyle: "fenced",
|
||||||
|
blankReplacement(content, node, options) {
|
||||||
|
if (node.nodeName === "SECTION" && (node as HTMLElement).classList.contains("include-note")) {
|
||||||
|
return (node as HTMLElement).outerHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Original implementation as per https://github.com/mixmark-io/turndown/blob/master/src/turndown.js.
|
||||||
|
return ("isBlock" in node && node.isBlock) ? '\n\n' : ''
|
||||||
|
}
|
||||||
});
|
});
|
||||||
// Filter is heavily based on: https://github.com/mixmark-io/turndown/issues/274#issuecomment-458730974
|
// Filter is heavily based on: https://github.com/mixmark-io/turndown/issues/274#issuecomment-458730974
|
||||||
instance.addRule("fencedCodeBlock", fencedCodeBlockFilter);
|
instance.addRule("fencedCodeBlock", fencedCodeBlockFilter);
|
||||||
@ -46,7 +54,7 @@ function toMarkdown(content: string) {
|
|||||||
instance.addRule("inlineLink", buildInlineLinkFilter());
|
instance.addRule("inlineLink", buildInlineLinkFilter());
|
||||||
instance.addRule("figure", buildFigureFilter());
|
instance.addRule("figure", buildFigureFilter());
|
||||||
instance.addRule("math", buildMathFilter());
|
instance.addRule("math", buildMathFilter());
|
||||||
instance.addRule("li-1", buildListItemFilter());
|
instance.addRule("li", buildListItemFilter());
|
||||||
instance.use(gfm);
|
instance.use(gfm);
|
||||||
instance.keep([ "kbd" ]);
|
instance.keep([ "kbd" ]);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user