Fix: Ensure Unique Tab IDs for Non-Latin Titles #8616
Closed
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.
Fix: Ensure Unique Tab IDs for Non-Latin Titles
This PR fixes an issue that occurs when using non-Latin titles for tabs without specifying a custom id
Issue:
When using non-Latin titles for tabs without specifying a custom id, the generated HTML assigns duplicate id values due to
String#parameterizereturning an empty string for non-Latin characters.Example:
Generates:
Since both tabs receive the same id, tab navigation breaks.
Cause
string.parameterize ignores non-Latin characters and returns an empty string:
Fix:
If parameterize returns an empty string, we now generate a random string using
SecureRandom.hex.first(8)to ensure uniqueness. A new instance variable,@fragments, tracks generated IDs to maintain reference consistency.Changes
• Ensured unique tab id generation when parameterize results in an empty string.
• Introduced @fragments to store generated IDs.
• Added a test case to verify correctness.