diff --git a/gem300.rkt b/gem300.rkt index 35d2fc4..17b8b1f 100644 --- a/gem300.rkt +++ b/gem300.rkt @@ -7,15 +7,20 @@ ;; rendered out gemtext document as it shall be shown to the user (define document-buffer null) +;; global state which will be the document structure, before rendering +(define document null) + (define (go-cmd url) (if (non-empty-string? url) (let-values ([(status meta c-in) (net:get url)]) - (let-values ([(document) (gmi:parse (port->lines c-in))] + (let-values ([(doc) (gmi:parse (port->lines c-in))] [(db-in db-out) (make-pipe #f)]) + (set! document doc) + (set! document-buffer db-in) (parameterize ([current-output-port db-out]) - (gmi:render document)) + (gmi:render doc)) (let ([remaining (pipe-content-length db-in)]) (printf "document retrieved. ~a bytes\n" remaining))