[Ur] UrWeb SVG inclusion trial, needs revision
Adam Chlipala
adamc at csail.mit.edu
Fri Mar 13 13:07:54 EDT 2015
Thanks for looking into this extension!
On 03/13/2015 06:25 AM, Gabriel Riba wrote:
> Although it is well explained in the manual (XML section), it is not
> easy to understand when there are several abstract concepts, that your
> mind easily skips.
>
> Specially the type constructor "tag" it is confound with the value
> "tag" (that builds up xml subtrees with specific tag) but the
> different parameters they take augments the confusion.
The idea of separate namespaces for types and values is pretty common;
Ur/Web inherits it from SML. You see the same thing with, e.g., class
constructors in C++. I don't think it's inherently confusing, and
usually it even improves understanding, by avoiding the need to add some
extra nonsense prefix or suffix to an identifier for disambiguation.
> > val svg : unit -> tag svgTagAttrs body svg [] []
> >
> > There is a quirk, since SVG can be an html level tag but also an
> > inner svg fragment container, but I have not treated this case.
>
> The "svg" tag establishes a new coordinate system. The fragments can be
> set up with the grouping tag "g", without redefining the coordinate
> system.
>
> I could not find a way to encode two possible outer context
> requirements for the svg tag.
Yeah, the XML encoding is not set up to support tags that work in
multiple contexts where there is no single /most general/ context that
subsumes all the options. Your example seems to need separate contexts
for <body> and <svg>, where either case supports some tag that is not
legal in the other.
One easy-to-implement workaround is to use a /separate tag/ for nested
SVG, with a different name. Then modify src/monoize.sml to add a
special case renaming that tag to <svg> in compiled code, for instance
by copying the code in the place that maps "tabl" to "table" right now.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20150313/3a7fb892/attachment.html>
More information about the Ur
mailing list