]> gitweb.factorcode.org Git - factor.git/commitdiff
farkup: only absolute urls should be no-follow.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 10 Jan 2022 03:46:27 +0000 (19:46 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 10 Jan 2022 03:46:27 +0000 (19:46 -0800)
basis/farkup/farkup.factor

index 494da659b40aa52189b805d5d2058c53f59b0ab5..ca39af7d6af37709954e23a8b4cb0e528cd621ff 100644 (file)
@@ -207,13 +207,13 @@ DEFER: (parse-paragraph)
 
 CONSTANT: invalid-url "javascript:alert('Invalid URL in farkup');"
 
-: check-url ( href -- href' )
+: check-url ( href -- href' absolute? )
     {
-        { [ dup empty? ] [ drop invalid-url ] }
-        { [ dup [ 127 > ] any? ] [ drop invalid-url ] }
-        { [ dup first "/\\" member? ] [ drop invalid-url ] }
-        { [ CHAR: : over member? ] [ dup absolute-url? [ drop invalid-url ] unless ] }
-        [ relative-link-prefix get prepend "" like url-encode ]
+        { [ dup empty? ] [ drop invalid-url ] }
+        { [ dup [ 127 > ] any? ] [ drop invalid-url ] }
+        { [ dup first "/\\" member? ] [ drop invalid-url ] }
+        { [ CHAR: : over member? ] [ dup absolute-url? [ drop invalid-url ] unless ] }
+        [ relative-link-prefix get prepend "" like url-encode ]
     } cond ;
 
 : render-code ( string mode -- xml )
@@ -242,7 +242,7 @@ M: paragraph (write-farkup) "p" farkup-inside ;
 M: table (write-farkup) "table" farkup-inside ;
 
 : write-link ( href text -- xml )
-    [ check-url link-no-follow? get "nofollow" and ] dip
+    [ check-url link-no-follow? get "nofollow" and and ] dip
     [XML <a href=<-> rel=<->><-></a> XML] ;
 
 : write-image-link ( href text -- xml )
@@ -250,7 +250,7 @@ M: table (write-farkup) "table" farkup-inside ;
         2drop
         [XML <strong>Images are not allowed</strong> XML]
     ] [
-        [ check-url ] [ f like ] bi*
+        [ check-url drop ] [ f like ] bi*
         [XML <img src=<-> alt=<->/> XML]
     ] if ;