Seems a few people have had a negative initial reaction to Svelte thinking that it was using 'proper' Mustache, which is a very restrictive language with some interesting syntax, rather than just using {{ and }} as delimiters around dynamic content and #if/#each blocks.
It might be worth considering an alternative, so that people aren't confused. Not sure what it'd be though
what about $( starting and a ) ending?
h1 $(hello)
<h1>$(hello)</h1>
In Ractive, you allow people to change the delimeters, is it not possible in Svelte too?
If the curly braces were to be changed, my preference would be to use a similarly easy to type character like the first two options below. Presumably the chosen delimiter would need to not be used in any other way so there are no chances of conflicts.
<< hello >>
[[ hello ]]
<% hello %>
FYI Vue uses {{ for binding }} and {{{ for html blobs }}}
I think many people are worried about having conflicts with php style templating using {{....}}.
My confusion was just from using the term "Mustaches" to refer to the braces. Once I realized they were delimiters and didn't refer to the template library of the same name then it became clear. Perhaps just a documentation update is all that is needed to begin with. There are other good points here so I hope the discussion keeps going.
We had trouble with mixing Django templating interpolation ({{ … }}) with AngularJS, so we changed the latter one's to {$ … $}. (Don't ask about why we were mixing in the first place).
It might be reasonable just pointing out in README that it does not use proper Mustache, without
changing anything.
I've just updated the docs to make the relationship to Mustache (i.e., none) more obvious, so I'll close this as it's definitely the lowest friction solution to the problem.
@mrmartineau yep, we could add an option to control delimiters. For simplicity's sake I'm going to file that under YAGNI but it's something we could revisit in future.