From 71bf70e4d3e2eedac97b5a0af4ca597fc592c87c Mon Sep 17 00:00:00 2001 From: Eric Rykwalder Date: Wed, 9 Mar 2022 17:40:50 -0500 Subject: [PATCH] simplify inline tex parsing --- __tests__/extensions.ts | 2 ++ src/extensions.ts | 10 ++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/__tests__/extensions.ts b/__tests__/extensions.ts index 210d958..cf24a28 100644 --- a/__tests__/extensions.ts +++ b/__tests__/extensions.ts @@ -263,6 +263,8 @@ Line 5} ` {P:plaintext {XI:{xm:$}tex content{xm:$}} more plaintext} +{P:plaintext {XI:{xm:$}tex content{xm:$}}more plaintext} + {P:{XI:{xm:$}1.234{xm:$}}} ` ); diff --git a/src/extensions.ts b/src/extensions.ts index fe34053..37d78a5 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -429,16 +429,14 @@ export const Tex: MarkdownConfig = { { name: "TexInline", parse(cx: InlineContext, next: number, pos: number) { - let match = /^\$[^$\s]/.exec(cx.text.slice(pos - cx.offset)); + let match = /^\$(?:[^$\t ][^$]*)?[^$\t \\]\$(\D|$)/.exec( + cx.text.slice(pos - cx.offset) + ); if (!match) { return -1; } const start = pos; - match = /[^\t \\]\$(\D|$)/.exec(cx.text.slice(pos - cx.offset + 1)); - if (!match) { - return -1; - } - const end = start + 1 + match.index + 2; + const end = start + match[0].length - match[1].length; return cx.addElement( cx.elt("TexInline", start, end, [ cx.elt("TexMarker", start, start + 1),