Overview
| Comment: | Variadic make-tag-predicate |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
3ed1107392e620952a40a0ae558708db |
| User & Date: | joel on 2020-02-24 07:35:08 |
| Other Links: | manifest | tags |
Context
|
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 | |
|
2020-02-22
| ||
| 00:04 | Minor code doc edits check-in: e538e325 user: joel tags: trunk | |
Changes
Modified code-docs/dust.scrbl from [c0b36b73] to [73710a17].
| ︙ | ︙ | |||
99 100 101 102 103 104 105 |
Finds all the strings from the @emph{elements} of @racket[_tx] (ignoring attributes) and
concatenates them together.
@examples[#:eval dust-eval
(tx-strs '(p [[class "intro"]]
(em "I’m not opening the safe") ", Wilson remembers thinking."))]
| | | | | | > | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
Finds all the strings from the @emph{elements} of @racket[_tx] (ignoring attributes) and
concatenates them together.
@examples[#:eval dust-eval
(tx-strs '(p [[class "intro"]]
(em "I’m not opening the safe") ", Wilson remembers thinking."))]
@defproc[(make-tag-predicate [sym symbol?] ...) (-> any/c boolean?)]
Returns a function (or @italic{predicate}) that returns @racket[#t] if its argument is
a @racket[_txexpr] whose tag matches any @racket[_sym]. This predicate is useful for passing as the
@racket[_pred] expression in functions @racket[splitf-txexpr] and @racket[findf-txexpr].
@examples[#:eval dust-eval
(define is-aside? (make-tag-predicate 'aside 'sidebar))
(is-aside? '(q "I am not mad, Sir Topas. I say to you this house is dark."))
(is-aside? '(aside "How smart a lash that speech doth give my Conscience?"))
(is-aside? '(sidebar "Many copies that we use today are conflated texts."))]
@defproc[(first-words [txprs (listof txexpr?)] [n exact-nonnegative-integer?]) string?]
Given a list of tagged X-expressions, returns a string containing the first @racket[_n] words found
in the string elements of @racket[_txprs], or all of the words if there are less than @racket[_n]
words available. Used by @racket[default-title].
|
| ︙ | ︙ |
Modified dust.rkt from [dffdbbe2] to [e986dd0a].
| ︙ | ︙ | |||
134 135 136 137 138 139 140 |
(define (maybe-attr name attrs [missing ""])
(define result (assoc name attrs))
(cond
[(pair? result) (cadr result)]
[else missing]))
;; Returns a function will test if a txexpr's tag matches the given symbol.
| | | | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
(define (maybe-attr name attrs [missing ""])
(define result (assoc name attrs))
(cond
[(pair? result) (cadr result)]
[else missing]))
;; Returns a function will test if a txexpr's tag matches the given symbol.
(define (make-tag-predicate . tagsyms)
(lambda (tx) (if (and (txexpr? tx) (member (get-tag tx) tagsyms)) #t #f)))
(define (tx-strs xpr)
(cond
[(txexpr? xpr) (apply string-append (map tx-strs (get-elements xpr)))]
[(string? xpr) xpr]
[else ""]))
|
| ︙ | ︙ |