From dd1b672c4d55d4b7ff560980feb5bf9756e750c7 Mon Sep 17 00:00:00 2001 From: Artemis Everfree Date: Wed, 22 Mar 2023 21:45:09 -0700 Subject: [PATCH] precompile regexp patterns --- lib/tree-updater.rkt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/tree-updater.rkt b/lib/tree-updater.rkt index 074c5a1..bf9f82c 100644 --- a/lib/tree-updater.rkt +++ b/lib/tree-updater.rkt @@ -100,6 +100,9 @@ (define (cardimage-class-updater c) (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 (compose1 ; uncollapsing @@ -107,12 +110,15 @@ (λ (class) (string-join (classlist-updater (string-split class " ")) " "))) (curry attribute-maybe-update 'class class-updater) ; change links to stay on the same wiki - (curry attribute-maybe-update 'href - (λ (href) - ((compose1 - (λ (href) (regexp-replace #rx"^(/wiki/.*)" href (format "/~a\\1" wikiname))) - (λ (href) (regexp-replace (pregexp (format "^https://(~a)\\.fandom\\.com(/wiki/.*)" px-wikiname)) href "/\\1\\2"))) - href))) + (let + ; precompute wikiname replacement pattern + ([wiki-substitution (format "/~a\\1" wikiname)]) + (curry attribute-maybe-update '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 (curry u (λ (v) (and #;(eq? element-type 'a)