Data-driven Clusters v4.1 page (11 clusters from Google Sheet)#720
Data-driven Clusters v4.1 page (11 clusters from Google Sheet)#720richarddushime merged 13 commits intomasterfrom
Conversation
Replace the 7 hardcoded cluster markdown files with a data-driven approach that reads from a generated JSON file (clusters_v4.json). The data originates from the FORRT Clusters v4.1 Google Doc and is parsed into a Google Sheet, then exported as JSON for Hugo to consume at build time. Key changes: - New script (parse_clusters_to_sheet.py) that parses the GDoc, resolves DOIs via doi.org for clean APA references + BibTeX, writes to Google Sheet, and exports JSON for Hugo - New Hugo shortcode (clusters_display.html) renders all clusters with sidebar navigation, tabbed sub-clusters, and full-text search - Updated intro text to reflect 11 clusters (was 9) - Deactivated old cluster1-7.md files (replaced by data-driven rendering) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
👍 All image files/references (if any) are in webp format, in line with our policy. |
|
✅ Staging Deployment Status This PR has been successfully deployed to staging as part of an aggregated deployment. Deployed at: 2026-03-25 22:33:11 UTC The staging site shows the combined state of all compatible open PRs. |
The clusters page now has its own full-text search that covers clusters, sub-clusters, and all references. The site-wide Academic search is redundant and has been disabled. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
📝 Spell Check ResultsFound 6 potential spelling issue(s) when checking 30 changed file(s): 📄
|
| Line | Issue |
|---|---|
| 80 | tabEl ==> table |
| 81 | tabEl ==> table |
| 83 | tabEl ==> table |
| 85 | tabEl ==> table |
| 436 | tabEl ==> table |
| 437 | tabEl ==> table |
ℹ️ How to address these issues:
- Fix the typo: If it's a genuine typo, please correct it.
- Add to whitelist: If it's a valid word (e.g., a name, technical term), add it to
.codespell-ignore.txt - False positive: If this is a false positive, please report it in the PR comments.
🤖 This check was performed by codespell
|
we now have 2 searches box funcs meanwhile i will continue enhancing it , would be good if you can check it asap |
|
Thanks @richarddushime! I agree that we need to get rid of one of the searches. There is also now too much going on in this area - too many boxes. Maybe the syllabus does not need to be in a box? Can we also remove the outdated figure and really condense the text? I think the following is all we need above the clusters - unless @flavioazevedo disagrees (but Richard, please make the change so that he can look at a complete new draft)
|
|
I am from making other adjustements I would like also clarification about the below
Do you mean all the contents before the forrt syllabus and the figure all removed and replaced by this paragraph ? About the figure i think its good to keep having it as we wait for the updated one (may be flavio can push for its design quickly ?) |
|
Additionally here is something i am proposing in the latest commit I Introduces dedicated, indexable URLs for each FORRT cluster (/clusters/cluster-N/) alongside the existing taxonomy hub (/clusters/), so each cluster is a first-class page for search and sharing. The reason i Added this is that Clusters in sitemap are only covered by 1 url (the main cluster page) or we can have each cluster indexable by : you can check the preview by https://staging.forrt.org/clusters/cluster- [ |
|
Thanks Richard! The individual pages are great! Yes, please remove all text and the figure. Let's focus on having an accurate website. I don't see why we need this rather complex figure if we have the same information right below (in the sidebar) as readers generally want to get to the point ... so I would personally always hide it behind a details tag, or an about page if we want to talk more about the process - but that can be discussed once we have an updated figure. Showing inconsistent data is unnecesssary, unprofessional and confusing. |
|
And one issue with the separate pages: the search no longer works across pages. I am ok with that if we rename it to "search this cluster" - but ideally I think I'd prefer to have a search of all clusters. What do you think? |
I saw that issue but i left it pending because i was waiting for your validation first of the new Design, |
That sounds a bit difficult to me - doesn't that then require anchors on each paragraph that you can link to from another page? But great if you can implement it! |
Replace verbose multi-paragraph intro with a compact two-column layout (text left, clickable thumbnail right) and remove syllabus section. Adds lightbox overlay with magnifying glass hint for discoverability. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Sub-cluster tabs in fixed 3-column grid with fixed height and centered text - Remove reference counts from tabs - Full-width layout for clusters display section - Darker background on inactive tabs - "Update pending" badge on clusters diagram Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…av behavior - Remove ~145 lines of dead .clusters-cluster-subpage CSS and ~65 lines of dead JS (element never exists in DOM) - Remove unused list.html template and .clusters-title-toolbar CSS - Extract duplicated color arrays to shared partial (colors.html) - Remove duplicate intro text from _index.md (was inconsistent with intro.html) - Fix sub-cluster nav on individual pages to use in-page anchors for the active cluster, aligning scroll behavior with the hub page - Fix redundant .toLowerCase() in search - Add min-height on .cluster-tab-content to keep footer below fold when viewing short sub-clusters Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@richarddushime thanks for the work on this today (and before). I did the final cleanups ... should be good to go. |
|
i think what s remaining is documenting the process of how its generated up to rendering pages in the website |
TBF as Enhancement |

Summary
Replaces the 7 hardcoded cluster pages (v3) with a fully data-driven approach powered by the FORRT Clusters v4.1 Google Doc and a structured Google Sheet.
What changed
scripts/parse_clusters_to_sheet.py) that:data/clusters_v4.jsonfor Hugo to consume at build timelayouts/shortcodes/clusters_display.html) that renders all clusters from the JSON data with:<i>for italics) preserved from doi.orgcluster1.md–cluster7.md(setactive = false)Data pipeline
The script supports
--dry-run,--skip-doi,--json-only, and--export-jsonflags. DOI lookups are cached inscripts/doi_cache.json(gitignored) for fast reruns.Screenshots
The page preserves the established tab-based UI for sub-clusters while adding sidebar navigation and full-text search. Each cluster section has an alternating pastel background color.
Test plan
python3 scripts/parse_clusters_to_sheet.py --dry-runto verify parsing (expect 11 clusters, ~93 sub-clusters, ~1297 publications)hugo serverand verify/clusters/renders correctly🤖 Generated with Claude Code