Skip to content

Commit 75c51bc

Browse files
committed
Fix math blocks after paragraphs
Fixes microsoft#258288
1 parent df984eb commit 75c51bc

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

src/vs/workbench/contrib/markdown/browser/markedKatexSupport.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ export namespace MarkedKatexExtension {
207207
return {
208208
name: 'blockKatex',
209209
level: 'block',
210+
start(src: string) {
211+
return src.match(new RegExp(blockRule.source, 'm'))?.index;
212+
},
210213
tokenizer(src: string, tokens: marked.Token[]) {
211214
const match = src.match(blockRule);
212215
if (match) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>Block example:</p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mo>∫</mo><mrow><mo>−</mo><mi>∞</mi></mrow><mi>∞</mi></msubsup><msup><mi>e</mi><mrow><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msup><mi>d</mi><mi>x</mi><mo>=</mo><msqrt><mi>π</mi></msqrt></mrow><annotation>\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}</annotation></semantics></math></span><span class="katex-html"><span class="base"><span class="strut" style="height: 2.3846em; vertical-align: -0.9703em"></span><span class="mop"><span class="mop op-symbol large-op" style="position: relative; top: -0.0011em">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 1.4143em"><span style="top: -1.7881em"><span class="pstrut" style="height: 2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight">∞</span></span></span></span><span style="top: -3.8129em"><span class="pstrut" style="height: 2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∞</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.9703em"><span></span></span></span></span></span></span><span class="mspace"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 1.0369em"><span style="top: -3.113em"><span class="pstrut" style="height: 2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight"><span class="mord mathnormal mtight">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.8913em"><span style="top: -2.931em"><span class="pstrut" style="height: 2.5em"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="mord mathnormal">d</span><span class="mord mathnormal">x</span><span class="mspace"></span><span class="mrel">=</span><span class="mspace"></span></span><span class="base"><span class="strut" style="height: 1.04em; vertical-align: -0.1908em"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.8492em"><span class="svg-align" style="top: -3em"><span class="pstrut" style="height: 3em"></span><span class="mord"><span class="mord mathnormal">π</span></span></span><span style="top: -2.8092em"><span class="pstrut" style="height: 3em"></span><span class="hide-tail" style="height: 1.08em"><svg width="400em" height="1.08em"><path></path></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.1908em"><span></span></span></span></span></span></span></span></span></span>

src/vs/workbench/contrib/markdown/test/browser/markdownKatexSupport.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,15 @@ suite('Markdown Katex Support Test', () => {
3535
const rendered = await renderMarkdownWithKatex('Hello ($\\frac{1}{2}$) World!');
3636
await assertSnapshot(rendered.element.innerHTML);
3737
});
38+
39+
test('Should support blocks immediately after paragraph', async () => {
40+
const rendered = await renderMarkdownWithKatex([
41+
'Block example:',
42+
'$$',
43+
'\\int_{-\\infty}^{\\infty} e^{-x^2} dx = \\sqrt{\\pi}',
44+
'$$',
45+
].join('\n'));
46+
await assertSnapshot(rendered.element.innerHTML);
47+
});
3848
});
3949

0 commit comments

Comments
 (0)