added markdown support
This commit is contained in:
@ -3,6 +3,7 @@ package cat
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"slices"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -47,9 +48,42 @@ func (c Cater) Ignored(ignore ignorer) Cater {
|
||||
func (c Cater) ToString(delemiter string) string {
|
||||
var sb strings.Builder
|
||||
|
||||
for name, content := range c {
|
||||
names := make([]string, 0, len(c))
|
||||
for name := range c {
|
||||
names = append(names, name)
|
||||
}
|
||||
|
||||
slices.Sort(names)
|
||||
|
||||
for _, name := range names {
|
||||
sb.WriteString(fmt.Sprintf(delemiter, name))
|
||||
sb.WriteString(content)
|
||||
sb.WriteString(c[name])
|
||||
}
|
||||
|
||||
return sb.String()
|
||||
}
|
||||
|
||||
func (c Cater) ToMarkdown() string {
|
||||
var sb strings.Builder
|
||||
|
||||
names := make([]string, 0, len(c))
|
||||
for name := range c {
|
||||
names = append(names, name)
|
||||
}
|
||||
|
||||
slices.Sort(names)
|
||||
|
||||
for _, name := range names {
|
||||
// write header
|
||||
for range strings.Count(name, "/") {
|
||||
sb.WriteString("#")
|
||||
}
|
||||
sb.WriteString(fmt.Sprintf(" %s\n\n", name))
|
||||
|
||||
splited := strings.Split(name, ".")
|
||||
|
||||
// write content
|
||||
sb.WriteString(fmt.Sprintf("``` %s\n%s\n```\n\n", splited[len(splited)-1], c[name]))
|
||||
}
|
||||
|
||||
return sb.String()
|
||||
|
Reference in New Issue
Block a user