cs-midi-docs/internal/render/book.go

34 lines
615 B
Go

package render
import (
"bytes"
"fmt"
"os"
"git.else-if.org/jess/cs-midi-docs/internal/content"
)
func BookMarkdown(tree *content.Node) ([]byte, error) {
var buf bytes.Buffer
pages := tree.Flatten()
for i, page := range pages {
src, err := os.ReadFile(page.FilePath)
if err != nil {
return nil, fmt.Errorf("read %s: %w", page.FilePath, err)
}
if i > 0 {
buf.WriteString("\n\n---\n\n")
}
buf.Write(src)
}
return buf.Bytes(), nil
}
func BookHTML(tree *content.Node) ([]byte, error) {
mdBytes, err := BookMarkdown(tree)
if err != nil {
return nil, err
}
return Markdown(mdBytes)
}