3 ms·
Template Literal Revision [1] is a welcome change, but still falls way short, as there's still no way to easily include the backtick itself inside raw text. I
by xamuel 9y ago
Template Literal Revision [1] is a welcome change, but still falls way short, as there's still no way to easily include the backtick itself inside raw text.
I wish ES would adopt python-style triple-quotes, so you could do things like:
String.raw```Look, this is a backtick: "`"```
(The inability to do this is a pain point when you want to embed a language in ES and that language itself makes use of backticks.)
[1] http://2ality.com/2016/09/template-literal-revision.html http://2ality.com/2016/09/template-literal-revision.html
- mistercow 9y agoCan't you just do `Look, this is a backtick: ${'`'}`? Or are you not counting that as "easy" because it's horrible.
- xamuel 9y agoSuppose I wanted to embed your solution itself into a template literal. It would look like this: `${'`'}Look, this is a backtick: \${'${'`'}'}${'`'}`
- Arnavion 9y agoRust has a nice solution to this. r"foo" == "foo" // r" means the literal ends at " r#""foo""# == "\"foo\"" // r#" means the literal ends at "# r##"r#""foo""#"## == "r#\"\"foo\"\"#" // r##" means the literal ends at "## and so on. Basically you add as many # outside as necessary to distinguish the end of the literal (double-quote followed by some #) from any such sequence in the middle of the literal.
- analogic 9y agojust blue my mind. is there a babel plugin that will let me do this?
- sterlingfs 9y agoWeb components are the answer for creating composable templates.
- johnhenry 9y agoWon't this cause issues if i ever want to embed "```"?
- mistercow 9y agoPretty much. This is why some languages offer the ability to define an arbitrary quote end token.
- tehno 9y agoEncoding backtick as unicode escape is one easy enough and "clean" way: `foo \u0060bar\u0060`
- GroSacASacs 9y agoyou can escape backticks with \