From a0815a6f3de6ed4063fcdcf6c7af3f946bbf52f8 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 14 Nov 2018 00:28:53 +0200 Subject: Fix named colors and remove HTML from plaintext body when sending --- vendor/maunium.net/go/mautrix/format/markdown.go | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 vendor/maunium.net/go/mautrix/format/markdown.go (limited to 'vendor/maunium.net/go/mautrix/format/markdown.go') diff --git a/vendor/maunium.net/go/mautrix/format/markdown.go b/vendor/maunium.net/go/mautrix/format/markdown.go new file mode 100644 index 0000000..65abf56 --- /dev/null +++ b/vendor/maunium.net/go/mautrix/format/markdown.go @@ -0,0 +1,38 @@ +// Copyright 2018 Tulir Asokan +package format + +import ( + "gopkg.in/russross/blackfriday.v2" + "maunium.net/go/mautrix" + "strings" +) + +func RenderMarkdown(text string) mautrix.Content { + parser := blackfriday.New( + blackfriday.WithExtensions(blackfriday.NoIntraEmphasis | + blackfriday.Tables | + blackfriday.FencedCode | + blackfriday.Strikethrough | + blackfriday.SpaceHeadings | + blackfriday.DefinitionLists)) + ast := parser.Parse([]byte(text)) + + renderer := blackfriday.NewHTMLRenderer(blackfriday.HTMLRendererParameters{ + Flags: blackfriday.UseXHTML, + }) + + var buf strings.Builder + renderer.RenderHeader(&buf, ast) + ast.Walk(func(node *blackfriday.Node, entering bool) blackfriday.WalkStatus { + return renderer.RenderNode(&buf, node, entering) + }) + renderer.RenderFooter(&buf, ast) + htmlBody := buf.String() + + return mautrix.Content{ + FormattedBody: htmlBody, + Format: mautrix.FormatHTML, + MsgType: mautrix.MsgText, + Body: HTMLToText(htmlBody), + } +} -- cgit v1.2.3