9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
+
+
+
|
pollen/decode
pollen/private/version
racket/string
racket/function
racket/list
txexpr
openssl/sha1
"cache.rkt"
"dust.rkt")
(provide html$-page-head
html$-page-body-open
html$-series-list
html$-article-open
html$-article-close
html$-article-listing-short
html$-page-footer
html$-page-body-close
html$-note-contents
html$-note-listing-full
html$-note-in-article
html$-notes-section
html$-paginate-navlinks)
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
|
(define (html$-article-listing-short pagenode pubdate title)
◊string-append{
<li><a href="/◊(symbol->string pagenode)">
<div class="article-list-date caps">◊(ymd->english pubdate)</div>
<div class="article-list-title">◊|title|</div>
</a></li>})
(define (html$-page-footer)
◊string-append{
<footer id="main">
<p class="title">The Local Yarn</p>
<nav><a href="/">Home</a> •
<a href="/blog-pg1.html">Blog</a> •
<a href="/keyword-index.html">Keyword Index</a> •
<a href="/code"><i><code>◊"◊"(Source Code)</code></i></a>
</nav>
◊(html$-series-list)
</footer>})
(define (html$-page-body-close)
◊string-append{<footer>By Joel Dueck</footer>
</main></body>})
◊string-append{
</main>
◊(html$-page-footer)
</body>})
;; Notes
;;
(define (html$-note-contents disposition-mark disposition-verb elems)
(define disposition
(cond [(non-empty-string? disposition-mark)
`(abbr [[class "disposition-mark-in-note"]
|
194
195
196
197
198
199
200
|
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
+
+
+
+
+
+
+
+
+
+
|
(define next-link
(if (eq? pagecount pagenum)
"<li class=\"nav-text inactive-link\">Older→</li>"
(page-func (+ pagenum 1) "Older →" "nav-text")))
(string-join `(,prev-link ,@page-group ,next-link)))
(define (series->txpr s)
`(li (a [[href ,(symbol->string (cache:series-page s))]]
(i ,(cache:series-title s)))))
(define (html$-series-list)
(define series-list-items
(for/list ([group (in-list (series-grouped-list))])
`(div (h2 ,(cache:series-noun-plural (first group))) (ul ,@(map series->txpr group)))))
(->html `(section [[class "column-list"] [style "margin-top: 1.3rem"]] ,@series-list-items)))
|