In python, you can do variable string interpolation like this: 

```py
song_context = { "adjective": "funny" }
ella_sings = "my {adjective} valentine".format(**song_context)

```

Here, the `song_context` object formats variables in the `ella_sings` string.

**In ES6 is there a built-in way to do something like this with template literals**? I'm looking for a quick way to explicitly define a substitution space for a given string. Ex:

```js
const song_context = { adjective: "funny" }
const ella_sings = `my ${adjective} valentine`.format(song_context)

```

Context: I know other ways to do this, e.g. use [a template library](https://olado.github.io/doT/index.html) or do [multiple find and replace](https://stackoverflow.com/a/15604206/78202), but am wondering if any portion of ES6 supports this use case out of the box. I skimmed the [template literal part of the ECMAScript 6.0 standard](https://www.ecma-international.org/ecma-262/6.0/#sec-gettemplateobject) and it pretty clearly states `"Let ctx be the running execution context"` but it seems kind of hard to believe they wouldn't provide a way to be *more* explicit about the context when necessary.