20
formatter.go
20
formatter.go
@@ -50,7 +50,7 @@ func pillConverter(displayname, mxid, eventID string, ctx format.Context) string
|
|||||||
if len(mxid) == 0 {
|
if len(mxid) == 0 {
|
||||||
return displayname
|
return displayname
|
||||||
}
|
}
|
||||||
user := ctx[formatterContextUserKey].(*User)
|
user := ctx.ReturnData[formatterContextUserKey].(*User)
|
||||||
if mxid[0] == '#' {
|
if mxid[0] == '#' {
|
||||||
alias, err := user.bridge.Bot.ResolveAlias(id.RoomAlias(mxid))
|
alias, err := user.bridge.Bot.ResolveAlias(id.RoomAlias(mxid))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -129,13 +129,17 @@ var matrixHTMLParser = &format.HTMLParser{
|
|||||||
TabsToSpaces: 4,
|
TabsToSpaces: 4,
|
||||||
Newline: "\n",
|
Newline: "\n",
|
||||||
HorizontalLine: "\n---\n",
|
HorizontalLine: "\n---\n",
|
||||||
ItalicConverter: func(s string, context format.Context) string {
|
ItalicConverter: func(s string, ctx format.Context) string {
|
||||||
return fmt.Sprintf("*%s*", s)
|
return fmt.Sprintf("*%s*", s)
|
||||||
},
|
},
|
||||||
UnderlineConverter: func(s string, context format.Context) string {
|
UnderlineConverter: func(s string, ctx format.Context) string {
|
||||||
return fmt.Sprintf("__%s__", s)
|
return fmt.Sprintf("__%s__", s)
|
||||||
},
|
},
|
||||||
TextConverter: func(s string, context format.Context) string {
|
TextConverter: func(s string, ctx format.Context) string {
|
||||||
|
if ctx.TagStack.Has("pre") || ctx.TagStack.Has("code") {
|
||||||
|
// If we're in a code block, don't escape markdown
|
||||||
|
return s
|
||||||
|
}
|
||||||
return escapeDiscordMarkdown(s)
|
return escapeDiscordMarkdown(s)
|
||||||
},
|
},
|
||||||
SpoilerConverter: func(text, reason string, ctx format.Context) string {
|
SpoilerConverter: func(text, reason string, ctx format.Context) string {
|
||||||
@@ -152,10 +156,10 @@ func init() {
|
|||||||
|
|
||||||
func (portal *Portal) parseMatrixHTML(user *User, content *event.MessageEventContent) string {
|
func (portal *Portal) parseMatrixHTML(user *User, content *event.MessageEventContent) string {
|
||||||
if content.Format == event.FormatHTML && len(content.FormattedBody) > 0 {
|
if content.Format == event.FormatHTML && len(content.FormattedBody) > 0 {
|
||||||
return matrixHTMLParser.Parse(content.FormattedBody, format.Context{
|
ctx := format.NewContext()
|
||||||
formatterContextUserKey: user,
|
ctx.ReturnData[formatterContextUserKey] = user
|
||||||
formatterContextPortalKey: portal,
|
ctx.ReturnData[formatterContextPortalKey] = portal
|
||||||
})
|
return matrixHTMLParser.Parse(content.FormattedBody, ctx)
|
||||||
} else {
|
} else {
|
||||||
return escapeDiscordMarkdown(content.Body)
|
return escapeDiscordMarkdown(content.Body)
|
||||||
}
|
}
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -12,7 +12,7 @@ require (
|
|||||||
github.com/stretchr/testify v1.8.1
|
github.com/stretchr/testify v1.8.1
|
||||||
github.com/yuin/goldmark v1.5.3
|
github.com/yuin/goldmark v1.5.3
|
||||||
maunium.net/go/maulogger/v2 v2.3.2
|
maunium.net/go/maulogger/v2 v2.3.2
|
||||||
maunium.net/go/mautrix v0.13.0
|
maunium.net/go/mautrix v0.13.1-0.20230127204719-4c4238b61f20
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
4
go.sum
4
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/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 h1:1XmIYmMd3PoQfp9J+PaHhpt80zpfmMqaShzUTC7FwY0=
|
||||||
maunium.net/go/maulogger/v2 v2.3.2/go.mod h1:TYWy7wKwz/tIXTpsx8G3mZseIRiC5DoMxSZazOHy68A=
|
maunium.net/go/maulogger/v2 v2.3.2/go.mod h1:TYWy7wKwz/tIXTpsx8G3mZseIRiC5DoMxSZazOHy68A=
|
||||||
maunium.net/go/mautrix v0.13.0 h1:CRdpMFc1kDSNnCZMcqahR9/pkDy/vgRbd+fHnSCl6Yg=
|
maunium.net/go/mautrix v0.13.1-0.20230127204719-4c4238b61f20 h1:D2Z0tjf0za/rg9WxRJdV9M5BENK6d3LJaRtAfLpGfkk=
|
||||||
maunium.net/go/mautrix v0.13.0/go.mod h1:gYMQPsZ9lQpyKlVp+DGwOuc9LIcE/c8GZW2CvKHISgM=
|
maunium.net/go/mautrix v0.13.1-0.20230127204719-4c4238b61f20/go.mod h1:gYMQPsZ9lQpyKlVp+DGwOuc9LIcE/c8GZW2CvKHISgM=
|
||||||
|
|||||||
Reference in New Issue
Block a user