Template strings as a template language.

Thomas thomasjamesfoster at bigpond.com
Sun Sep 13 14:08:17 UTC 2015


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.

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


More information about the es-discuss mailing list