From 2cb83aeee91400761b493f419fa14096b456ad0c Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 27 Jan 2023 23:29:36 +0200 Subject: [PATCH] Disable lists in goldmark when parsing discord markdown --- formatter.go | 9 +++++++-- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/formatter.go b/formatter.go index c213131..2f2cfd6 100644 --- a/formatter.go +++ b/formatter.go @@ -22,21 +22,26 @@ import ( "strings" "github.com/yuin/goldmark" - "maunium.net/go/mautrix/id" + "github.com/yuin/goldmark/parser" "maunium.net/go/mautrix/event" "maunium.net/go/mautrix/format" "maunium.net/go/mautrix/format/mdext" + "maunium.net/go/mautrix/id" ) -var discordExtensions = goldmark.WithExtensions(mdext.EscapeHTML, mdext.SimpleSpoiler, mdext.DiscordUnderline) +var discordExtensions = goldmark.WithExtensions(mdext.SimpleSpoiler, mdext.DiscordUnderline) var escapeFixer = regexp.MustCompile(`\\(__[^_]|\*\*[^*])`) func (portal *Portal) renderDiscordMarkdown(text string) event.MessageEventContent { text = escapeFixer.ReplaceAllStringFunc(text, func(s string) string { return s[:2] + `\` + s[2:] }) + mdRenderer := goldmark.New( + goldmark.WithParser(mdext.ParserWithoutFeatures( + parser.NewListParser(), parser.NewListItemParser(), parser.NewHTMLBlockParser(), parser.NewRawHTMLParser(), + )), format.Extensions, format.HTMLOptions, discordExtensions, goldmark.WithExtensions(&DiscordTag{portal}), ) diff --git a/go.mod b/go.mod index e6080f8..e1bca7d 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/stretchr/testify v1.8.1 github.com/yuin/goldmark v1.5.3 maunium.net/go/maulogger/v2 v2.3.2 - maunium.net/go/mautrix v0.13.1-0.20230127204719-4c4238b61f20 + maunium.net/go/mautrix v0.13.1-0.20230127212324-870a2cfb9406 ) require ( diff --git a/go.sum b/go.sum index 7e9394c..b0ba0f5 100644 --- a/go.sum +++ b/go.sum @@ -68,5 +68,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M= maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA= maunium.net/go/maulogger/v2 v2.3.2 h1:1XmIYmMd3PoQfp9J+PaHhpt80zpfmMqaShzUTC7FwY0= maunium.net/go/maulogger/v2 v2.3.2/go.mod h1:TYWy7wKwz/tIXTpsx8G3mZseIRiC5DoMxSZazOHy68A= -maunium.net/go/mautrix v0.13.1-0.20230127204719-4c4238b61f20 h1:D2Z0tjf0za/rg9WxRJdV9M5BENK6d3LJaRtAfLpGfkk= -maunium.net/go/mautrix v0.13.1-0.20230127204719-4c4238b61f20/go.mod h1:gYMQPsZ9lQpyKlVp+DGwOuc9LIcE/c8GZW2CvKHISgM= +maunium.net/go/mautrix v0.13.1-0.20230127212324-870a2cfb9406 h1:b3RgrN/RYTW643k+DJfeaonTiOTK+Pxfg2sTEGzpFow= +maunium.net/go/mautrix v0.13.1-0.20230127212324-870a2cfb9406/go.mod h1:gYMQPsZ9lQpyKlVp+DGwOuc9LIcE/c8GZW2CvKHISgM=