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);
}