-
Notifications
You must be signed in to change notification settings - Fork 0
/
task_tools.go
61 lines (50 loc) · 1.21 KB
/
task_tools.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package smab
import (
"fmt"
"math"
"strings"
)
// TaskMarkdownState 简单化的一种markdown每一行数据渲染加载器
type TaskMarkdownState struct {
Stage []string
}
func (u *TaskMarkdownState) Add(n string) {
u.Stage = append(u.Stage, n)
}
func (u *TaskMarkdownState) Adds(layout string, inputs ...any) {
u.Stage = append(u.Stage, fmt.Sprintf(layout, inputs...))
}
func (u *TaskMarkdownState) AddImg(href string, title string) {
if len(href) < 1 {
return
}
u.Add(fmt.Sprintf(`![%s](%s)`, title, href))
}
func (u *TaskMarkdownState) AddCodeStr(code string, languages ...string) {
if len(code) < 1 {
return
}
var defaultLanguage = "shell"
if len(languages) >= 1 {
defaultLanguage = languages[0]
}
u.Add(fmt.Sprintf("```%s \n %s ```", defaultLanguage, code))
}
func (u *TaskMarkdownState) AddTitle(text string, level uint8) {
if len(text) < 1 {
return
}
m := math.Min(6, float64(level))
prefix := make([]string, 0, 6)
for i := 0; i < int(m); i++ {
prefix = append(prefix, "#")
}
u.Add(fmt.Sprintf("%s %s", strings.Join(prefix, ""), text))
}
func (u *TaskMarkdownState) GetStr(sep ...string) string {
var s = ` \n `
if len(sep) >= 1 {
s = sep[0]
}
return strings.Join(u.Stage, s)
}