- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Mon, 30 Jun 2014 11:05:21 -0700
- To: Ivan Herman <ivan@w3.org>
- Cc: "Tandy, Jeremy" <jeremy.tandy@metoffice.gov.uk>, Dan Brickley <danbri@google.com>, W3C CSV on the Web Working Group <public-csv-wg@w3.org>
On Jun 30, 2014, at 5:05 AM, Ivan Herman <ivan@w3.org> wrote:
>
> On 30 Jun 2014, at 13:57 , Tandy, Jeremy <jeremy.tandy@metoffice.gov.uk> wrote:
>
>> Hi Dan - it certainly seems like the HTML5 <template> element & Polymer are running in the same direction as us; although whether we're on the same track is hard to tell from the docs :-)
>>
>> What's obvious is that they use a {{...}} syntax compared to our {...} which is borrowed from URI templates.
>
> I had an ugly idea last night...
>
> The problem with the '{' syntax is that it does not goes well with JSON. But it works well with turtle and/or XML. Maybe we will have to have an 'abstract' template language specification with two different concrete syntaxes, one with '{...}' and the other with, say, '<...>' to work with Turtle/XML and JSON, respectively...
If templates are processed as text, rather than as a particular format, such as JSON, the use of the {} notation shouldn't be an issue, presuming that what's inside of {pattern} needs to match some an expression including a field name.
That said, URI templates was just a starting point, and requirements have certainly grown beyond this to require conditionals.
I also looked at HTML5 templates for some inspiration, but I find it too closely relating to HTML semantics. What's necessary, is something like a subset of mustache or handlebars that can be specified as part of our work. Of course, it would be much better to reference such a spec, rather than define it ourselves.
Mustache has a reasonable specification [1], but is covered by copyright. It's based on Google's Ctemplate [2], which looks like it might cover the specific parts we'd be interested in.
Gregg
[1] http://mustache.github.io/mustache.5.html
[2] https://code.google.com/p/ctemplate/
> It is ugly. But I am not sure what else we would do...
>
> Ivan
>
>>
>> I guess that the next step would be to try to apply the HTML5 template / Polymer model to one of the example scenarios you're creating?
>>
>> Jeremy
>>
>>> -----Original Message-----
>>> From: Dan Brickley [mailto:danbri@google.com]
>>> Sent: 27 June 2014 23:39
>>> To: public-csv-wg@w3.org
>>> Subject: Web Component templates (and Polymer)
>>>
>>> Just to bookmark a thought, while watching
>>> https://www.youtube.com/watch?v=8OJ7ih8EE7s
>>>
>>> Web Components (a browser-based Web standards effort) has a data
>>> binding / templates aspect.
>>>
>>> http://webcomponents.org/
>>> http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-
>>> 1.html#the-template-element
>>>
>>> Polymer adds a layer over the base specs, http://www.polymer-
>>> project.org/docs/polymer/databinding.html
>>>
>>> Here's an example:
>>>
>>> <polymer-element name="greeting-tag">
>>> <!-- outermost template defines the element's shadow DOM -->
>>> <template>
>>> <ul>
>>> <template repeat="{{s in salutations}}">
>>> <li>{{s.what}}: <input type="text" value="{{s.who}}"></li>
>>> </template>
>>> </ul>
>>> </template>
>>> <script>
>>> Polymer('greeting-tag', {
>>> ready: function() {
>>> // populate the element’s data model
>>> // (the salutations array)
>>> this.salutations = [
>>> {what: 'Hello', who: 'World'},
>>> {what: 'GoodBye', who: 'DOM APIs'},
>>> {what: 'Hello', who: 'Declarative'},
>>> {what: 'GoodBye', who: 'Imperative'}
>>> ];
>>> }
>>> });
>>> </script>
>>> </polymer-element>
>>>
>>>
>>> I'm not sure what to conclude from this, but thought I'd pass this
>>> along as a start.
>>>
>>> Dan
>>
>
>
> ----
> Ivan Herman, W3C
> Digital Publishing Activity Lead
> Home: http://www.w3.org/People/Ivan/
> mobile: +31-641044153
> GPG: 0x343F1A3D
> WebID: http://www.ivan-herman.net/foaf#me
>
>
>
>
>
Received on Monday, 30 June 2014 18:05:52 UTC