diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-11-14 00:28:53 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-11-14 00:28:53 +0200 |
commit | a0815a6f3de6ed4063fcdcf6c7af3f946bbf52f8 (patch) | |
tree | ecd06cea61855cd55371cc6adbd4e4674ce01755 /vendor/maunium.net/go/mautrix/format/markdown.go | |
parent | 7651e84be949ecabac62d21b6e843b6776a2371e (diff) |
Fix named colors and remove HTML from plaintext body when sending
Diffstat (limited to 'vendor/maunium.net/go/mautrix/format/markdown.go')
-rw-r--r-- | vendor/maunium.net/go/mautrix/format/markdown.go | 38 |
1 files changed, 38 insertions, 0 deletions
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), + } +} |