diff options
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/pages.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/pages/pages.go b/pages/pages.go index 5ca5cff..7eaf903 100644 --- a/pages/pages.go +++ b/pages/pages.go @@ -3,12 +3,12 @@ package pages import ( "bytes" "fmt" + "path" "sort" "text/template" "git.sr.ht/~a73x/home/html" "git.sr.ht/~a73x/home/markdown" - "git.sr.ht/~a73x/home/templates" ) type Navigation struct { @@ -28,11 +28,16 @@ type ParserPair struct { func renderTemplate(config GlobalState, content markdown.Content) (string, error) { tmpl := content.Meta["template"] chosenTemplate := fmt.Sprintf("%s.html", tmpl) - t, err := template.ParseFS(templates.FS, chosenTemplate, "layouts/*.html") + t, err := template.ParseGlob("templates/layouts/*.html") if err != nil { return "", fmt.Errorf("failed to parse layouts: %v", err) } + t, err = t.ParseFiles(path.Join("templates", chosenTemplate)) + if err != nil { + return "", fmt.Errorf("failed to parse template: %v", err) + } + contentParser, err := template.New("content").Parse(string(content.Body)) if err != nil { return "", fmt.Errorf("failed parsing content: %v", err) @@ -57,7 +62,7 @@ func renderTemplate(config GlobalState, content markdown.Content) (string, error data.Body = string(html.MDToHTML(newContent.Bytes(), hasToc)) b := &bytes.Buffer{} - if err := t.Execute(b, data); err != nil { + if err := t.ExecuteTemplate(b, chosenTemplate, data); err != nil { return "", err } @@ -69,8 +74,8 @@ type Page struct { Content string } -func Collect() ([]Page, error) { - contents, err := markdown.ParseContents() +func Collect(contentPath string) ([]Page, error) { + contents, err := markdown.ParseContents(contentPath) if err != nil { return nil, err } |
