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.