34 lines
615 B
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)
|
|
}
|