USING: xmode.tokens xmode.marker xmode.catalog kernel html html.elements io io.files sequences words ; IN: xmode.code2html : htmlize-tokens ( tokens -- ) [ dup token-str swap token-id [ write ] [ write ] if* ] each ; : htmlize-line ( line-context line rules -- line-context' ) tokenize-line htmlize-tokens ; : htmlize-lines ( lines mode -- ) f swap load-mode [ htmlize-line nl ] curry reduce drop ; : default-stylesheet ( -- ) ; : htmlize-stream ( path stream -- ) lines swap
default-stylesheetover empty? [ 2drop ] [ over first find-mode htmlize-lines ] if; : htmlize-file ( path -- ) dup