Overview
| Comment: | Small fixes in dust | 
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA3-256: | e18e8fa4d53834196e5b8b8f5175d7e4 | 
| User & Date: | joel on 2019-03-09 04:00:30 | 
| Other Links: | manifest | tags | 
Context
| 2019-03-09 | ||
| 04:02 | Small fixes in crystalize check-in: 0e2c0e7e user: joel tags: trunk | |
| 04:00 | Small fixes in dust check-in: e18e8fa4 user: joel tags: trunk | |
| 03:59 | Allow to take zero SQL parameters check-in: 0d3df679 user: joel tags: trunk | |
Changes
Modified dust.rkt from [c1bae001] to [402b4b9e].
| ︙ | ︙ | |||
| 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------
(require pollen/core
         pollen/pagetree
         net/uri-codec
         gregor
         txexpr
         racket/list
         racket/string)
;; Provides common helper functions used throughout the project
 | > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------
(require pollen/core
         pollen/pagetree
         pollen/setup
         net/uri-codec
         gregor
         txexpr
         racket/list
         racket/string)
;; Provides common helper functions used throughout the project
 | 
| ︙ | ︙ | |||
| 63 64 65 66 67 68 69 | 
;; Checks current-metas for a 'series meta and returns the pagenode of that series,
;; or '|| if no series is specified.
(define (series-pagenode)
  (define maybe-series (or (select-from-metas 'series (current-metas)) ""))
  (cond
    [(non-empty-string? maybe-series)
 | | | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 
;; Checks current-metas for a 'series meta and returns the pagenode of that series,
;; or '|| if no series is specified.
(define (series-pagenode)
  (define maybe-series (or (select-from-metas 'series (current-metas)) ""))
  (cond
    [(non-empty-string? maybe-series)
     (->pagenode (format "~a/~a.html" series-path maybe-series))]
    [else '||]))
(define (series-noun)
  (define series-pnode (series-pagenode)) 
  (case series-pnode
    ['|| ""] ; no series specified
    [else (or (select-from-metas 'noun-singular series-pnode) "")]))
 | 
| ︙ | ︙ | |||
| 85 86 87 88 89 90 91 | 
;; ~~~ Project-wide Pagetrees ~~~
(define (include-in-pagetree folder extension)
  (define (matching-file? f)
    (string-suffix? f extension))
  (define (file->output-pagenode f)
    (string->symbol (format "~a/~a" folder (string-replace f extension ".html"))))
 | | | | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 
;; ~~~ Project-wide Pagetrees ~~~
(define (include-in-pagetree folder extension)
  (define (matching-file? f)
    (string-suffix? f extension))
  (define (file->output-pagenode f)
    (string->symbol (format "~a/~a" folder (string-replace f extension ".html"))))
  (define folder-path (build-path (current-project-root) folder))
  (define file-strs (map path->string (directory-list folder-path)))
  (map file->output-pagenode (filter matching-file? file-strs)))
(define (articles-pagetree)
  `(root ,@(include-in-pagetree articles-path ".poly.pm")))
(define (series-pagetree)
  `(root ,@(include-in-pagetree series-path ".poly.pm")))
;; ~~~ Convenience functions for tagged x-expressions ~~~
(define (attr-present? name attrs)
  (for/or ([attr-pair (in-list attrs)])
          (equal? name (car attr-pair))))
 | 
| ︙ | ︙ |