add typst export

This commit is contained in:
u80864958
2025-05-07 11:00:32 +02:00
parent c0fe9a4a46
commit 454554f8e0
6 changed files with 151 additions and 49 deletions

View File

@ -8,32 +8,41 @@ import (
"strings"
)
func (c Cater) dir(dir string) error {
func (c Cater) dir(dir string) (e entry, err error) {
files, err := os.ReadDir(dir)
if err != nil {
return err
return
}
e.fqname = dir
e.name = name(dir)
e.children = []entry{}
for _, file := range files {
i, err := file.Info()
if err != nil {
continue
return e, err
}
path := path.Join(dir, i.Name())
var ent entry
if !file.IsDir() {
c.file(path)
ent, err = c.file(path)
} else {
c.dir(path)
ent, err = c.dir(path)
}
if err != nil {
return e, err
}
e.children = append(e.children, ent)
}
return nil
return
}
func (c Cater) file(filePath string) error {
func (c Cater) file(filePath string) (e entry, err error) {
file, err := os.Open(filePath)
if err != nil {
return err
return
}
defer file.Close()
@ -44,7 +53,7 @@ func (c Cater) file(filePath string) error {
for {
line, err := reader.ReadString('\n')
if err != nil && err != io.EOF {
return err
return e, err
}
sb.WriteString(line)
if err == io.EOF {
@ -52,7 +61,15 @@ func (c Cater) file(filePath string) error {
}
}
c[filePath] = sb.String()
e.fqname = filePath
e.name = name(filePath)
e.content = sb.String()
e.children = []entry{}
return nil
return
}
func name(name string) string {
ps := strings.Split(name, "/")
return ps[len(ps)-1]
}