FIX: Make sure html_raw is hoisted in custom markdown cook function (#16050)

When returning the customRenderFn from within buildCustomMarkdownCookFunction
for custom markdown engines (such as the one used by the [chat] transcripts)
we were not hoisting/unhoisting the `html_raw` tokens created by the
transcript, which meant that opts.discourse.hoisted could end up in
a state where it was null, and which caused errors and general unpleasantness.

Instead, we can just call the `cook` function that is already exported
from discourse-markdown-it, that takes care of what we did previously
plus the hoisting.

There is a companion chat commit that adds tests for this, there are
no custom markdown engine usages in core to test with.
This commit is contained in:
Martin Brennan 2022-02-28 07:54:55 +10:00 committed by GitHub
parent 430d004fe4
commit cfe4ff8d56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -337,9 +337,7 @@ function buildCustomMarkdownCookFunction(engineOpts, defaultEngineOpts) {
// we don't need the whole engine as a consumer, just a cook function
// will do
return function customRenderFn(contentToRender) {
return newOpts.discourse
.sanitizer(newOpts.engine.render(contentToRender))
.trim();
return cook(contentToRender, newOpts);
};
}