32 lines
634 B
Go
32 lines
634 B
Go
|
|
package sitebuilder
|
||
|
|
|
||
|
|
import (
|
||
|
|
"bytes"
|
||
|
|
"context"
|
||
|
|
"html/template"
|
||
|
|
"io"
|
||
|
|
)
|
||
|
|
|
||
|
|
func (b *Builder) renderPages(bctx buildContext) error {
|
||
|
|
for _, page := range b.site.Pages {
|
||
|
|
var md bytes.Buffer
|
||
|
|
if err := b.mdRenderer.RenderTo(context.Background(), &md, page.Body); err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
data := pageSingleData{
|
||
|
|
commonData: commonData{Site: b.site},
|
||
|
|
Page: page,
|
||
|
|
HTML: template.HTML(md.String()),
|
||
|
|
}
|
||
|
|
|
||
|
|
path := "/" + page.Slug
|
||
|
|
if err := b.createAtPath(bctx, path, func(f io.Writer) error {
|
||
|
|
return b.renderTemplate(f, tmplNamePageSingle, data)
|
||
|
|
}); err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|