forked from cadence/breezewiki
		
	optimizations #1
					 2 changed files with 15 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,7 +190,9 @@
 | 
			
		|||
                '(body "Hey" (& nbsp) (a (@ (href "/"))))))
 | 
			
		||||
 | 
			
		||||
(define (has-class? name attributes)
 | 
			
		||||
  (and (member name (string-split (or (get-attribute 'class attributes) "") " ")) #t))
 | 
			
		||||
  ; splitting without specifying separator or splitting on #px"\\s+" makes
 | 
			
		||||
  ; string-split use a faster whitespace-specialized implementation.
 | 
			
		||||
  (and (member name (string-split (or (get-attribute 'class attributes) "") #px"\\s+")) #t))
 | 
			
		||||
(module+ test
 | 
			
		||||
  (check-true (has-class? "red" '((class "yellow red blue"))))
 | 
			
		||||
  (check-false (has-class? "red" '((class "yellow blue"))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue