diff --git a/shell/matrix/client.go b/shell/matrix/client.go index 6c82a9c..88f1329 100644 --- a/shell/matrix/client.go +++ b/shell/matrix/client.go @@ -14,6 +14,7 @@ import ( "strings" "github.com/yuin/goldmark" + "github.com/yuin/goldmark/extension" "maunium.net/go/mautrix" "maunium.net/go/mautrix/crypto" "maunium.net/go/mautrix/crypto/cryptohelper" @@ -285,10 +286,20 @@ func (c *Client) SendMarkdown(ctx context.Context, roomID, markdown string) erro return err } -// mdToHTML converts a Markdown string to HTML using goldmark. +// mdToHTML converts a Markdown string to HTML using goldmark with full extensions. +var mdParser = goldmark.New( + goldmark.WithExtensions( + extension.GFM, + extension.DefinitionList, + extension.Footnote, + extension.Typographer, + extension.CJK, + ), +) + func mdToHTML(md string) string { var buf bytes.Buffer - if err := goldmark.Convert([]byte(md), &buf); err != nil { + if err := mdParser.Convert([]byte(md), &buf); err != nil { return md // fallback to raw markdown on error } return buf.String()