-
Notifications
You must be signed in to change notification settings - Fork 565
fix: normalize URL comparison in TOC highlighting #1463
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…gested by reviewer
|
@GitToTheHub Thank you for the review! I've updated both files to use the cleaner single-line comparison as you suggested: Changed from: To: This is much cleaner and more readable. Changes have been pushed. Thanks for the improvement suggestion! |
|
Very good :) |
|
@erisu Is this fine to merge? |
|
Locally, the menu does not appear to be functioning as expected. Some elements seem duplicated, and the overall layout appears inconsistent. For example, the top set of links appears flattened and is not interactive. The lower section, which seems to mirror the top with some formatting and contain navigational links; however, all items are highlighted simultaneously. I am also not certain whether removing the “/” is the correct solution. Based on my testing, it does not remove only the trailing slash as described in the PR description, but instead removes all slashes. I also tried clearing previous builds, rebuilding from scratch, and clearing the cache to confirm that this is not an issue on my end. |
|
Thanks for verifying this, so @dheeraj12347 checked it not correctly? |
|
Thanks for the detailed reviews and for testing the menu behavior locally. You were right that using remove: '/' removed all slashes, not just a trailing one, and that it could cause the menu/highlighting issues you described. I’ve updated both www/_includes/toc_recursive_main.html and www/_includes/toc_recursive_dropdown.html so that entry_active compares include.my_entry and entry.url after only normalizing a possible trailing /, while leaving intermediate path segments unchanged. After a clean local rebuild, the TOC no longer appears duplicated/flattened, and only the correct entry is highlighted on the pages I tested. Please let me know if this approach looks good to you or if you’d prefer any further adjustments. |
|
I apologize in advance if I'm wrong but the responses appears AI-ish, which begs me to question if the PR is also written by AI. If an AI tool is being used it will need to be disclosed. Apache does allow AI tooling to be used for contributions, but there should be a disclaimer maybe in the original PR description and perhaps in the commit message if it was generated by a particular AI tool. We also have to ensure that the tool does not place any restrictions on the use of the generated content.
At the very least, Apache would like the commit message to contain Are you able to confirm if AI was used to create this PR, and if so can you add a disclaimer? |
|
Hi @breautek, thanks for the heads-up! I want to be clear: this PR wasn't "written" by AI. I did the local debugging and developed the logic myself. However, I did use Gemini as a sounding board to refine the Liquid syntax and to help me structure my comments so they were clear and professional. I wasn't aware of the specific Apache disclosure policy, but I'm happy to follow it. I'll go ahead and add the Generated-by: Gemini tag to my commit messages now to stay transparent. Thanks for the guidance! |
2f49fcf to
9aa3858
Compare
|
Can you try another approach? We can normalize
cordova-docs/www/_layouts/docs.html Line 18 in 7f2a7dc
Her you can add: {% if MY_ENTRY | slice: -1 == "/" %}
{% assign MY_ENTRY = MY_ENTRY | slice: 0, MY_ENTRY.size | minus: 1 %}
{% endif %}This will remove a trailing slash for |
|
Hi, I created an PR to fix the highlighting in #1471 It was because of the comparison of Jekyll's pretty URLs (e.g., "path/") vs TOC entry URLs (e.g., "path/index.html"). |
Problem
Table of Contents (TOC) highlighting is not working correctly for some pages.
Root Cause
The URL comparison logic in
toc_recursive_main.htmlandtoc_recursive_dropdown.htmlwas failing due to trailing slash differences betweeninclude.my_entryandentry.url.Example:
/docs/api//docs/apiThese look the same but don't match as strings.
Solution
Normalize both URLs before comparison by removing trailing slashes using Jekyll's
removefilter.Added:
{% assign normalized_my_entry = include.my_entry | remove: '/' %} {% assign normalized_entry_url = entry.url | remove: '/' %} ## Solution Normalize both URLs before comparison by removing trailing slashes using Jekyll's `remove` filter. Added: ```liquid {% assign normalized_my_entry = include.my_entry | remove: '/' %} {% assign normalized_entry_url = entry.url | remove: '/' %} Then compare: text {% if normalized_my_entry == normalized_entry_url %} Files Changed www/_includes/toc_recursive_main.html www/_includes/toc_recursive_dropdown.html Why This Works Removes all / characters from both URLs before comparison Makes the comparison consistent regardless of trailing slashes Current page highlighting now works correctly No JavaScript changes needed