small changes
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(require db
|
||||
net/uri-codec
|
||||
racket/string)
|
||||
|
||||
(provide replace-current-attachment-references!
|
||||
@@ -27,6 +28,12 @@ SQL
|
||||
(define (attachment-url reference stored-name)
|
||||
(format "/uploads/~a/~a" reference stored-name))
|
||||
|
||||
(define (attachment-url-variants reference stored-name)
|
||||
(list (attachment-url reference stored-name)
|
||||
(format "/uploads/~a/~a"
|
||||
reference
|
||||
(uri-path-segment-unreserved-encode stored-name))))
|
||||
|
||||
(define (page-references db page-id)
|
||||
(let* ((current
|
||||
(query-row db
|
||||
@@ -57,7 +64,8 @@ SQL
|
||||
(stored-name (vector-ref row 2))
|
||||
(found? #f))
|
||||
(for ((reference (in-list (page-references db owner-page-id))))
|
||||
(when (string-contains? markdown (attachment-url reference stored-name))
|
||||
(when (for/or ((url (in-list (attachment-url-variants reference stored-name))))
|
||||
(string-contains? markdown url))
|
||||
(set! found? #t)))
|
||||
(when found?
|
||||
(query-exec db
|
||||
@@ -89,6 +97,21 @@ SQL
|
||||
(record-references! db page-id sql-null markdown #t referenced-at)
|
||||
(void))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Tests for module attachment-references.rkt.
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(module+ test
|
||||
(require rackunit)
|
||||
|
||||
(define urls
|
||||
(attachment-url-variants
|
||||
"review-zuidas-2026:appreciatie"
|
||||
"1788796826-35348-Review ZuidasDok.docx"))
|
||||
(check-equal?
|
||||
urls
|
||||
(list "/uploads/review-zuidas-2026:appreciatie/1788796826-35348-Review ZuidasDok.docx"
|
||||
"/uploads/review-zuidas-2026:appreciatie/1788796826-35348-Review%20ZuidasDok.docx")))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; goal : Record attachment references present in an immutable page version.
|
||||
; pre : page-version-id identifies the stored version represented by markdown.
|
||||
|
||||
Reference in New Issue
Block a user