Merge pull request #258300 from mjbvz/classical-chinchilla

Fix math blocks after paragraphs
This commit is contained in:
Matt Bierner 2025-07-28 12:04:53 -07:00 committed by GitHub
commit 1f4890e66e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 0 deletions

View File

@ -207,6 +207,9 @@ export namespace MarkedKatexExtension {
return { return {
name: 'blockKatex', name: 'blockKatex',
level: 'block', level: 'block',
start(src: string) {
return src.match(new RegExp(blockRule.source, 'm'))?.index;
},
tokenizer(src: string, tokens: marked.Token[]) { tokenizer(src: string, tokens: marked.Token[]) {
const match = src.match(blockRule); const match = src.match(blockRule);
if (match) { if (match) {

View File

@ -0,0 +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>

View File

@ -35,5 +35,15 @@ suite('Markdown Katex Support Test', () => {
const rendered = await renderMarkdownWithKatex('Hello ($\\frac{1}{2}$) World!'); const rendered = await renderMarkdownWithKatex('Hello ($\\frac{1}{2}$) World!');
await assertSnapshot(rendered.element.innerHTML); await assertSnapshot(rendered.element.innerHTML);
}); });
test('Should support blocks immediately after paragraph', async () => {
const rendered = await renderMarkdownWithKatex([
'Block example:',
'$$',
'\\int_{-\\infty}^{\\infty} e^{-x^2} dx = \\sqrt{\\pi}',
'$$',
].join('\n'));
await assertSnapshot(rendered.element.innerHTML);
});
}); });