]> gitweb.factorcode.org Git - factor.git/commitdiff
html.parser.printer: some fixes.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 5 Aug 2013 16:45:42 +0000 (09:45 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 5 Aug 2013 16:56:44 +0000 (09:56 -0700)
Fix html-text. (may not be perfect, but "works" now)
Don't decrement indentations if we didn't increment them.

extra/html/parser/printer/printer.factor

index cd067d8edc3f50db40d128c3109a98a6f4b9eae8..eabd53b4d04e2149c1906c9356a0e8619a9ba4cd 100644 (file)
@@ -1,8 +1,6 @@
-USING: accessors assocs html.parser html.parser.utils combinators
-continuations hashtables
-hashtables.private io kernel make math
-namespaces prettyprint quotations sequences splitting
-strings unicode.categories ;
+USING: accessors assocs combinators html.parser
+html.parser.utils io kernel math namespaces sequences strings
+unicode.categories ;
 IN: html.parser.printer
 
 TUPLE: html-printer ;
@@ -38,7 +36,14 @@ ERROR: unknown-tag-error tag ;
 : html-src. ( vector -- )
     T{ src-printer } html-printer [ print-tags ] with-variable ;
 
-M: html-printer print-text-tag ( tag -- ) text>> write ;
+M: text-printer print-opening-tag
+    name>> "br" = [ nl ] when ;
+
+M: text-printer print-closing-tag
+    name>> "p" = [ nl ] when ;
+
+M: html-printer print-text-tag ( tag -- )
+    text>> write ;
 
 M: html-printer print-comment-tag ( tag -- )
     "<!--" write text>> write "-->" write ;
@@ -83,8 +88,9 @@ M: html-prettyprinter print-opening-tag ( tag -- )
     [ { "br" "img" } member? [ #indentations inc ] unless ] bi ;
 
 M: html-prettyprinter print-closing-tag ( tag -- )
-    #indentations dec
-    tabs write "</" write name>> write ">\n" write ;
+    [ tabs write "</" write name>> write ">\n" write ]
+    ! These tags usually don't have any closing tag associated with them.
+    [ { "br" "img" } member? [ #indentations dec ] unless ] bi ;
 
 M: html-prettyprinter print-text-tag ( tag -- )
     text>> [ blank? ] trim [ tabs write write "\n" write ] unless-empty ;