commit 0b83662694975bafe4b57b72542ed58e6e4cc93a
Author: Wim <wim@42.be>
Date: Sun Oct 27 01:10:59 2019 +0000
diff --git a/bridge/slack/handlers.go b/bridge/slack/handlers.go
index 44a57db..829cfb6 100644
--- a/bridge/slack/handlers.go
+++ b/bridge/slack/handlers.go
@@ -306 +307 @@ func (b *Bslack) handleSlack() {
message.Text = b.replaceVariable(message.Text)
message.Text = b.replaceChannel(message.Text)
message.Text = b.replaceURL(message.Text)
+ message.Text = b.replaceb0rkedMarkDown(message.Text)
message.Text = html.UnescapeString(message.Text)
// Add the avatar
diff --git a/bridge/slack/helpers.go b/bridge/slack/helpers.go
index 7c012a4..b95ae87 100644
--- a/bridge/slack/helpers.go
+++ b/bridge/slack/helpers.go
@@ -1886 +18836 @@ func (b *Bslack) replaceURL(text string) string {
return text
}
+func (b *Bslack) replaceb0rkedMarkDown(text string) string {
+ // taken from https://github.com/mattermost/mattermost-server/blob/master/app/slackimport.go
+ //
+ regexReplaceAllString := []struct {
+ regex *regexp.Regexp
+ rpl string
+ }{
+ // bold
+ {
+ regexp.MustCompile(`(^|[\s.;,])\*(\S[^*\n]+)\*`),
+ "$1**$2**",
+ },
+ // strikethrough
+ {
+ regexp.MustCompile(`(^|[\s.;,])\~(\S[^~\n]+)\~`),
+ "$1~~$2~~",
+ },
+ // single paragraph blockquote
+ // Slack converts > character to >
+ {
+ regexp.MustCompile(`(?sm)^>`),
+ ">",
+ },
+ }
+ for _, rule := range regexReplaceAllString {
+ text = rule.regex.ReplaceAllString(text, rule.rpl)
+ }
+ return text
+}
+
func (b *Bslack) replaceCodeFence(text string) string {
return codeFenceRE.ReplaceAllString(text, "```")
}