Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 47s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
62 lines
1.7 KiB
Plaintext
62 lines
1.7 KiB
Plaintext
;; Extension — multi-document index + tag filtering.
|
|
|
|
(st-bootstrap-classes!)
|
|
(content/bootstrap!)
|
|
(content-bootstrap-text!)
|
|
|
|
(define
|
|
a
|
|
(doc-with-meta
|
|
(doc-append (doc-empty "a") (mk-text "p" "first post"))
|
|
{:title "A" :tags (list "sx" "news")}))
|
|
(define
|
|
b
|
|
(doc-with-meta
|
|
(doc-append (doc-empty "b") (mk-text "p" "second post"))
|
|
{:title "B" :tags (list "news")}))
|
|
(define
|
|
c
|
|
(doc-with-meta
|
|
(doc-append (doc-empty "c") (mk-text "p" "third"))
|
|
{:title "C" :tags (list "sx")}))
|
|
(define docs (list a b c))
|
|
|
|
;; ── index = list of summaries ──
|
|
(define idx (content/index docs))
|
|
(content-test "index count" (len idx) 3)
|
|
(content-test
|
|
"index titles"
|
|
(map (fn (s) (get s :title)) idx)
|
|
(list "A" "B" "C"))
|
|
(content-test
|
|
"index ids"
|
|
(map (fn (s) (get s :id)) idx)
|
|
(list "a" "b" "c"))
|
|
(content-test "index excerpt" (get (first idx) :excerpt) "first post")
|
|
|
|
;; ── has-tag? ──
|
|
(content-test "has-tag yes" (content/has-tag? a "news") true)
|
|
(content-test "has-tag no" (content/has-tag? c "news") false)
|
|
|
|
;; ── index-by-tag (category page) ──
|
|
(content-test
|
|
"by-tag news"
|
|
(map (fn (s) (get s :id)) (content/index-by-tag docs "news"))
|
|
(list "a" "b"))
|
|
(content-test
|
|
"by-tag sx"
|
|
(map (fn (s) (get s :id)) (content/index-by-tag docs "sx"))
|
|
(list "a" "c"))
|
|
(content-test "by-tag none" (content/index-by-tag docs "missing") (list))
|
|
|
|
;; ── all-tags (tag cloud, deduped, document order) ──
|
|
(content-test "all-tags" (content/all-tags docs) (list "sx" "news"))
|
|
(content-test "all-tags empty" (content/all-tags (list)) (list))
|
|
(content-test
|
|
"all-tags untagged"
|
|
(content/all-tags (list (doc-empty "x")))
|
|
(list))
|
|
|
|
;; ── empty index ──
|
|
(content-test "empty index" (content/index (list)) (list))
|