Add parse_markdown rewrite function

This commit is contained in:
Gabe Cook 2022-07-27 09:55:28 -05:00 committed by Frédéric Guillot
parent 9ba15e9649
commit 36df7b36ec
4 changed files with 21 additions and 0 deletions

1
go.mod
View File

@ -17,6 +17,7 @@ require (
github.com/stretchr/testify v1.6.1 // indirect
github.com/tdewolff/minify/v2 v2.12.0
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
github.com/yuin/goldmark v1.1.32
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
golang.org/x/net v0.0.0-20210916014120-12bc252f5db8
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c

1
go.sum
View File

@ -323,6 +323,7 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32 h1:5tjfNdR2ki3yYQ842+eX2sQHeiwpKJ0RnHO4IYOc4V8=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=

View File

@ -15,6 +15,8 @@ import (
"miniflux.app/config"
"github.com/PuerkitoBio/goquery"
"github.com/yuin/goldmark"
goldmarkhtml "github.com/yuin/goldmark/renderer/html"
)
var (
@ -318,3 +320,18 @@ func decodeBase64Content(entryContent string) string {
return html.EscapeString(string(ret))
}
}
func parseMarkdown(entryContent string) string {
var sb strings.Builder
md := goldmark.New(
goldmark.WithRendererOptions(
goldmarkhtml.WithUnsafe(),
),
)
if err := md.Convert([]byte(entryContent), &sb); err != nil {
return entryContent
}
return sb.String()
}

View File

@ -108,6 +108,8 @@ func applyRule(entryURL, entryContent string, rule rule) string {
} else {
entryContent = applyFuncOnTextContent(entryContent, "body", decodeBase64Content)
}
case "parse_markdown":
entryContent = parseMarkdown(entryContent)
}
return entryContent