0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00
ghost/core/frontend
Hannah Wolfe fbc23459fc
Added full SafeString handling to match helper
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
2021-10-14 16:29:41 +01:00
..
apps Fixed amp not rendering content 2021-10-05 12:27:31 +01:00
helpers Added full SafeString handling to match helper 2021-10-14 16:29:41 +01:00
meta Fixed missing renames getExcerpt -> generateExcerpt 2021-07-02 09:44:18 +01:00
services Added JSDocs to bootstrap's init method 2021-10-14 05:55:49 +13:00
views Updated unsubscribe.hbs (#13365) 2021-10-04 12:18:42 +01:00