1 USING: xmode.tokens xmode.marker xmode.catalog kernel
2 html.elements io io.files sequences words io.encodings.utf8
3 namespaces xml.entities accessors ;
6 : htmlize-tokens ( tokens -- )
8 [ str>> ] [ id>> ] bi [
9 <span name>> =class span> escape-string write </span>
15 : htmlize-line ( line-context line rules -- line-context' )
16 tokenize-line htmlize-tokens ;
18 : htmlize-lines ( lines mode -- )
19 f swap load-mode [ htmlize-line nl ] curry reduce drop ;
21 : default-stylesheet ( -- )
23 "resource:basis/xmode/code2html/stylesheet.css"
24 utf8 file-contents escape-string write
27 : htmlize-stream ( path stream -- )
32 <title> dup escape-string write </title>
38 [ over first find-mode htmlize-lines ] if
43 : htmlize-file ( path -- )
45 dup ".html" append utf8 [
46 input-stream get htmlize-stream