4
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2025-06-26 12:09:22 +00:00

Add support for markdown to HTML conversion (matrix). Closes #663 (#670)

This uses our own gomatrix lib with the SendHTML function which
adds HTML to formatted_body in matrix.
golang-commonmark is used to convert markdown into valid HTML.
This commit is contained in:
Wim
2019-01-06 22:25:19 +01:00
committed by GitHub
parent 048158ad6d
commit 04567c765e
85 changed files with 40959 additions and 6 deletions

View File

@ -12,6 +12,7 @@ import (
"github.com/42wim/matterbridge/bridge/config"
"github.com/sirupsen/logrus"
"gitlab.com/golang-commonmark/markdown"
)
func DownloadFile(url string) (*[]byte, error) {
@ -151,3 +152,8 @@ func ClipMessage(text string, length int) string {
}
return text
}
func ParseMarkdown(input string) string {
md := markdown.New(markdown.XHTMLOutput(true), markdown.Breaks(true))
return (md.RenderToString([]byte(input)))
}

View File

@ -3,6 +3,7 @@ package bmatrix
import (
"bytes"
"fmt"
"html"
"mime"
"regexp"
"strings"
@ -112,8 +113,8 @@ func (b *Bmatrix) Send(msg config.Message) (string, error) {
// Edit message if we have an ID
// matrix has no editing support
// Post normal message
resp, err := b.mc.SendText(channel, msg.Username+msg.Text)
// Post normal message with HTML support (eg riot.im)
resp, err := b.mc.SendHTML(channel, msg.Text, html.EscapeString(msg.Username)+helper.ParseMarkdown(msg.Text))
if err != nil {
return "", err
}