cyanocorax/render/gemini/gemini.go

44 lines
813 B
Go

package gemini
import (
"path"
"git.rdelaage.ovh/rdelaage/cyanocorax/model/site"
"git.rdelaage.ovh/rdelaage/cyanocorax/render/archive"
)
func Render(s site.Site) error {
archive, err := archive.Create("export_gemini.zip")
if err != nil {
return err
}
defer archive.Close()
err = archive.AddFile("index.gmi", s.Name + "\n\n" + s.GetAbstract())
if err != nil {
return err
}
err = archive.AddFile("favicon.txt", s.Icon)
if err != nil {
return err
}
for _, serie := range s.Series {
err = archive.AddFile(path.Join(serie.Prefix, "index.gmi"), serie.GetAbstract())
if err != nil {
return err
}
for _, page := range s.Pages {
err = archive.AddFile(path.Join(serie.Prefix, ), page.Title + "\n\n" + page.GetContent())
if err != nil {
return err
}
}
}
return nil
}