Using safe string for slug attribute in navigation helper; Adding base64 slug #10267
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Trying to resolve #10258.
Changed:
{{slug}}
attribute now uses core.server.lib.security.string.safe.New:
{{slug_base64}}
attribute that generates utf-8 base64 of the navigation label.Cultural invariant base64 is probably a better solution due to string.safe uses unidecode which provided a hilarious usage example:
The string in question should be romanized as
nikanchigaiganaika, saidokakuninshitekudasai. saiyomikomishitekudasai.
(well I admit algorithmic CJK romanization is hard.) But since that will break backwards compatibility (?) I made a separate attribute instead.Unquestionably, customizable slug is the ultimate solution - but that went beyond my abilities (and requires a change in Ghost-Admin as well).
I'm definitely new to javascript (and handlebars) - this PR will likely to fail CI tests. Corrections are greatly appreciated!