Add single-day pages linked from timeline date headings
Each timeline date heading now links to /day/<YYYY-MM-DD>/, a page holding just that day's photos with a back link to the timeline. renderDayPages writes one per groupByDay run; the ISO label doubles as the URL slug.
This commit is contained in:
+35
-1
@@ -106,7 +106,7 @@ func (g *Generator) Build() error {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, d := range []string{"images", "thumbs", "medium", "photo", "grid", "static"} {
|
||||
for _, d := range []string{"images", "thumbs", "medium", "photo", "grid", "day", "static"} {
|
||||
if err := os.MkdirAll(filepath.Join(g.outputDir, d), 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -124,6 +124,9 @@ func (g *Generator) Build() error {
|
||||
if err := g.renderGridPages(photos); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := g.renderDayPages(photos); err != nil {
|
||||
return err
|
||||
}
|
||||
for i := range photos {
|
||||
var newer, older *Photo
|
||||
if i > 0 {
|
||||
@@ -508,6 +511,37 @@ func (g *Generator) renderTimelinePages(photos []Photo) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// renderDayPages writes one page per calendar day under public/day/<ISO>/,
|
||||
// holding just that day's photos. Timeline date headings link here.
|
||||
func (g *Generator) renderDayPages(photos []Photo) error {
|
||||
for _, grp := range groupByDay(photos) {
|
||||
dir := filepath.Join(g.outputDir, "day", grp.day)
|
||||
if err := os.MkdirAll(dir, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
err := g.render("day.html", filepath.Join(dir, "index.html"), map[string]any{
|
||||
"Date": grp.Label,
|
||||
"Count": grp.Count,
|
||||
"Photos": grp.Photos,
|
||||
"Total": len(photos),
|
||||
"BaseURL": g.baseURL,
|
||||
"Year": time.Now().Year(),
|
||||
"Author": g.author,
|
||||
"Handle": g.handle,
|
||||
"Bio": g.bio,
|
||||
"BioAlt": g.bioAlt,
|
||||
"Initial": g.initial(),
|
||||
"FontsURL": g.fontsURL,
|
||||
"SerifFamily": g.serifFamily,
|
||||
"MlFamily": g.mlFamily,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (g *Generator) render(tmpl, dst string, data any) error {
|
||||
f, err := os.Create(dst)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user