On 6/10/2010 10:41 PM, P T Withington wrote:
On 2010-06-10, at 16:35, P T Withington wrote:

On 2010-05-26, at 17:42, P T Withington wrote:

[...]

I propose then that we distinguish the types `text` and `html` from `string`, and that we 
permit them on any attribute (not just on an attribute named "text":  although 
it is by defining an attribute named text that you tell the schema that your class 
defines a tag that permits content, you might want other attributes with these types).  I 
propose the following semantics:

string:  Value is parsed as an ECMAScript string
text:  Value is parsed as XML CDATA
html:  Value is parsed as XML content

There's one issue with my proposal:

Currently, LZX treats string, text, and html as synonyms.  They are close, but 
if we distinguish them as above, they are clearly not, if you have any ES or 
XML characters that would be escaped.

I tried making the declared type of<text>'s text field be honest (it is really 
`html`, because it is not quoted in any way), and run into lots of compiler type 
warnings because in lots of places, components and demos have created subclasses of 
text, or simply initialized the text attribute and have (pointlessly) re-declared the 
type of the text field.

I don't have a solution other than removing the declarations from the 
components and demos as we come across them.

Other opinions?

Or, maybe I am wrong.  Maybe the intent is that<text>  is of type `text`, that 
it does _not_ interpret HTML?  But I think it does, since we seem to allow simple 
markup in text, right?

<text> needs to be styleable with html markup.

I think we should try to split your change in two parts:
(1) make string, text and html distinct types
(2) change how these types are quoted

Both changes may break components and demos (at least (1) does, as you've observed), so we shouldn't step in with the chain saw and then desperately try to make things working again. So I vote for incremental steps.

Reply via email to