What you need to know is — at a high level — how to write a thread that, 
in DrRacket, conceptually clicks the ‘render as HTML’ button every time 
you hit a key. It’s kind of like background syntax checking. except that 
the result shows up in your browser not in DrRacket. So your GUI skills
aren’t really in demand. Just concurrent programming and managing 
threads (you don’t want to run it as a thread but as a place and you 
want to kill threads that don’t finish shipping their stuff to the browser
in time for the next keystroke to be processed.) 





> On Apr 29, 2017, at 6:13 PM, Jos Koot <jos.k...@gmail.com> wrote:
> 
> Hi Neil,
> Your idea crossed my mind when I started to use scribble,
> but I don't think I know enough of Scribble,
> (let alone HTML etc) for such a task.
> I hardly have experience in making Guis.
> I am a simple, but very content user of Racket.
> Thanks to you and all others of PLT,
> Jos
> 
> -----Original Message-----
> From: Neil Van Dyke [mailto:n...@neilvandyke.org] 
> Sent: sábado, 29 de abril de 2017 23:25
> To: Jos Koot; 'Racket Users'
> Subject: student project idea: semi-WYSIWYG Scribble editor (Was: Racket 6.9)
> 
> If some undergrad wanted a summer programming project... make a 
> semi-WYSIWYG editor for Scribble documents.
> 
> You might have a long scrolling text window, in which things like 
> boldface/italics/color/textsize that Scribble would render are editable 
> text, and Scribble markup itself doesn't appear on-screen. Things like 
> print pagination probably would not appear here, though, but you'll want 
> to special-case what normally ends up as rendered Table of Contents, for 
> navigation purposes.  This can be tricky, especially if you're not 
> closed-world to a particular set of Scribble primitives, but let the 
> user extend it with arbitrary constructs layered atop those (but you 
> could avoid intractability situations by always preserving the structure 
> the user specifies, and only going to WYSIWYG-ish display&editing when 
> you can determine (programmatically) how the text in the renderer 
> relates to the text of the construct arguments.
> 
> Alternatively, and simpler: you might have two window panes, one in 
> which the user writes Scribble source, and another that gives an 
> almost-live semi-WYSIWYG view of how the source would render. Ideally 
> have the semi-WYSIWYG one approximate UI cues like text cursor point and 
> selection highlighting in the semi-WYSIWG view.
> 
> You could start with the latter, and then later implement the former as 
> an alternative mode that user could switch to/from dynamically. This 
> development path would certainly make your GUI-based selection of 
> regions for arbitrary extensible Scribble constructs, and traceability 
> of text between constructs and semi-WYSIWYG, easier to debug. :)
> 
> You might decide to implement this within the DrRacket framework, which 
> includes a bunch of GUI and support stuff that you'll need anyway, 
> beyond what the Racket `gui` packages provide.
> 
> 
> Jos Koot wrote on 04/29/2017 05:00 PM:
> [...]
>> Indeed I like WYSIWYG,
>> but nowadays I use scribble too (most scribble/manual)
>> (frequently rendering in order to see what I get and
>> looking into the docs in order to see how to get what I want)
>> A very nice thing of scribble is that you can make
>> elaborate procedures and syntax transformers,
>> much easier to write and more flexible and reliable
>> than Java macros in MS-word, I think.
>> And, of course, the @interaction[] and companions,
>> which I don't have in MS-word.
> [...]
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to