From a160bdf4df5d2f870778e5ac22a623274f74c9f5 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 13 Oct 2019 14:04:54 +0300 Subject: [PATCH] Persist code block language when editing Signed-off-by: Tulir Asokan --- src/editor/deserialize.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/editor/deserialize.js b/src/editor/deserialize.js index d41e413dbc..abcfbf7dd7 100644 --- a/src/editor/deserialize.js +++ b/src/editor/deserialize.js @@ -58,7 +58,16 @@ function parseLink(a, partCreator) { function parseCodeBlock(n, partCreator) { const parts = []; - const preLines = ("```\n" + n.textContent + "```").split("\n"); + let language = ""; + if (n.firstChild && n.firstChild.nodeName === "CODE") { + for (const className of n.firstChild.classList) { + if (className.startsWith("language-")) { + language = className.substr("language-".length); + break; + } + } + } + const preLines = ("```" + language + "\n" + n.textContent + "```").split("\n"); preLines.forEach((l, i) => { parts.push(partCreator.plain(l)); if (i < preLines.length - 1) {