From c31604eecf108529b5c0cb493f2cdd332395bbfa Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 2 Nov 2024 11:56:21 +0200 Subject: [PATCH] hicli/send: add LaTeX sending support --- go.mod | 2 +- go.sum | 4 ++-- pkg/hicli/send.go | 11 +++++++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 9f83398..15582c4 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( golang.org/x/text v0.19.0 gopkg.in/yaml.v3 v3.0.1 maunium.net/go/mauflag v1.0.0 - maunium.net/go/mautrix v0.21.2-0.20241101162620-f606129e732f + maunium.net/go/mautrix v0.21.2-0.20241102103123-0f73c8319665 mvdan.cc/xurls/v2 v2.5.0 ) diff --git a/go.sum b/go.sum index efcbede..9a8ec2d 100644 --- a/go.sum +++ b/go.sum @@ -89,7 +89,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 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/mautrix v0.21.2-0.20241101162620-f606129e732f h1:4iO+tXpXS8BNZuJP17BpaPZAURknrufVgkVrFkTHv7Y= -maunium.net/go/mautrix v0.21.2-0.20241101162620-f606129e732f/go.mod h1:sjCZR1R/3NET/WjkcXPL6WpAHlWKku9HjRsdOkbM8Qw= +maunium.net/go/mautrix v0.21.2-0.20241102103123-0f73c8319665 h1:9fbF5DBAdCdTuBRQpnFCx4/EvnDaboCNITsnSM5jIoc= +maunium.net/go/mautrix v0.21.2-0.20241102103123-0f73c8319665/go.mod h1:sjCZR1R/3NET/WjkcXPL6WpAHlWKku9HjRsdOkbM8Qw= mvdan.cc/xurls/v2 v2.5.0 h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8= mvdan.cc/xurls/v2 v2.5.0/go.mod h1:yQgaGQ1rFtJUzkmKiHYSSfuQxqfYmd//X6PxvholpeE= diff --git a/pkg/hicli/send.go b/pkg/hicli/send.go index 7a5d142..28fc252 100644 --- a/pkg/hicli/send.go +++ b/pkg/hicli/send.go @@ -22,6 +22,7 @@ import ( "maunium.net/go/mautrix/crypto" "maunium.net/go/mautrix/event" "maunium.net/go/mautrix/format" + "maunium.net/go/mautrix/format/mdext" "maunium.net/go/mautrix/id" "go.mau.fi/gomuks/pkg/hicli/database" @@ -29,7 +30,8 @@ import ( ) var ( - rainbowWithHTML = goldmark.New(format.Extensions, format.HTMLOptions, goldmark.WithExtensions(rainbow.Extension)) + rainbowWithHTML = goldmark.New(format.Extensions, goldmark.WithExtensions(mdext.Math), format.HTMLOptions, goldmark.WithExtensions(rainbow.Extension)) + defaultWithHTML = goldmark.New(format.Extensions, goldmark.WithExtensions(mdext.Math), format.HTMLOptions) ) func (h *HiClient) SendMessage( @@ -55,12 +57,13 @@ func (h *HiClient) SendMessage( content.FormattedBody = rainbow.ApplyColor(content.FormattedBody) } else if strings.HasPrefix(text, "/plain ") { text = strings.TrimPrefix(text, "/plain ") - content = format.RenderMarkdown(text, false, false) + content = format.TextToContent(text) } else if strings.HasPrefix(text, "/html ") { text = strings.TrimPrefix(text, "/html ") - content = format.RenderMarkdown(text, false, true) + text = strings.Replace(text, "\n", "
", -1) + content = format.HTMLToContent(text) } else if text != "" { - content = format.RenderMarkdown(text, true, true) + content = format.RenderMarkdownCustom(text, defaultWithHTML) } content.MsgType = msgType if base != nil {