1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
-
+
+
|
#lang pollen/mode racket/base
; SPDX-License-Identifier: BlueOak-1.0.0
; This file is licensed under the Blue Oak Model License 1.0.0.
;; Builds the paginated “blog” HTML files (blog-pg1.html ...) from the SQLite cache
;; The files will be written out every time this module is evaluated! (see end)
(require "crystalize.rkt"
(require "cache.rkt"
"snippets-html.rkt"
"dust.rkt"
racket/file
sugar/list)
(provide main)
;; How many items per blog page
(define per-page 5)
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
+
|
<nav id="bottom-nav"><ul>◊|page-nav|</ul></nav>
◊html$-page-body-close[]
</html>})
;; Grabs all the articles+notes from the cache and writes out all the blog page files
(define (build-blog)
(listing-context 'blog) ; honor conceal directives for the blog
(define arts-n-notes (slice-at (listing-htmls (articles+notes 'full #:series #f)) per-page))
(define pagecount (length arts-n-notes))
(for ([pagenum (in-range 1 (+ 1 pagecount))]
[page (in-list arts-n-notes)])
(define filename (format "blog-pg~a.html" pagenum))
(displayln (format "Writing: ~a" filename))
|