USING: xmode.tokens xmode.marker xmode.catalog kernel io io.files
sequences words io.encodings.utf8 namespaces xml.entities accessors
xml.syntax locals xml.writer ;
IN: xmode.code2html
: htmlize-tokens ( tokens -- xml )
    [
        [ str>> ] [ id>> ] bi [
            name>> swap
            [XML ><-> XML]
        ] when*
    ] map ;
: htmlize-line ( line-context line rules -- line-context' xml )
    tokenize-line htmlize-tokens ;
: htmlize-lines ( lines mode -- xml )
    [ f ] 2dip load-mode [ htmlize-line ] curry map nip
    { "\n" } join ;
: default-stylesheet ( -- xml )
    "resource:basis/xmode/code2html/stylesheet.css"
    utf8 file-contents
    [XML  XML] ;
:: htmlize-stream ( path stream -- xml )
    stream stream-lines
    [ "" ] [ path over first find-mode htmlize-lines ]
    if-empty :> input
    default-stylesheet :> stylesheet
    
        
            <-stylesheet->
            <-path->
        
        
            <-input->