Template strings as a template language.

Alexander Jones alex at weej.com
Sun Sep 13 14:24:04 UTC 2015


Same place as `eval`. Arguably both should have the option of explicitly
passing a scope, for extra strictness, like Python's.

On 13 September 2015 at 15:15, Mark S. Miller <erights at google.com> wrote:

>
>
> On Sun, Sep 13, 2015 at 7:08 AM, Thomas <thomasjamesfoster at bigpond.com>
> wrote:
>
>> What I've been doing:
>>
>> export const template = ({title, content}) => `template string for
>> ${title}`;
>>
>> Or variations thereof. I then import that module wherever I need to use
>> the template and call it as a function.
>>
>
> If you were not to call it as a function, where would it get its bindings
> for title and content?
>
>
>
>>
>> Using eval and having the template string as a normal string (so, read
>> the template from file as a string, wrap it with back ticks, and then pass
>> it to eval) at the moment is risky since it's possible for input to
>> prematurely end the template string and do nasty stuff*. Ideally there
>> would be a variant of eval where the string to be evaluated must be a
>> template string expression.
>>
>> Thomas
>>
>> * I'm aware that someone could still put something inside a template
>> string and do nasty stuff, but I'm not sure if that's a easily solved
>> problem.
>>
>> On 13 Sep 2015, at 10:08 PM, Mark S. Miller <erights at google.com> wrote:
>>
>> On Sun, Sep 13, 2015 at 2:42 AM, Thomas <thomasjamesfoster at bigpond.com>
>> wrote:
>>
>>> I'd really like to use Template strings as a templating language, but
>>> unless I include a lot of boilerplate code (export a template string
>>> wrapped in a function from a file)
>>
>>
>> Hi Thomas, could you give a concrete example of the boilerplate you have
>> in mind and what it accomplishes?
>>
>>
>>
>>> or use eval after loading a file as a string it's pretty much impossible.
>>>
>>> Is there a simpler way to be doing this? Or any plans for a type of eval
>>> that only executes it's argument as a template string?
>>
>>
>> I am unaware of any such plans. Could you give an example of what it
>> looks like and what it would accomplish? Thanks.
>>
>>
>> --
>>     Cheers,
>>     --MarkM
>>
>>
>
>
> --
>     Cheers,
>     --MarkM
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150913/e521500d/attachment.html>


More information about the es-discuss mailing list