Overview
| Comment: | Fix series caching | 
|---|---|
| Timelines: | family | ancestors | descendants | both | deta-refactor | 
| Files: | files | file ages | folders | 
| SHA3-256: | 624e5e2b7eb85a38c3aef3debb5fe664 | 
| User & Date: | joel on 2020-01-13 00:52:40 | 
| Other Links: | branch diff | manifest | tags | 
Context
| 2020-01-13 | ||
| 01:04 | Fix cache db filename, index page Leaf check-in: e90a714a user: joel tags: deta-refactor | |
| 00:52 | Fix series caching check-in: 624e5e2b user: joel tags: deta-refactor | |
| 00:37 | Fix article+note listing query so date ordering actually works check-in: fc820f2f user: joel tags: deta-refactor | |
Changes
Modified crystalize.rkt from [e20fefa6] to [950c4fe1].
| ︙ | ︙ | |||
| 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 
         pollen/setup)
(require "dust.rkt" "snippets-html.rkt")
(provide init-cache-db!
         cache-conn            ; The most eligible bachelor in Neo Yokyo
         parse-and-cache-article!
         current-plain-title
         (schema-out cache:article)
         (schema-out cache:note)
         (schema-out cache:series)
         (schema-out cache:index-entry)
         articles
         articles+notes
 | > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 
         pollen/setup)
(require "dust.rkt" "snippets-html.rkt")
(provide init-cache-db!
         cache-conn            ; The most eligible bachelor in Neo Yokyo
         parse-and-cache-article!
         cache-series!
         current-plain-title
         (schema-out cache:article)
         (schema-out cache:note)
         (schema-out cache:series)
         (schema-out cache:index-entry)
         articles
         articles+notes
 | 
| ︙ | ︙ | |||
| 73 74 75 76 77 78 79 | [listing-excerpt-html string/f] ; Not used for now [listing-short-html string/f])) ; Date and title only (define-schema cache:series #:table "series" ([id id/f #:primary-key #:auto-increment] [page symbol/f] [title string/f] | | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | [listing-excerpt-html string/f] ; Not used for now [listing-short-html string/f])) ; Date and title only (define-schema cache:series #:table "series" ([id id/f #:primary-key #:auto-increment] [page symbol/f] [title string/f] [published string/f] [noun-plural string/f] [noun-singular string/f])) (define-schema cache:index-entry #:table "index_entries" ([id id/f #:primary-key #:auto-increment] [entry string/f] [subentry string/f] | 
| ︙ | ︙ | |||
| 389 390 391 392 393 394 395 396 397 | 
;; listing functions
(define (unfence html-str)
  (regexp-replace* #px"<[\\/]{0,1}style>" html-str ""))
;; Save the current article to the `series` table of the SQLite cache
;; Should be called from a template for series pages
(define (cache-series!)
  (query-exec cache-conn
              (delete (~> (from cache:series #:as s)
 | > | > | | | | | | | | 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 | 
;; listing functions
(define (unfence html-str)
  (regexp-replace* #px"<[\\/]{0,1}style>" html-str ""))
;; Save the current article to the `series` table of the SQLite cache
;; Should be called from a template for series pages
(define (cache-series!)
  (define here-page (path->string (here-output-path)))
  (query-exec cache-conn
              (delete (~> (from cache:series #:as s)
                          (where (= s.page ,here-page)))))
  (void
   (insert-one! cache-conn
                (make-cache:series
                 #:page (string->symbol here-page)
                 #:title (hash-ref (current-metas) 'title)
                 #:published (hash-ref (current-metas) 'published "")
                 #:noun-plural (hash-ref (current-metas) 'noun-plural "")
                 #:noun-singular (hash-ref (current-metas) 'noun-singular "")))))
 |