added markdown support

This commit is contained in:
u80864958
2025-05-02 13:18:47 +02:00
parent 158e963c7b
commit 214bf9acf5
3 changed files with 64 additions and 16 deletions

View File

@ -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()