<div dir="ltr">again, Function **is** better and different than eval, but I see this conversation is bringing nothing so I'll just stop explaining.<div><br></div><div>Regards</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 14, 2015 at 3:47 PM, Thomas <span dir="ltr"><<a href="mailto:thomasjamesfoster@bigpond.com" target="_blank">thomasjamesfoster@bigpond.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>Doesn't the code in that gist create functions at runtime from strings? If so that's not any better than eval. </div><div><div class="h5"><div><br></div><div>On 14 Sep 2015, at 8:50 PM, Andrea Giammarchi <<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">sorry, early send (I think it was a ctrl+return ? ) ... I was saying ..<div><br></div><div>without using eval and already discussed months ago:</div><div><a href="https://gist.github.com/WebReflection/8f227532143e63649804" target="_blank">https://gist.github.com/WebReflection/8f227532143e63649804</a><br></div><div><br></div><div>it's based on the glorious `with` statement and it works like a charm</div><div><br></div><div>Regards</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 14, 2015 at 11:49 AM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">without using eval, discussed already months ago<div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 14, 2015 at 6:03 AM, Thomas <span dir="ltr"><<a href="mailto:thomasjamesfoster@bigpond.com" target="_blank">thomasjamesfoster@bigpond.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>For those interested, this gist better shows what's being discussed: <a href="https://gist.github.com/thomasfoster96/193e7c08aae499f810a1" target="_blank">https://gist.github.com/thomasfoster96/193e7c08aae499f810a1</a></div><div><br></div><div>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).</div><div><br><div>Thomas</div><div><div><div><br></div>On 14 Sep 2015, at 11:04 AM, Ron Buckton <<a href="mailto:Ron.Buckton@microsoft.com" target="_blank">Ron.Buckton@microsoft.com</a>> wrote:<br><br></div></div></div><div><div><blockquote type="cite"><div>






<div>
<div>
<div style="font-family:Calibri,sans-serif;font-size:11pt">This is theoretically possible:<br>
<br>
```<br>
let t = $template`<br>
  ${$item.permalink}<br>
  ${$each($item.comments)`<br>
    ${$parent.permalink}<br>
    ${$if($item.title)`<br>
      ${$parent.permalink}<br>
    `}<br>
  `}<br>
`;<br>
let s = t(data);<br>
```<br>
<br>
...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.<br>
<br>
Ron</div>
</div>
<div dir="ltr">
<hr>
<span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">From:
</span><span style="font-family:Calibri,sans-serif;font-size:11pt"><a href="mailto:isiahmeadows@gmail.com" target="_blank">Isiah Meadows</a></span><br>
<span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">Sent:
</span><span style="font-family:Calibri,sans-serif;font-size:11pt">‎9/‎13/‎2015 4:15 PM</span><br>
<span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">To:
</span><span style="font-family:Calibri,sans-serif;font-size:11pt"><a href="mailto:erights@google.com" target="_blank">Mark S. Miller</a></span><br>
<span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">Cc:
</span><span style="font-family:Calibri,sans-serif;font-size:11pt"><a href="mailto:rtm@gol.com" target="_blank">Bob Myers</a>;
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss</a></span><br>
<span style="font-family:Calibri,sans-serif;font-size:11pt;font-weight:bold">Subject:
</span><span style="font-family:Calibri,sans-serif;font-size:11pt">Re: Template strings as a template language.</span><br>
<br>
</div>
</div>
<font size="2"><span style="font-size:10pt">
<div>On Sun, Sep 13, 2015 at 7:09 PM, Mark S. Miller <<a href="mailto:erights@google.com" target="_blank">erights@google.com</a>> wrote:<br>
><br>
><br>
> On Sun, Sep 13, 2015 at 8:58 AM, Bob Myers <<a href="mailto:rtm@gol.com" target="_blank">rtm@gol.com</a>> wrote:<br>
>><br>
>> Templating languages typically "compile" templates into functions through<br>
>> various lexical transformations.<br>
>><br>
>> Consider a template file foo.tem:<br>
>><br>
>> ```<br>
>> My name is ${<a href="https://na01.safelinks.protection.outlook.com/?url=this.name&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=CY6YpX1n5jLScYGX2W1tIi2ndGlA7WI8ZTJUZjDL2Gw%3d" target="_blank">https://na01.safelinks.protection.outlook.com/?url=this.name&data=01%7c01%7cron.buckton%40microsoft.com%7ce705066eae3849ee21f008d2bc913033%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=CY6YpX1n5jLScYGX2W1tIi2ndGlA7WI8ZTJUZjDL2Gw%3d</a>}.<br>
>> ```<br>
>><br>
>> Lexically transform this into<br>
>><br>
>> ```<br>
>> function foo() {<br>
>>   return `My name is ${<a href="http://this.name" target="_blank">this.name</a>|}.`;<br>
>> }<br>
>><br>
>> Then invoke the template as eg<br>
>><br>
>> ```<br>
>> foo.call({name: 'Bob'})<br>
>> ```<br>
>><br>
>> Having said that, I doubt if ES6 template strings serve as a useful basis<br>
>> for a full-fledged templating system. To take just one basic example, how<br>
>> would one implement the equivalent of `{{#if}}`?<br>
><br>
><br>
> What does `{{#if}}` mean?<br>
><br>
<br>
An example from Handlebars' website (which is likely where he drew the<br>
syntax from):<br>
<br>
```<br>
{{permalink}}<br>
{{#each comments}}<br>
  {{../permalink}}<br>
<br>
  {{#if title}}<br>
    {{../permalink}}<br>
  {{/if}}<br>
{{/each}}<br>
```<br>
<br>
<br>
<br>
>><br>
>><br>
>> Bob<br>
>><br>
>><br>
>> _______________________________________________<br>
>> es-discuss mailing list<br>
>> <a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
>> <a href="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" target="_blank">
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</a><br>
>><br>
><br>
><br>
><br>
> --<br>
>     Cheers,<br>
>     --MarkM<br>
><br>
> _______________________________________________<br>
> es-discuss mailing list<br>
> <a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
> <a href="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" target="_blank">
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</a><br>
><br>
<br>
<br>
<br>
-- <br>
Isiah Meadows<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="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" target="_blank">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</a><br>
</div>
</span></font>


</div></blockquote></div></div><blockquote type="cite"><div><div><div><span>_______________________________________________</span><br><span>es-discuss mailing list</span><br><span><a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a></span><br></div></div><span><a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a></span><br></div></blockquote></div><br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></blockquote></div></div></div></blockquote></div><br></div>