mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	FIx abuses and remove unused code --------- Signed-off-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: silverwind <me@silverwind.io>
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2022 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package math
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
 | 
						|
	"code.gitea.io/gitea/modules/markup/internal"
 | 
						|
 | 
						|
	"github.com/yuin/goldmark/ast"
 | 
						|
	"github.com/yuin/goldmark/renderer"
 | 
						|
	"github.com/yuin/goldmark/util"
 | 
						|
)
 | 
						|
 | 
						|
// Inline render output:
 | 
						|
// <code class="language-math">...</code>
 | 
						|
 | 
						|
// InlineRenderer is an inline renderer
 | 
						|
type InlineRenderer struct {
 | 
						|
	renderInternal *internal.RenderInternal
 | 
						|
}
 | 
						|
 | 
						|
// NewInlineRenderer returns a new renderer for inline math
 | 
						|
func NewInlineRenderer(renderInternal *internal.RenderInternal) renderer.NodeRenderer {
 | 
						|
	return &InlineRenderer{renderInternal: renderInternal}
 | 
						|
}
 | 
						|
 | 
						|
func (r *InlineRenderer) renderInline(w util.BufWriter, source []byte, n ast.Node, entering bool) (ast.WalkStatus, error) {
 | 
						|
	if entering {
 | 
						|
		_, _ = w.WriteString(string(r.renderInternal.ProtectSafeAttrs(`<code class="language-math">`)))
 | 
						|
		for c := n.FirstChild(); c != nil; c = c.NextSibling() {
 | 
						|
			segment := c.(*ast.Text).Segment
 | 
						|
			value := util.EscapeHTML(segment.Value(source))
 | 
						|
			if bytes.HasSuffix(value, []byte("\n")) {
 | 
						|
				_, _ = w.Write(value[:len(value)-1])
 | 
						|
				if c != n.LastChild() {
 | 
						|
					_, _ = w.Write([]byte(" "))
 | 
						|
				}
 | 
						|
			} else {
 | 
						|
				_, _ = w.Write(value)
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return ast.WalkSkipChildren, nil
 | 
						|
	}
 | 
						|
	_, _ = w.WriteString(`</code>`)
 | 
						|
	return ast.WalkContinue, nil
 | 
						|
}
 | 
						|
 | 
						|
// RegisterFuncs registers the renderer for inline math nodes
 | 
						|
func (r *InlineRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer) {
 | 
						|
	reg.Register(KindInline, r.renderInline)
 | 
						|
}
 |