From 20ae1f844b71f4d215f71a6eef09f93ba68c532d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 3 Jan 2026 22:44:48 +0200 Subject: [PATCH] feat(markdown): support html, jsx in code blocks --- apps/server/src/services/export/markdown.spec.ts | 9 ++++++--- apps/server/src/services/import/markdown.spec.ts | 9 ++++++--- packages/commons/src/lib/mime_type.ts | 4 ++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/apps/server/src/services/export/markdown.spec.ts b/apps/server/src/services/export/markdown.spec.ts index fe1dc1c37..4fa2913fc 100644 --- a/apps/server/src/services/export/markdown.spec.ts +++ b/apps/server/src/services/export/markdown.spec.ts @@ -1,6 +1,7 @@ -import { describe, it, expect } from "vitest"; -import markdownExportService from "./markdown.js"; import { trimIndentation } from "@triliumnext/commons"; +import { describe, expect,it } from "vitest"; + +import markdownExportService from "./markdown.js"; describe("Markdown export", () => { @@ -10,7 +11,9 @@ describe("Markdown export", () => { "language-text-x-diff": "diff", "language-application-javascript-env-frontend": "javascript", "language-application-javascript-env-backend": "javascript", - "language-text-x-asm-mips": "mips" + "language-text-x-asm-mips": "mips", + "language-text-jsx": "jsx", + "language-text-html": "html" }; for (const [ input, output ] of Object.entries(conversionTable)) { diff --git a/apps/server/src/services/import/markdown.spec.ts b/apps/server/src/services/import/markdown.spec.ts index 0bf747a81..501cc54c7 100644 --- a/apps/server/src/services/import/markdown.spec.ts +++ b/apps/server/src/services/import/markdown.spec.ts @@ -1,5 +1,6 @@ -import { describe, it, expect } from "vitest"; import { trimIndentation } from "@triliumnext/commons"; +import { describe, expect, it } from "vitest"; + import markdownService from "./markdown.js"; describe("markdown", () => { @@ -9,7 +10,9 @@ describe("markdown", () => { "diff": "language-text-x-diff", "javascript": "language-application-javascript-env-backend", "css": "language-text-css", - "mips": "language-text-x-asm-mips" + "mips": "language-text-x-asm-mips", + "jsx": "language-text-jsx", + "html": "language-text-html" }; for (const [ input, output ] of Object.entries(conversionTable)) { @@ -53,7 +56,7 @@ describe("markdown", () => { const result = markdownService.renderToHtml(trimIndentation`\ # ${title} Hi there - `, title) + `, title); expect(result).toBe(`

Hi there

`); } }); diff --git a/packages/commons/src/lib/mime_type.ts b/packages/commons/src/lib/mime_type.ts index 14d58187f..7503ef16b 100644 --- a/packages/commons/src/lib/mime_type.ts +++ b/packages/commons/src/lib/mime_type.ts @@ -92,7 +92,7 @@ const MIME_TYPES_DICT_RAW = [ { title: "Haskell (Literate)", mime: "text/x-literate-haskell" }, { title: "Haskell", mime: "text/x-haskell", mdLanguageCode: "haskell", default: true }, { title: "Haxe", mime: "text/x-haxe", mdLanguageCode: "haxe" }, - { title: "HTML", mime: "text/html", mdLanguageCode: "xml", default: true, icon: "bx bxl-html5" }, + { title: "HTML", mime: "text/html", mdLanguageCode: "html", default: true, icon: "bx bxl-html5" }, { title: "HTTP", mime: "message/http", mdLanguageCode: "http", default: true }, { title: "HXML", mime: "text/x-hxml" }, { title: "IDL", mime: "text/x-idl" }, @@ -103,7 +103,7 @@ const MIME_TYPES_DICT_RAW = [ { title: "JS frontend", mime: "application/javascript;env=frontend", mdLanguageCode: "javascript", default: true, icon: "bx bxl-javascript" }, { title: "JSON-LD", mime: "application/ld+json", mdLanguageCode: "json", icon: "bx bxs-file-json" }, { title: "JSON", mime: "application/json", mdLanguageCode: "json", default: true, icon: "bx bxs-file-json" }, - { title: "JSX", mime: "text/jsx", mdLanguageCode: "javascript", default: true }, + { title: "JSX", mime: "text/jsx", mdLanguageCode: "jsx", default: true }, { title: "Julia", mime: "text/x-julia", mdLanguageCode: "julia" }, { title: "Kotlin", mime: "text/x-kotlin", mdLanguageCode: "kotlin", default: true }, { title: "KDL", mime: "application/vnd.kdl", mdLanguageCode: "kdl" },