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

Reply via email to