Andrea Giammarchi wrote:
sorry, early send (I think it was a ctrl+return ? ) ... I was saying ..
without using eval and already discussed months ago:
https://gist.github.com/WebReflection/8f227532143e63649804
I had the impression the "no-eval" was in fact "no eval or Function", in
which case this does not count either.
it's based on the glorious `with` statement and it works like a charm
Regards
On Mon, Sep 14, 2015 at 11:49 AM, Andrea Giammarchi
<andrea.giammar...@gmail.com <mailto:andrea.giammar...@gmail.com>> wrote:
without using eval, discussed already months ago
On Mon, Sep 14, 2015 at 6:03 AM, Thomas
<thomasjamesfos...@bigpond.com
<mailto:thomasjamesfos...@bigpond.com>> wrote:
For those interested, this gist better shows what's being
discussed:
https://gist.github.com/thomasfoster96/193e7c08aae499f810a1
Ron: Yes, that's already possible - but tagged template strings
don't really offer much of an advantage over a function as far
as templating goes (IMHO).
Thomas
On 14 Sep 2015, at 11:04 AM, Ron Buckton
<ron.buck...@microsoft.com <mailto:ron.buck...@microsoft.com>>
wrote:
This is theoretically possible:
```
let t = $template`
${$item.permalink}
${$each($item.comments)`
${$parent.permalink}
${$if($item.title)`
${$parent.permalink}
`}
`}
`;
let s = t(data);
```
...given an adequate implementation using proxies (to create
bindings for e.g. `$item.permalink` for later evaluation) and
tagged template functions. Whether or not this would make for
a reasonable implementation is left to the reader.
Ron
------------------------------------------------------------------------
From: Isiah Meadows <mailto:isiahmead...@gmail.com>
Sent: 9/13/2015 4:15 PM
To: Mark S. Miller <mailto:erig...@google.com>
Cc: Bob Myers <mailto:r...@gol.com>; es-discuss
<mailto:es-discuss@mozilla.org>
Subject: Re: Template strings as a template language.
On Sun, Sep 13, 2015 at 7:09 PM, Mark S. Miller
<erig...@google.com <mailto:erig...@google.com>> wrote:
>
>
> On Sun, Sep 13, 2015 at 8:58 AM, Bob Myers <r...@gol.com
<mailto:r...@gol.com>> wrote:
>>
>> Templating languages typically "compile" templates into
functions through
>> various lexical transformations.
>>
>> Consider a template file foo.tem:
>>
>> ```
>> My name is
${https://na01.safelinks.protection.outlook.com/?url=this.name&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=CY6YpX1n5jLScYGX2W1tIi2ndGlA7WI8ZTJUZjDL2Gw%3d
<https://na01.safelinks.protection.outlook.com/?url=this.name&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=CY6YpX1n5jLScYGX2W1tIi2ndGlA7WI8ZTJUZjDL2Gw%3d>}.
>> ```
>>
>> Lexically transform this into
>>
>> ```
>> function foo() {
>> return `My name is ${this.name <http://this.name>|}.`;
>> }
>>
>> Then invoke the template as eg
>>
>> ```
>> foo.call({name: 'Bob'})
>> ```
>>
>> Having said that, I doubt if ES6 template strings serve as a
useful basis
>> for a full-fledged templating system. To take just one basic
example, how
>> would one implement the equivalent of `{{#if}}`?
>
>
> What does `{{#if}}` mean?
>
An example from Handlebars' website (which is likely where he
drew the
syntax from):
```
{{permalink}}
{{#each comments}}
{{../permalink}}
{{#if title}}
{{../permalink}}
{{/if}}
{{/each}}
```
>>
>>
>> Bob
>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org <mailto:es-discuss@mozilla.org>
>>
https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fmail.mozilla.org%2flistinfo%2fes-discuss&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Vk9C%2fonHktgLCsW%2f395PrpBWefRcs6XFqJk7HTVbunE%3d
<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fmail.mozilla.org%2flistinfo%2fes-discuss&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Vk9C%2fonHktgLCsW%2f395PrpBWefRcs6XFqJk7HTVbunE%3d>
>>
>
>
>
> --
> Cheers,
> --MarkM
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org <mailto:es-discuss@mozilla.org>
>
https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fmail.mozilla.org%2flistinfo%2fes-discuss&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Vk9C%2fonHktgLCsW%2f395PrpBWefRcs6XFqJk7HTVbunE%3d
<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fmail.mozilla.org%2flistinfo%2fes-discuss&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Vk9C%2fonHktgLCsW%2f395PrpBWefRcs6XFqJk7HTVbunE%3d>
>
--
Isiah Meadows
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org <mailto:es-discuss@mozilla.org>
https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fmail.mozilla.org%2flistinfo%2fes-discuss&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Vk9C%2fonHktgLCsW%2f395PrpBWefRcs6XFqJk7HTVbunE%3d
<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fmail.mozilla.org%2flistinfo%2fes-discuss&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Vk9C%2fonHktgLCsW%2f395PrpBWefRcs6XFqJk7HTVbunE%3d>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org <mailto:es-discuss@mozilla.org>
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org <mailto:es-discuss@mozilla.org>
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss