diff --git a/spec/support/utils.ts b/spec/support/utils.ts index a616c0078..8c796a3d3 100644 --- a/spec/support/utils.ts +++ b/spec/support/utils.ts @@ -30,8 +30,11 @@ * @param strings * @returns */ -export function trimIndentation(strings: TemplateStringsArray) { - const str = strings.toString(); +export function trimIndentation(strings: TemplateStringsArray, ...values: any[]) { + // Combine the strings with the values using interpolation + let str = strings.reduce((acc, curr, index) => { + return acc + curr + (values[index] !== undefined ? values[index] : ''); + }, ''); // Count the number of spaces on the first line. let numSpaces = 0; diff --git a/src/services/export/md.spec.ts b/src/services/export/md.spec.ts index 405cf9db7..49260cbfa 100644 --- a/src/services/export/md.spec.ts +++ b/src/services/export/md.spec.ts @@ -3,42 +3,34 @@ import markdownExportService from "./md.js"; import { trimIndentation } from "../../../spec/support/utils.js"; describe("Markdown export", () => { - it("trims language tag for code blocks", () => { - const html = trimIndentation`\ -

A diff:

-
Hello
-            -world
-            +worldy
-            
`; - const expected = trimIndentation`\ - A diff: - \`\`\`diff - Hello - -world - +worldy + it("exports correct language tag for known languages", () => { + const conversionTable = { + "language-text-x-nginx-conf": "nginx", + "language-x-diff": "diff", + "language-application-javascript-env-frontend": "javascript", + "language-application-javascript-env-backend": "javascript" + }; - \`\`\``; + for (const [ a, b ] of Object.entries(conversionTable)) { + const html = trimIndentation`\ +

A diff:

+
Hello
+                -world
+                +worldy
+                
`; + const expected = trimIndentation`\ + A diff: - expect(markdownExportService.toMarkdown(html)).toBe(expected); - }); + \`\`\`${b} + Hello + -world + +worldy - it("rewrites frontend script JavaScript code block", () => { - const html = `
Hello
`; - const expected = trimIndentation`\ - \`\`\`javascript - Hello - \`\`\``; - expect(markdownExportService.toMarkdown(html)).toBe(expected); - }); + \`\`\``; - it("rewrites backend script JavaScript code block", () => { - const html = `
Hello
`; - const expected = trimIndentation`\ - \`\`\`javascript - Hello - \`\`\``; - expect(markdownExportService.toMarkdown(html)).toBe(expected); + expect(markdownExportService.toMarkdown(html)).toBe(expected); + } }); it("removes auto tag for code blocks", () => { diff --git a/src/services/export/md.ts b/src/services/export/md.ts index 7512655b0..cb4891b89 100644 --- a/src/services/export/md.ts +++ b/src/services/export/md.ts @@ -48,6 +48,8 @@ function rewriteLanguageTag(source: string) { case "application-javascript-env-frontend": case "application-javascript-env-backend": return "javascript"; + case "text-x-nginx-conf": + return "nginx"; default: return source.split("-").at(-1); }