Overview
| Comment: | Don't recompute article ids every time |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
49e661b8c201642c070dc3bce73f275e |
| User & Date: | joel on 2020-02-26 01:15:05 |
| Other Links: | manifest | tags |
Context
|
2020-02-29
| ||
| 15:51 | Make relativize script play nice with tidy-introduced line breaks check-in: fcaf9eac user: joel tags: trunk | |
|
2020-02-26
| ||
| 01:15 | Don't recompute article ids every time check-in: 49e661b8 user: joel tags: trunk | |
|
2020-02-24
| ||
| 07:35 | Variadic make-tag-predicate check-in: 3ed11073 user: joel tags: trunk | |
Changes
Modified dust.rkt from [e986dd0a] to [bed6133b].
| ︙ | ︙ | |||
86 87 88 89 90 91 92 93 94 95 96 |
[else (or (select-from-metas 'noun-singular series-pnode) "")]))
(define (series-metas-title)
(define series-pnode (metas-series-pagenode))
(case series-pnode
['|| ""] ; no series specified
[else (or (select-from-metas 'title series-pnode) "")]))
;; Generates a short ID for the current article
(define (here-id [suffix #f])
(define here-hash
| > > > > > | > > > | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
[else (or (select-from-metas 'noun-singular series-pnode) "")]))
(define (series-metas-title)
(define series-pnode (metas-series-pagenode))
(case series-pnode
['|| ""] ; no series specified
[else (or (select-from-metas 'title series-pnode) "")]))
(define article-ids (make-hash))
;; Generates a short ID for the current article
(define (here-id [suffix #f])
(define maybe-hash (hash-ref article-ids (here-output-path) #f))
(define here-hash
(cond
[(not maybe-hash)
(let ([h (substring (bytes->hex-string (sha1-bytes (path->bytes (here-output-path)))) 0 8)])
(hash-set! article-ids (here-output-path) h)
h)]
[else maybe-hash]))
(cond [(list? suffix) (apply string-append here-hash suffix)]
[(string? suffix) (string-append here-hash suffix)]
[else here-hash]))
;; “Touches” the last-modified date on the current article’s series, if there is one
(define (invalidate-series)
|
| ︙ | ︙ | |||
233 234 235 236 237 238 239 |
;; Convert, e.g., "* thoroughly recanted" into (values "*" "thoroughly recanted")
(define (disposition-values str)
(cond [(string=? "" str) (values "" "")]
[else (let ([splut (string-split str)])
(values (car splut) (string-join (cdr splut))))]))
| | < | 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
;; Convert, e.g., "* thoroughly recanted" into (values "*" "thoroughly recanted")
(define (disposition-values str)
(cond [(string=? "" str) (values "" "")]
[else (let ([splut (string-split str)])
(values (car splut) (string-join (cdr splut))))]))
;; The format of a note’s ID is “HTML-driven” (used as an anchor link)
(define (build-note-id txpr)
(string-append (maybe-attr 'date (get-attrs txpr))
"_"
(uri-encode (maybe-attr 'author (get-attrs txpr) default-authorname))))
;; Extract the last disposition (if any), and the ID of the disposing note, out of a list of notes
(define (notes->last-disposition-values txprs)
|
| ︙ | ︙ |