aboutsummaryrefslogtreecommitdiff
path: root/vendor/maunium.net/go/mautrix/format/markdown.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-11-14 00:28:53 +0200
committerTulir Asokan <tulir@maunium.net>2018-11-14 00:28:53 +0200
commita0815a6f3de6ed4063fcdcf6c7af3f946bbf52f8 (patch)
treeecd06cea61855cd55371cc6adbd4e4674ce01755 /vendor/maunium.net/go/mautrix/format/markdown.go
parent7651e84be949ecabac62d21b6e843b6776a2371e (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.go38
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),
+ }
+}