Overview
| Comment: | Start using the SQLite cache for series metas |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
829c503ed98259f62e5551c5bf3a7dd7 |
| User & Date: | joel on 2019-06-29 21:16:49 |
| Other Links: | manifest | tags |
Context
|
2019-07-04
| ||
| 18:19 | Add close-head? to page header function check-in: 5fc9abc0 user: joel tags: trunk | |
|
2019-06-29
| ||
| 21:16 | Start using the SQLite cache for series metas check-in: 829c503e user: joel tags: trunk | |
|
2019-06-23
| ||
| 18:42 | Improve disposition marks in notes check-in: f0e18f94 user: joel tags: trunk | |
Changes
Modified code-docs/crystalize.scrbl from [6c8c6c57] to [85f11db1].
| ︙ | ︙ | |||
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
my convention of using a prefix of @tt{html$-} for functions that return strings of HTML.}
Privately, it does a lot of other work. The article is saved to the SQLite cache. If the article
specifies a @racket['series] meta, information about that series is fetched and used in the
rendering of the article. If there are @racket[note]s in the doc, they are parsed and saved
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.
@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?)]
@defproc[(list/articles+notes [type (or/c 'listing_full_html
| > > > > > | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
my convention of using a prefix of @tt{html$-} for functions that return strings of HTML.}
Privately, it does a lot of other work. The article is saved to the SQLite cache. If the article
specifies a @racket['series] meta, information about that series is fetched and used in the
rendering of the article. If there are @racket[note]s in the doc, they are parsed and saved
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?)]
@defproc[(list/articles+notes [type (or/c 'listing_full_html
|
| ︙ | ︙ |
Modified crystalize.rkt from [c89fc8e8] to [feaffe0a].
| ︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
"snippets-html.rkt"
"dust.rkt")
;; ~~~ Provides ~~~
(provide spell-of-summoning!
crystalize-article!
article-plain-title
list/articles
list/articles+notes
listing<>-short/articles
listing<>-full/articles
listing<>-full/articles+notes
unfence
| > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
"snippets-html.rkt"
"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
|
| ︙ | ︙ | |||
401 402 403 404 405 406 407 |
(hash-ref series-metas 'title)
(hash-ref series-metas 'published)
(hash-ref series-metas 'noun-plural "")
(hash-ref series-metas 'noun-singular ""))))
(define sql$-insert (make-insert-rows-query 'series table_series-fields series-values))
(displayln sql$-insert)
(query! sql$-insert))
| | > > > > > > > > > > | 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 |
(hash-ref series-metas 'title)
(hash-ref series-metas 'published)
(hash-ref series-metas 'noun-plural "")
(hash-ref series-metas 'noun-singular ""))))
(define sql$-insert (make-insert-rows-query 'series table_series-fields series-values))
(displayln sql$-insert)
(query! sql$-insert))
;; Save the current article to the `series` table of the SQLite cache
;; Should be called from a template for series pages
(define (crystalize-series!)
(define series-row
(list (path->string (here-output-path))
(hash-ref (current-metas) 'title)
(hash-ref (current-metas) 'published "")
(hash-ref (current-metas) 'noun-plural "")
(hash-ref (current-metas) 'noun-singular "")))
(apply query! (make-insert/replace-query 'series table_series-fields) series-row))
|
Modified series/template.html.p from [2bb23760] to [00a0ebd1].
1 2 | <!DOCTYPE html> <html lang="en"> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!DOCTYPE html> <html lang="en"> ◊crystalize-series! ◊html$-page-head[(select-from-metas 'title metas)] ◊html$-page-body-open["series-page"] ◊(unfence (->html doc #:splice? #t)) ◊html$-page-body-close[] </html> |