mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 14:03:48 +03:00
fbc23459fc
refs: https://github.com/TryGhost/Team/issues/759 - No matter what, a handlebars helper outputs a string. So if you return true, you'll always get 'true'. - SafeStrings are handlebars's way of passing around a string whilst also maintaining a record of the original value e.g. new SafeString(true) results in {string: true} - We need this for the match helper, so that we know when doing a comparison that we're meant to be comparing against a boolean true, not a string true - Therefore, we need to putput SafeStrings, but also process them when passed in The logic - Figuring out the correct logic here has been a little tricky but essentially: - {{match safestring}} with a single arg, will return true for any truthy value - {{match safestring "=" true}} does a direct comparison with the original value of the safe string, so if it was a boolean true, the match will be true else false - {{match (match something) "=" true}} will therefore work for any level of nesting - this can result in slightly inconsistent results, but feels correct and documentable This is documented extensively through the test cases |
||
---|---|---|
.. | ||
api | ||
frontend | ||
server | ||
shared |