将html呈现到racket gui

将html呈现到racket gui,html,user-interface,racket,Html,User Interface,Racket,我正在尝试编写一个WYSIWYG文本编辑器,它允许我在顶部窗口中编写文本,并在底部窗口中呈现生成的涂鸦文本。我想这样做的方法是定期在后台调用scribble myfile.rkt,然后使用。我在渲染时遇到了一些问题。根据我需要的文件 in : input-port? dest : (is-a? html-text<%>) load-img? : any/c eval-rkt? : any/c in:输入端口? dest:(is-a?html文本) 加载img?:任何

我正在尝试编写一个WYSIWYG文本编辑器,它允许我在顶部窗口中编写文本,并在底部窗口中呈现生成的涂鸦文本。我想这样做的方法是定期在后台调用
scribble myfile.rkt
,然后使用。我在渲染时遇到了一些问题。根据我需要的文件

  in : input-port?
  dest : (is-a? html-text<%>)
  load-img? : any/c
  eval-rkt? : any/c
in:输入端口?
dest:(is-a?html文本)
加载img?:任何/c
评估rkt?:任何/c
我脚本的相关部分如下所示

#lang racket/gui
(require racket/os racket/runtime-path "init.rkt" 
         browser/htmltext)
(require browser)


(define f (new frame% [label (~a "Dremacs" "@" (gethostname))]
                      [width 960]
                      [height 540]))



(define new-cnv (new cnv% [parent f]))


(send t insert ";; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with C-x C-f and enter text in its buffer.")
(send new-cnv set-editor t)

(define html-renderer%
  (interface (html-text<%>)))



(define viewer (new panel%
                    [parent f]
                    [min-width 300]
                    [min-height 300]))



(render-html-to-text (open-input-file "TODO.html") html-renderer% #t #t)

(send f show #t)
#lang racket/gui
(需要racket/os racket/runtime路径“init.rkt”
浏览器/htmltext)
(需要浏览器)
(定义f(新帧%[标签(~a“Dremacs”“@”(gethostname))]
[宽度960]
[高度540]))
(定义新的cnv(新的cnv%[母公司f]))
(send t insert);此缓冲区用于未保存的文本和Lisp计算。
;若要创建文件,请使用C-x C-f访问该文件,并在其缓冲区中输入文本。“)
(发送新的cnv集合编辑器t)
(定义html渲染器%
(界面(html文本)))
(定义查看器(新面板%)
[家长f]
[最小宽度300]
[最小高度300]))
(将html呈现为文本(打开输入文件“TODO.html”)html呈现程序%#t#t)
(发送f show#t)
但是我得到了错误

render-html-to-text: expects argument of type <html-text<%> object>; given: '(#<input-port:/home/diego/repos/dremacs/dremacs/TODO.html> #<interface:html-renderer%>)
  context...:
   /usr/share/racket/pkgs/drracket/browser/htmltext.rkt:61:0: render-html-to-text
   "/home/diego/repos/dremacs/dremacs/editor.rkt": [running body]
   temp37_0
将html呈现为文本:需要类型为的参数;给定:'(###)
上下文…:
/usr/share/racket/pkgs/drracket/browser/htmltext.rkt:61:0:将html呈现为文本
“/home/diego/repos/dremacs/dremacs/editor.rkt:[running body]
节拍

我不确定我做错了什么。有人能帮忙吗?

html呈现程序%未正确创建

使用html文本混合将文本%转换为处理html文本的内容

但是。。。不要对html渲染器期望过高。 它很旧,不支持样式表。
回到以前,它被用来显示DrRacket的文档。

谢谢!我会调查的。还有其他选择吗?如果不是的话,我可以试着弄清楚如何推出我自己的!有一些尝试嵌入webkit,但我还没有尝试过。