Fix atom feed generation

This commit is contained in:
adnano 2021-04-20 14:49:45 -04:00
parent c9bf66a967
commit 87c65818be

19
dir.go
View file

@ -18,7 +18,7 @@ type Dir struct {
Pages []*Page // Pages in this directory.
Dirs []*Dir // Subdirectories.
index *Page // The index page.
feeds map[string][]byte // Feeds.
feed []byte // Atom feed.
inputExt string // input file extension
outputExt string // output file extension
@ -34,7 +34,6 @@ func NewDir(path string) *Dir {
}
return &Dir{
Path: path,
feeds: map[string][]byte{},
}
}
@ -127,7 +126,7 @@ func (d *Dir) manipulate(cfg *Config) error {
if err := tmpl.Execute(&b, feed); err != nil {
return err
}
d.feeds[pathpkg.Join(d.Path, "atom.xml")] = b.Bytes()
d.feed = b.Bytes()
}
// Manipulate subdirectories
@ -182,6 +181,20 @@ func (d *Dir) write(dstDir string, format Format) error {
}
}
// Write the atom feed
if d.feed != nil {
const path = "atom.xml"
dstPath := pathpkg.Join(dstDir, path)
os.MkdirAll(dstDir, 0755)
f, err := os.Create(dstPath)
if err != nil {
return err
}
if _, err := f.Write(d.feed); err != nil {
return err
}
}
// Write subdirectories
for _, dir := range d.Dirs {
dir.write(dstDir, format)