]> gitweb.factorcode.org Git - factor.git/commitdiff
html.parser.printer: some tweaks to the text-printer for my blog.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 6 Sep 2013 04:00:53 +0000 (21:00 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 6 Sep 2013 04:00:53 +0000 (21:00 -0700)
extra/html/parser/printer/printer.factor

index bfedd2124fca185b1e7c115b8399204639d90694..17b10c91f3be602538c8610aef4434e663b2b93d 100644 (file)
@@ -21,10 +21,12 @@ ERROR: unknown-tag-error tag ;
         { [ dup name>> text = ] [ print-text-tag ] }
         { [ dup name>> comment = ] [ print-comment-tag ] }
         { [ dup name>> dtd = ] [ print-dtd-tag ] }
-        { [ dup [ name>> string? ] [ closing?>> ] bi and ]
-            [ print-closing-tag ] }
         { [ dup name>> string? ]
-            [ print-opening-tag ] }
+            [
+                dup closing?>>
+                [ print-closing-tag ] [ print-opening-tag ] if
+            ]
+        }
         [ unknown-tag-error ]
     } cond ;
 
@@ -37,10 +39,22 @@ ERROR: unknown-tag-error tag ;
     T{ src-printer } html-printer [ print-tags ] with-variable ;
 
 M: text-printer print-opening-tag
-    name>> "br" = [ nl ] when ;
+    name>> {
+        { "br" [ nl ] }
+        { "li" [ " * " write ] }
+        [ drop ]
+    } case ;
 
 M: text-printer print-closing-tag
-    name>> "p" = [ nl ] when ;
+    name>>
+    [
+        { "p" "blockquote" "h1" "h2" "h3" "h4" "h5" }
+        member? [ nl nl ] when
+    ]
+    [
+        { "ul" "ol" "li" "tr" } member? [ nl ] when
+    ]
+    [ "td" = [ " " write ] when ] tri ;
 
 M: html-printer print-text-tag ( tag -- )
     text>> write ;