- From: Ivan Herman <ivan@w3.org>
- Date: Wed, 17 Sep 2014 12:50:04 +0200
- To: Dan Brickley <danbri@google.com>
- Cc: W3C CSV on the Web Working Group <public-csv-wg@w3.org>
- Message-Id: <ABE5BE48-C2B3-4A14-B151-6CEC00514A04@w3.org>
On 17 Sep 2014, at 12:42 , Dan Brickley <danbri@google.com> wrote: > On 10 September 2014 08:58, Ivan Herman <ivan@w3.org> wrote: >> >> As a followup on my previous mail... >> >> I wanted to see whether it is complicated to implement a very simple template (Alternative 2.5 in [1]) using existing tools, ie, to make it quickly available, with some extra work, to the community at large. I think the answer is yes; > > Personal opinion: I think the answer is 'yes' too, after some similar > experimentation and talking to a bunch of people. I believe we have a > very good chance of doing substantially better than 100% mechanistic > mappings, roughly around the level of Mustache ("Logic-less", but with > simple conditionals) with some regex pre-processing and a few > W3C-oriented supporting functions. > Actually, what I have is even simpler. In the 'filtered-templates' branch of the repo[1] what I have in the readme is: [[[ - `{{#rows}}` - `{{\rows}}` (where `rows` is a fixed symbol) at the beginning of a line means that the full templates enclosed between these two lines are to be repeated for all rows of the CSV content. - `{{name}}` has two possible roles: - if used *within* a `{{#rows}}` - `{{\rows}}` context, `{{name}}` refers to a column name, and the template is replaced with the content of the corresponding cell - if used *outside* a `{{#rows}}` - `{{\rows}}` context, `{{name}}` refers to a top-level key in the metadata **if its value is a string**; the template is replaced with the corresponding value - `{{name}}` can also have *filters*. The tag can have the format: ``{{name.f1.f2.….fn}}``, where ``f1,…,fn`` are filter functions. A filter function may have argument, i.e., it may look like ``fi("a","b")``; the arguments are strings surrounded by the ``"`` or the ``'`` characters. If there are no arguments, the argument list can be dropped altogether. Filter functions are invoked with: the output of the previous filter or the value corresponding ``{{name}}``; the reference to the metadata object; the list of the arguments (strings) if applicable. The filter function must return a replacement for the template value. The list of available filter functions will be specified by the WG, and a mechanism to add a user-defined filter will be provided. At present, there are only a few filters, these are ``upper``, ``lower``, ``concat(str)``, ``replace(regexp,str)``. ]]] That is it. Ie, no conditional and variables, nor any regex preprocessing (except for the "replace" filter) Ivan [1] https://github.com/w3c/csvw/tree/filtered-templates > I believe there is also a very good chance that a *simple* technology > like this will be picked up by search engines as a way of getting > graph-oriented data (schema.org and suchlike). But I also believe that > we could find this effort bedevilled by creeping complexity and that > there's some risk it might not make it to W3C REC. It's worth trying > though! > > </opinion> > > Dan > > >> look at: >> >> https://github.com/w3c/csvw/tree/gh-pages/experiments/simple-templates-jquery >> >> for further details. See >> >> https://github.com/w3c/csvw/tree/gh-pages/experiments/simple-templates-jquery/simple_test >> >> for the test I used so far. >> >> The implementation is rough at the edges, and I am still in the process to make it a bit better code-wise. But that still gives, I hope, an idea of where this *may* go. >> >> [1] http://lists.w3.org/Archives/Public/public-csv-wg/2014Sep/0006.html >> >> ---- >> 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 >> >> >> >> >> ---- 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 Wednesday, 17 September 2014 10:50:50 UTC