Skip to content

Commit 7f3f03a

Browse files
authored
Ensure code is always formatted when displayed (#2105)
1 parent feb37e4 commit 7f3f03a

File tree

1 file changed

+20
-26
lines changed

1 file changed

+20
-26
lines changed

static/resources/harness.js

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1570,6 +1570,24 @@
15701570
resultsEl.appendChild(container);
15711571
}
15721572

1573+
function formatCode(code) {
1574+
var formattedCode;
1575+
if ("hljs" in self) {
1576+
formattedCode = hljs.highlight(code, {
1577+
language: "js"
1578+
}).value;
1579+
} else {
1580+
formattedCode = code.replace(/</g, "&lt;").replace(/>/g, "&gt;");
1581+
}
1582+
1583+
return (formattedCode || code).replace(
1584+
/\n([^\S\r\n]*)/g,
1585+
function (match, p1) {
1586+
return "<br>" + p1.replace(/ /g, "&nbsp;");
1587+
}
1588+
);
1589+
}
1590+
15731591
/**
15741592
* Render a reusable instance like a report element
15751593
* @param {string} instanceId - The identifier of the reusable instance
@@ -1622,20 +1640,8 @@
16221640
" = " +
16231641
reusableInstances.__sources[instanceId];
16241642

1625-
var formattedCode;
1626-
if ("hljs" in self) {
1627-
formattedCode = hljs.highlight(code, {
1628-
language: "js"
1629-
}).value;
1630-
}
1631-
16321643
resultCodeEl.className = "result-code";
1633-
resultCodeEl.innerHTML = (formattedCode || code).replace(
1634-
/\n([^\S\r\n]*)/g,
1635-
function (match, p1) {
1636-
return "<br>" + p1.replace(/ /g, "&nbsp;");
1637-
}
1638-
);
1644+
resultCodeEl.innerHTML = formatCode(code);
16391645
resultInfoEl.appendChild(resultCodeEl);
16401646

16411647
resultEl.appendChild(resultInfoEl);
@@ -1687,20 +1693,8 @@
16871693
var resultCodeEl = document.createElement("code");
16881694
var code = result.info.code;
16891695

1690-
var formattedCode;
1691-
if ("hljs" in self) {
1692-
formattedCode = hljs.highlight(code, {
1693-
language: "js"
1694-
}).value;
1695-
}
1696-
16971696
resultCodeEl.className = "result-code";
1698-
resultCodeEl.innerHTML = (formattedCode || code).replace(
1699-
/\n([^\S\r\n]*)/g,
1700-
function (match, p1) {
1701-
return "<br>" + p1.replace(/ /g, "&nbsp;");
1702-
}
1703-
);
1697+
resultCodeEl.innerHTML = formatCode(code);
17041698
resultInfoEl.appendChild(resultCodeEl);
17051699
}
17061700

0 commit comments

Comments
 (0)