@@ -1,31 +1,12 @@
#lang pollen
◊; SPDX-License-Identifier: BlueOak-1.0.0
◊; This file is licensed under the Blue Oak Model License 1.0.0.
-◊(require pollen/template db/base racket/list racket/match)
-
-◊(define (fetch-series)
- (define q "SELECT noun_plural, page, title FROM series ORDER BY noun_plural DESC")
- (query-rows cache-conn q))
-
-◊(define (series-item->txpr s)
- (match-define (list n pagenode title) s)
- `(li (a [[href ,pagenode]] (i ,title))))
-
-◊(define (series-grouped-list)
- ;; Produces '((("noun1" "p.html" "Title") ("noun1" "q.html" "Title")) (("noun2" ...) ...))
- (define init-group
- (group-by first (map vector->list (fetch-series)) string-ci=?))
-
- (define series-list-items
- (for/list ([group (in-list init-group)])
- `(div (h2 ,(first (first group))) (ul ,@(map series-item->txpr group)))))
- `(section [[class "series-list"] [style "margin-top: 1.3rem"]] ,@series-list-items))
-
-
+◊(require pollen/template racket/file)
+
◊html$-page-head["The Local Yarn" #f]
@@ -87,12 +68,13 @@
◊url[1]{/blog-pg1.html}
})
◊; stop for now: (crystalize-index-entries! '|index.html| front-page-body)
+◊(display-to-file (html$-page-footer) "scribbled/site-footer.html" #:exists 'replace)
◊(->html front-page-body #:splice? #t)
- ◊(->html (series-grouped-list))
+ ◊(html$-series-list)