precompile regexp patterns

This commit is contained in:
Artemis Everfree 2023-03-22 21:45:09 -07:00
parent 2694eb7245
commit dd1b672c4d
1 changed files with 12 additions and 6 deletions

View File

@ -100,6 +100,9 @@
(define (cardimage-class-updater c) (define (cardimage-class-updater c)
(string-append c " bw-updated-cardtable-cardimage")) (string-append c " bw-updated-cardtable-cardimage"))
; precompute wikiurl regex for efficency
(define wikiurl-regex (pregexp (format "^https://(~a)\\.fandom\\.com(/wiki/.*)$" px-wikiname)))
(define attributes-updater (define attributes-updater
(compose1 (compose1
; uncollapsing ; uncollapsing
@ -107,12 +110,15 @@
(λ (class) (string-join (classlist-updater (string-split class " ")) " "))) (λ (class) (string-join (classlist-updater (string-split class " ")) " ")))
(curry attribute-maybe-update 'class class-updater) (curry attribute-maybe-update 'class class-updater)
; change links to stay on the same wiki ; change links to stay on the same wiki
(curry attribute-maybe-update 'href (let
(λ (href) ; precompute wikiname replacement pattern
((compose1 ([wiki-substitution (format "/~a\\1" wikiname)])
(λ (href) (regexp-replace #rx"^(/wiki/.*)" href (format "/~a\\1" wikiname))) (curry attribute-maybe-update 'href
(λ (href) (regexp-replace (pregexp (format "^https://(~a)\\.fandom\\.com(/wiki/.*)" px-wikiname)) href "/\\1\\2"))) (λ (href)
href))) ((compose1
(λ (href) (regexp-replace #rx"^(/wiki/.*)$" href wiki-substitution))
(λ (href) (regexp-replace wikiurl-regex href "/\\1\\2")))
href))))
; add noreferrer to a.image ; add noreferrer to a.image
(curry u (curry u
(λ (v) (and #;(eq? element-type 'a) (λ (v) (and #;(eq? element-type 'a)