package main /* * This file contains all the code related to turning entries into HTML pages */ type page struct { pageName string content []string } func (p *page) appendContent(c string) { p.content = append(p.content, c) } type Renderer interface { render(pages map[string]page) (err error) } func (e entry) render(pages map[string]page) (err error) { md, err := processMarkdown(e.fullPath) if err != nil { return } p := page{pageName: e.name, content: []string{md}} pages[e.rawName] = p return } func (le logEntry) render(pages map[string]page) (err error) { md, err := processMarkdown(le.baseEntry.fullPath) if err != nil { return } logUrl := "log" if val, ok := pages[logUrl]; ok { val.appendContent(md) pages[logUrl] = val } else { p := page{pageName: "Log", content: []string{md}} pages[logUrl] = p } return } func createPageMap(entries []Renderer) (pages map[string]page) { pages = make(map[string]page) for _, e := range entries { err := e.render(pages) if err != nil { panic(err) } } return }