Fix atom feed generation

This commit is contained in:
Adnan Maolood 2021-04-20 14:49:45 -04:00
parent 99befbf02b
commit 80b314ffb7

19
dir.go
View file

@ -18,7 +18,7 @@ type Dir struct {
Pages []*Page // Pages in this directory. Pages []*Page // Pages in this directory.
Dirs []*Dir // Subdirectories. Dirs []*Dir // Subdirectories.
index *Page // The index page. index *Page // The index page.
feeds map[string][]byte // Feeds. feed []byte // Atom feed.
inputExt string // input file extension inputExt string // input file extension
outputExt string // output file extension outputExt string // output file extension
@ -34,7 +34,6 @@ func NewDir(path string) *Dir {
} }
return &Dir{ return &Dir{
Path: path, 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 { if err := tmpl.Execute(&b, feed); err != nil {
return err return err
} }
d.feeds[pathpkg.Join(d.Path, "atom.xml")] = b.Bytes() d.feed = b.Bytes()
} }
// Manipulate subdirectories // 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 // Write subdirectories
for _, dir := range d.Dirs { for _, dir := range d.Dirs {
dir.write(dstDir, format) dir.write(dstDir, format)