forked from aquasecurity/postee
-
Notifications
You must be signed in to change notification settings - Fork 0
/
markdownprovider.go
44 lines (35 loc) · 944 Bytes
/
markdownprovider.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package formatting
import (
"bytes"
"fmt"
"strings"
)
type MarkdownProvider struct {}
func (mrkdwn *MarkdownProvider) TitleH2(title string) string {
return fmt.Sprintf("## %s\n", title)
}
func (mrkdwn *MarkdownProvider) TitleH3(title string) string {
return fmt.Sprintf("### %s\n", title)
}
func (mrkdwn *MarkdownProvider) ColourText(text, color string) string {
return fmt.Sprintf("**%s**", text)
}
func (mrkdwn *MarkdownProvider) Table(rows [][]string) string {
if len(rows) == 0 {
return ""
}
var builder bytes.Buffer
for i, row := range rows {
if i == 1 {
fmt.Fprintf( &builder, "|%s\n", strings.Repeat(" --- |", len(row)))
}
fmt.Fprintf( &builder, "| %s |\n", strings.Join(row, " | "))
}
return builder.String()
}
func (mrkdwn *MarkdownProvider) P(p string) string {
return fmt.Sprintf("%s\n", p)
}
func (mrkdwn *MarkdownProvider) A(url, title string) string {
return fmt.Sprintf("<%s|%s>", url, title)
}