1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-03 09:07:19 +00:00

Add NeedPostProcess for Parser interface to improve performance of csv render (#15153)

This commit is contained in:
Lunny Xiao
2021-04-13 15:06:31 +08:00
committed by GitHub
parent bf3e584de2
commit 66f0fd0959
8 changed files with 38 additions and 14 deletions

View File

@ -28,6 +28,9 @@ func (Parser) Name() string {
return "csv"
}
// NeedPostProcess implements markup.Parser
func (Parser) NeedPostProcess() bool { return false }
// Extensions implements markup.Parser
func (Parser) Extensions() []string {
return []string{".csv", ".tsv"}

View File

@ -38,6 +38,11 @@ func (p *Parser) Name() string {
return p.MarkupName
}
// NeedPostProcess implements markup.Parser
func (p *Parser) NeedPostProcess() bool {
return p.MarkupParser.NeedPostProcess
}
// Extensions returns the supported extensions of the tool
func (p *Parser) Extensions() []string {
return p.FileExtensions

View File

@ -228,6 +228,9 @@ func (Parser) Name() string {
return MarkupName
}
// NeedPostProcess implements markup.Parser
func (Parser) NeedPostProcess() bool { return true }
// Extensions implements markup.Parser
func (Parser) Extensions() []string {
return setting.Markdown.FileExtensions

View File

@ -33,6 +33,7 @@ func Init() {
type Parser interface {
Name() string // markup format name
Extensions() []string
NeedPostProcess() bool
Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte
}
@ -82,10 +83,13 @@ func RenderWiki(filename string, rawBytes []byte, urlPrefix string, metas map[st
func render(parser Parser, rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte {
result := parser.Render(rawBytes, urlPrefix, metas, isWiki)
// TODO: one day the error should be returned.
result, err := PostProcess(result, urlPrefix, metas, isWiki)
if err != nil {
log.Error("PostProcess: %v", err)
if parser.NeedPostProcess() {
var err error
// TODO: one day the error should be returned.
result, err = PostProcess(result, urlPrefix, metas, isWiki)
if err != nil {
log.Error("PostProcess: %v", err)
}
}
return SanitizeBytes(result)
}

View File

@ -30,6 +30,9 @@ func (Parser) Name() string {
return "orgmode"
}
// NeedPostProcess implements markup.Parser
func (Parser) NeedPostProcess() bool { return true }
// Extensions implements markup.Parser
func (Parser) Extensions() []string {
return []string{".org"}