diff --git a/src/HtmlUtils.tsx b/src/HtmlUtils.tsx
index 047a891847..569b1662fe 100644
--- a/src/HtmlUtils.tsx
+++ b/src/HtmlUtils.tsx
@@ -415,12 +415,12 @@ export function bodyToHtml(content: IContent, highlights: string[], opts: IOpts
safeBody = sanitizeHtml(formattedBody, sanitizeParams);
if (SdkConfig.get()['latex_maths']) {
const mathDelimiters = [
- { left: "
.*?
", display: true },
- { left: ".*?", display: false }
+ { pattern: "(.|\\s)*?
", display: true },
+ { pattern: "(.|\\s)*?", display: false }
];
mathDelimiters.forEach(function (d) {
- var reg = RegExp(d.left + "(.*?)" + d.right, "g");
+ var reg = RegExp(d.pattern, "gm");
safeBody = safeBody.replace(reg, function(match, p1) {
return katex.renderToString(
diff --git a/src/editor/serialize.ts b/src/editor/serialize.ts
index 72a551a4a3..d0a28266eb 100644
--- a/src/editor/serialize.ts
+++ b/src/editor/serialize.ts
@@ -44,12 +44,12 @@ export function htmlSerializeIfNeeded(model: EditorModel, {forceHTML = false} =
if (SdkConfig.get()['latex_maths']) {
const mathDelimiters = [ // TODO: make customizable
- { left: "\\$\\$\\$", right: "\\$\\$\\$", display: true },
- { left: "\\$\\$", right: "\\$\\$", display: false }
+ { pattern: "\\$\\$\\$(([^$]|\\\\\\$)*)\\$\\$\\$", display: true },
+ { pattern: "\\$\\$(([^$]|\\\\\\$)*)\\$\\$", display: false }
];
mathDelimiters.forEach(function (d) {
- var reg = RegExp(d.left + "(.*?)" + d.right, "g");
+ var reg = RegExp(d.pattern, "gm");
md = md.replace(reg, function(match, p1) {
const p1e = AllHtmlEntities.encode(p1);
if (d.display == true) {