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
|
package main
import (
"embed"
"strings"
"testing"
"src.elv.sh/pkg/elvdoc"
"src.elv.sh/pkg/eval"
"src.elv.sh/pkg/eval/evaltest"
)
//go:embed *.elvts
var transcripts embed.FS
func TestTranscripts(t *testing.T) {
evaltest.TestTranscriptsInFS(t, transcripts,
"elvdoc-to-md-in-global", func(ev *eval.Evaler) {
ev.ExtendGlobal(eval.BuildNs().AddGoFn("elvdoc-to-md", elvdocToMd))
},
)
}
func elvdocToMd(fm *eval.Frame, src string) error {
docs, err := elvdoc.Extract(strings.NewReader(src), "")
if err != nil {
return err
}
var sb strings.Builder
writeElvdocSections(&sb, docs)
_, err = fm.ByteOutput().WriteString(sb.String())
return err
}
|