Overview
| Comment: | Provide index entry crystallization |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
94c49607f6904a2d2e6235297b28bb1a |
| User & Date: | joel on 2019-07-10 01:37:26 |
| Other Links: | manifest | tags |
Context
|
2019-07-12
| ||
| 04:31 | Fix SQL query for articles+notes so series filtering will work check-in: b49b65af user: joel tags: trunk | |
|
2019-07-10
| ||
| 01:37 | Provide index entry crystallization check-in: 94c49607 user: joel tags: trunk | |
| 01:29 | Make parallel processing in Pollen setup explicit check-in: 7d4de0ec user: joel tags: trunk | |
Changes
Modified code-docs/crystalize.scrbl from [85f11db1] to [ff8f9919].
| ︙ | ︙ | |||
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
individually to the SQLite cache. If any of the notes use the @code{#:disposition} attribute,
information about the disposition is parsed out and used in the rendering of the article.
@defproc[(crystalize-series!) void?]
Saves metas for the current series page in the SQLite cache. Meant to be called from the HTML
template for “Series” pages (Pollen documents located in @racket[series-folder]).
@deftogether[(@defproc[(list/articles [type (or/c 'listing_full_html
'listing_short_html
'listing_excerpt_html)]
[#:series series (or/c string? boolean?) #t]
[#:limit limit stringish? -1]
[order string? "DESC"]) (listof string?)]
| > > > > > > > | 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
individually to the SQLite cache. If any of the notes use the @code{#:disposition} attribute,
information about the disposition is parsed out and used in the rendering of the article.
@defproc[(crystalize-series!) void?]
Saves metas for the current series page in the SQLite cache. Meant to be called from the HTML
template for “Series” pages (Pollen documents located in @racket[series-folder]).
@defproc[(crystalize-index-entries! [pagenode pagenode?] [doc txexpr?]) void?]
Saves any @racket[index] enries entries in @racket[_doc] to the SQLite cache.
@margin-note{This function was originally private; I provided it out only so it could be called
manually from @tt{index.html.pp}.}
@deftogether[(@defproc[(list/articles [type (or/c 'listing_full_html
'listing_short_html
'listing_excerpt_html)]
[#:series series (or/c string? boolean?) #t]
[#:limit limit stringish? -1]
[order string? "DESC"]) (listof string?)]
|
| ︙ | ︙ |
Modified crystalize.rkt from [feaffe0a] to [db2e6817].
| ︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
"dust.rkt")
;; ~~~ Provides ~~~
(provide spell-of-summoning!
crystalize-article!
crystalize-series!
article-plain-title
list/articles
list/articles+notes
listing<>-short/articles
listing<>-full/articles
listing<>-full/articles+notes
unfence
| > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
"dust.rkt")
;; ~~~ Provides ~~~
(provide spell-of-summoning!
crystalize-article!
crystalize-series!
crystalize-index-entries!
article-plain-title
list/articles
list/articles+notes
listing<>-short/articles
listing<>-full/articles
listing<>-full/articles+notes
unfence
|
| ︙ | ︙ | |||
363 364 365 366 367 368 369 |
;; "entry!sub" → '("entry" "sub")
;; "entry!sub!why?!? '("entry" "sub")
(define (split-entry str)
(define splits (string-split str "!"))
(list (car splits)
(cadr (append splits (list "")))))
| | | 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 |
;; "entry!sub" → '("entry" "sub")
;; "entry!sub!why?!? '("entry" "sub")
(define (split-entry str)
(define splits (string-split str "!"))
(list (car splits)
(cadr (append splits (list "")))))
;; Save any index entries in doc to the SQLite cache.
;; Sub-entries are specified by "!" in the index key
(define (crystalize-index-entries! pagenode doc)
(define (index-entry? tx)
(and (txexpr? tx)
(string=? "index-link" (attr-ref tx 'class "")) ; see definition of html-index
(attr-ref tx 'data-index-entry #f)))
(define-values (_ entries) (splitf-txexpr doc index-entry?))
|
| ︙ | ︙ |