Template strings as a template language.

Mark S. Miller erights at google.com
Sun Sep 13 14:15:49 UTC 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150913/094b5c11/attachment-0001.html>


More information about the es-discuss mailing list