mirror of
https://github.com/discourse/discourse.git
synced 2025-04-27 00:24:28 +08:00
FIX: Do not highlight large code blocks (#10125)
This commit is contained in:
parent
6705c45156
commit
4a90464619
@ -14,6 +14,11 @@ export default function highlightSyntax($elem) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(selector, $elem).each(function(i, e) {
|
$(selector, $elem).each(function(i, e) {
|
||||||
|
// Large code blocks can cause crashes or slowdowns
|
||||||
|
if (e.innerHTML.length > 30000) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$(e).removeClass("lang-auto");
|
$(e).removeClass("lang-auto");
|
||||||
loadScript(path).then(() => {
|
loadScript(path).then(() => {
|
||||||
customHighlightJSLanguages();
|
customHighlightJSLanguages();
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import componentTest from "helpers/component-test";
|
import componentTest from "helpers/component-test";
|
||||||
|
|
||||||
|
const LONG_CODE_BLOCK = "puts a\n".repeat(15000);
|
||||||
|
|
||||||
moduleForComponent("highlighted-code", { integration: true });
|
moduleForComponent("highlighted-code", { integration: true });
|
||||||
|
|
||||||
componentTest("highlighting code", {
|
componentTest("highlighting code", {
|
||||||
@ -20,3 +22,22 @@ componentTest("highlighting code", {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
componentTest("large code blocks are not highlighted", {
|
||||||
|
template: "{{highlighted-code lang='ruby' code=code}}",
|
||||||
|
|
||||||
|
beforeEach() {
|
||||||
|
Discourse.HighlightJSPath =
|
||||||
|
"assets/highlightjs/highlight-test-bundle.min.js";
|
||||||
|
this.set("code", LONG_CODE_BLOCK);
|
||||||
|
},
|
||||||
|
|
||||||
|
async test(assert) {
|
||||||
|
assert.equal(
|
||||||
|
find("code")
|
||||||
|
.text()
|
||||||
|
.trim(),
|
||||||
|
LONG_CODE_BLOCK.trim()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user