Fix markdown preview $$ support (#31514)

close #31481

currently `$$A + B$$ test` will ignore text after $$ block

test text

![圖片](39b2974b-c0b6-48a0-87d0-5f4a13615eed)

before fix

![圖片](15469e4c-474d-4128-b46f-d6cadaafbd68)

after fix

![圖片](c1025eef-177f-4ade-988f-510e7039f3f9)

github display

![圖片](97cd1e10-ac94-4899-86d8-8e359ef1d694)

(cherry picked from commit f0033051d5ce07f5a18d2aacef6bfdca5fc69014)
This commit is contained in:
charles 2024-06-30 07:23:47 +08:00 committed by Earl Warren
parent e1b90212e4
commit f92591b825
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
6 changed files with 79 additions and 6 deletions

View file

@ -21,7 +21,11 @@ func NewInlineRenderer() renderer.NodeRenderer {
func (r *InlineRenderer) renderInline(w util.BufWriter, source []byte, n ast.Node, entering bool) (ast.WalkStatus, error) {
if entering {
_, _ = w.WriteString(`<code class="language-math is-loading">`)
extraClass := ""
if _, ok := n.(*InlineBlock); ok {
extraClass = "display "
}
_, _ = w.WriteString(`<code class="language-math ` + extraClass + `is-loading">`)
for c := n.FirstChild(); c != nil; c = c.NextSibling() {
segment := c.(*ast.Text).Segment
value := util.EscapeHTML(segment.Value(source))
@ -43,4 +47,5 @@ func (r *InlineRenderer) renderInline(w util.BufWriter, source []byte, n ast.Nod
// RegisterFuncs registers the renderer for inline math nodes
func (r *InlineRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer) {
reg.Register(KindInline, r.renderInline)
reg.Register(KindInlineBlock, r.renderInline)
}