From: John Benediktsson Date: Mon, 5 Aug 2013 16:45:42 +0000 (-0700) Subject: html.parser.printer: some fixes. X-Git-Tag: 0.97~1166 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=555ea83d8930973ff1d59ab9ed606fbc1b53bec5 html.parser.printer: some fixes. Fix html-text. (may not be perfect, but "works" now) Don't decrement indentations if we didn't increment them. --- diff --git a/extra/html/parser/printer/printer.factor b/extra/html/parser/printer/printer.factor index cd067d8edc..eabd53b4d0 100644 --- a/extra/html/parser/printer/printer.factor +++ b/extra/html/parser/printer/printer.factor @@ -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 ; @@ -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 ">\n" write ; + [ tabs write "> 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 ;