M: object url-of drop f ;
-TUPLE: html-writer data last-div ;
+TUPLE: html-writer data ;
<PRIVATE
-! stream-nl after with-nesting or tabular-output is
-! ignored, so that HTML stream output looks like
-! UI pane output
-: last-div? ( stream -- ? )
- [ f ] change-last-div drop ;
-
-: not-a-div ( stream -- stream )
- f >>last-div ; inline
-
-: a-div ( stream -- stream )
- t >>last-div ; inline
-
: new-html-writer ( class -- html-writer )
new V{ } clone >>data ; inline
TUPLE: html-span-stream < html-sub-stream ;
M: html-span-stream dispose
- end-sub-stream not-a-div format-html-span ;
+ end-sub-stream format-html-span ;
: border-css, ( border -- )
"border: 1px solid #" % hex-color, "; " % ;
{ border-color border-css, }
{ inset padding-css, }
} make-css
- ] [
- wrap-margin swap at
- [ pre-css append ] unless
- ] bi ;
+ ] [ wrap-margin swap at [ pre-css append ] unless ] bi
+ "display: inline-block;" append ;
: div-tag ( xml style -- xml' )
div-css-style
TUPLE: html-block-stream < html-sub-stream ;
M: html-block-stream dispose ( quot style stream -- )
- end-sub-stream a-div format-html-div ;
+ end-sub-stream format-html-div ;
: border-spacing-css, ( pair -- )
"padding: " % first2 max 2 /i # "px; " % ;
M: html-writer stream-flush drop ;
M: html-writer stream-write1
- not-a-div [ 1string ] emit-html ;
+ [ 1string ] emit-html ;
M: html-writer stream-write
- not-a-div [ ] emit-html ;
+ [ ] emit-html ;
M: html-writer stream-format
format-html-span ;
M: html-writer stream-nl
- dup last-div? [ drop ] [ [ [XML <br/> XML] ] emit-html ] if ;
+ [ [XML <br/> XML] ] emit-html ;
M: html-writer make-span-stream
html-span-stream new-html-sub-stream ;
html-sub-stream new-html-sub-stream ;
M: html-writer stream-write-table
- a-div [
+ [
table-style swap [
[ data>> [XML <td valign="top" style=<->><-></td> XML] ] with map
[XML <tr><-></tr> XML]
] with map
- [XML <table><-></table> XML]
+ [XML <table style="display: inline-table;"><-></table> XML]
] emit-html ;
M: html-writer dispose drop ;