<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>They would be whatever they are in the scope in which the template string is evaluated. </div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">Thomas</div><div><br>On 14 Sep 2015, at 12:15 AM, Mark S. Miller <<a href="mailto:erights@google.com">erights@google.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Sep 13, 2015 at 7:08 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>What I've been doing:</div><div><br></div><div>export const template = ({title, content}) => `template string for ${title}`;</div><div><br></div><div>Or variations thereof. I then import that module wherever I need to use the template and call it as a function.</div></div></blockquote><div><br></div><div>If you were not to call it as a function, where would it get its bindings for title and content?</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><br></div><div>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.</div><div><br></div><div>Thomas</div><div><br></div><div>* 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.</div><div><div class="h5"><div><br>On 13 Sep 2015, at 10:08 PM, Mark S. Miller <<a href="mailto:erights@google.com" target="_blank">erights@google.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Sep 13, 2015 at 2:42 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">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)</blockquote><div><br></div><div>Hi Thomas, could you give a concrete example of the boilerplate you have in mind and what it accomplishes?</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> or use eval after loading a file as a string it's pretty much impossible.<br>
<br>
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?</blockquote><div><br></div><div>I am unaware of any such plans. Could you give an example of what it looks like and what it would accomplish? Thanks.</div><div> </div></div><div><br></div>-- <br><div>    Cheers,<br>    --MarkM</div>
</div></div>
</div></blockquote></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">    Cheers,<br>    --MarkM</div>
</div></div>
</div></blockquote></body></html>