forked from cadence/breezewiki
		
	Remove noscript versions of images
Script versions are likely better quality, and BreezeWiki makes them viewable without requiring scripts anyway.
This commit is contained in:
		
							parent
							
								
									58d6a652d8
								
							
						
					
					
						commit
						7a8a1cd40f
					
				
					 1 changed files with 23 additions and 1 deletions
				
			
		|  | @ -51,6 +51,17 @@ | |||
|                      (p "Another page link: " | ||||
|                         (a (@ (data-test-wikilink) (href "https://test.fandom.com/wiki/Another_Page") (title "Another Page")) | ||||
|                            "Another Page")))) | ||||
|            (figure (@ (class "thumb tnone")) | ||||
|                    (a (@ (href "https://static.wikia.nocookie.net/nice-image.png") (class "image")) | ||||
|                       (img (@ (src "data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D") | ||||
|                               (data-src "https://static.wikia.nocookie.net/nice-image-thumbnail.png") | ||||
|                               (class "thumbimage lazyload")))) | ||||
|                    (noscript | ||||
|                     (a (@ (href "https://static.wikia.nocookie.net/nice-image.png") (class "image")) | ||||
|                        (img (@ (src "https://static.wikia.nocookie.net/nice-image-thumbnail.png") | ||||
|                                (data-src "https://static.wikia.nocookie.net/nice-image-thumbnail.png") | ||||
|                                (class "thumbimage"))))) | ||||
|                    (figcaption "Test figure!")) | ||||
|            (iframe (@ (src "https://example.com/iframe-src"))))))) | ||||
| 
 | ||||
| (define (preprocess-html-wiki html) | ||||
|  | @ -108,6 +119,15 @@ | |||
|         `(a | ||||
|           ((class "iframe-alternative") (href ,src)) | ||||
|           (,(format "Embedded media: ~a" src)))] | ||||
|        ; remove noscript versions of images because they are likely lower quality than the script versions | ||||
|        [(and (eq? element-type 'noscript) | ||||
|              (match children | ||||
|                ; either the noscript has a.image as a first child... | ||||
|                [(list (list 'a (list '@ a-att ...) _)) (has-class? "image" a-att)] | ||||
|                ; or the noscript has img as a first child | ||||
|                [(list (list 'img _)) #t] | ||||
|                [_ #f])) | ||||
|         return-no-element] | ||||
|        [#t | ||||
|         (list element-type | ||||
|               ;; attributes | ||||
|  | @ -233,7 +253,9 @@ | |||
|                                       ((query-selector | ||||
|                                         (λ (t a c) (and (eq? t 'a) (has-class? "image-thumbnail" a))) | ||||
|                                         transformed)))) | ||||
|                 "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fnice-image.png")) | ||||
|                 "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fnice-image.png") | ||||
|   ; check that noscript images are removed | ||||
|   (check-equal? ((query-selector (λ (t a c) (eq? t 'noscript)) transformed)) #f)) | ||||
| 
 | ||||
| (define (page-wiki req) | ||||
|   (define wikiname (path/param-path (first (url-path (request-uri req))))) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue