Repository navigation
Move forrt.org to the Doors design (draft until launch) - #943
Draft
LukasWallrich wants to merge 102 commits into
Draft
LukasWallrich wants to merge 102 commits into
LukasWallrich wants to merge 102 commits into
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Contributor
📝 Spell Check ResultsFound 18 potential spelling issue(s) when checking 304 changed file(s): 📄
|
| Line | Issue |
|---|---|
| 614 | nIn ==> inn, min, bin, nine |
| 614 | nWe ==> new |
| 614 | nWe ==> new |
| 614 | nIn ==> inn, min, bin, nine |
| 614 | nWe ==> new |
| 614 | nWe ==> new |
| 614 | nWe ==> new |
| 614 | nWe ==> new |
📄 content/reversals/reversals.md
| Line | Issue |
|---|---|
| 2206 | acn ==> can, acne |
📄 layouts/glossary/list.html
| Line | Issue |
|---|---|
| 8 | passt ==> past, passed |
📄 layouts/partials/glossary_feedback_form.html
| Line | Issue |
|---|---|
| 27 | oder ==> order, older, coder, odder, odor, over, doer |
| 27 | oder ==> order, older, coder, odder, odor, over, doer |
| 34 | oder ==> order, older, coder, odder, odor, over, doer |
| 59 | bu ==> by, be, but, bug, bun, bud, buy, bum |
📄 static/js/clusters-page.js
| Line | Issue |
|---|---|
| 79 | tabEl ==> table |
| 80 | tabEl ==> table |
| 82 | tabEl ==> table |
| 84 | 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
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
#951) * Add Doors foundations: colour tokens, self-hosted fonts and the castle Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review of the foundations Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Draw the Doors header and footer from the real menus Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw the Doors header and footer: keep links inside a subfolder Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Fix the shell review items and add the deployed-preview check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tighten the deployed-preview check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…the workflow (#959) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Close the remaining review items on the Doors checks and castle Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Cover query and fragment after a climbing link; fix workflow doc links Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Load the newsletter form on a click, restyled in Doors colours EmailOctopus's embed is a heavy script that every carrying page loaded up front. It now loads when a visitor clicks to subscribe, on all six pages through one partial. check_preview.py no longer tolerates the Google Fonts request the embed used to make on page load: any embed or font request before a click fails, and a new step opens the form and checks it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tighten the newsletter check and hide the button without JavaScript Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ble pages (#969) * Rebuild the resources directory at real size, closing #868 /resources/ was one 3.85 MB document with 28,680 elements. It now carries 24 cards as HTML per page, with crawlable numbered pages, a small data file for filters and a fuller one for search on first use, and keeps the visitor's choice in the address so that the home page's topics can link into it. compare_builds.py learns globs, because the number of pages follows the collection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review findings on the resources directory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…red pause (#970) * Load the newsletter form on a click, restyled in Doors colours EmailOctopus's embed is a heavy script that every carrying page loaded up front. It now loads when a visitor clicks to subscribe, on all six pages through one partial. check_preview.py no longer tolerates the Google Fonts request the embed used to make on page load: any embed or font request before a click fails, and a new step opens the form and checks it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Rebuild the resources directory at real size, closing #868 /resources/ was one 3.85 MB document with 28,680 elements. It now carries 24 cards as HTML per page, with crawlable numbered pages, a small data file for filters and a fuller one for search on first use, and keeps the visitor's choice in the address so that the home page's topics can link into it. compare_builds.py learns globs, because the number of pages follows the collection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tighten the newsletter check and hide the button without JavaScript Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * WIP home * WIP home 2 * Address review findings on the resources directory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Start-align the quotes' pause button Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Remove widgets only the old home page used Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review findings on the home page Honours doors.castle = false and a section's active = false, stops a mouse click from freezing the quotes, and drops aria-pressed, which contradicted the changing label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…extension (#971) * Load the newsletter form on a click, restyled in Doors colours EmailOctopus's embed is a heavy script that every carrying page loaded up front. It now loads when a visitor clicks to subscribe, on all six pages through one partial. check_preview.py no longer tolerates the Google Fonts request the embed used to make on page load: any embed or font request before a click fails, and a new step opens the form and checks it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Rebuild the resources directory at real size, closing #868 /resources/ was one 3.85 MB document with 28,680 elements. It now carries 24 cards as HTML per page, with crawlable numbered pages, a small data file for filters and a fuller one for search on first use, and keeps the visitor's choice in the address so that the home page's topics can link into it. compare_builds.py learns globs, because the number of pages follows the collection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tighten the newsletter check and hide the button without JavaScript Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * WIP home * WIP home 2 * Address review findings on the resources directory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Redraw the Replication Hub on real content Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Start-align the quotes' pause button Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Remove widgets only the old home page used Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review findings on the home page Honours doors.castle = false and a section's active = false, stops a mouse click from freezing the quotes, and drops aria-pressed, which contradicted the changing label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Load the newsletter form on a click, restyled in Doors colours EmailOctopus's embed is a heavy script that every carrying page loaded up front. It now loads when a visitor clicks to subscribe, on all six pages through one partial. check_preview.py no longer tolerates the Google Fonts request the embed used to make on page load: any embed or font request before a click fails, and a new step opens the form and checks it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Rebuild the resources directory at real size, closing #868 /resources/ was one 3.85 MB document with 28,680 elements. It now carries 24 cards as HTML per page, with crawlable numbered pages, a small data file for filters and a fuller one for search on first use, and keeps the visitor's choice in the address so that the home page's topics can link into it. compare_builds.py learns globs, because the number of pages follows the collection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tighten the newsletter check and hide the button without JavaScript Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * WIP home * WIP home 2 * Address review findings on the resources directory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Redraw the Replication Hub on real content Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw articles and plain pages in the Doors reading layout Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Serve a small JUST-OS icon and report page weights against the budgets Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Raise small footer text, wrap long quote words, check breakpoints and enlarged text Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Start-align the quotes' pause button Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Remove widgets only the old home page used Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review findings on the home page Honours doors.castle = false and a section's active = false, stops a mouse click from freezing the quotes, and drops aria-pressed, which contradicted the changing label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep the Steering Committee page on the theme's markup until Phase 3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Close the independent review's findings on Phase 2 Underlines the directory's prose links, names author links, narrows the article column to keep lines under 80 characters, stops the theme's rem sizes shrinking article text on phones, and scrolls a long contents card. check_design.py now sweeps every article page, because the one sample missed most of this. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review findings on the article fixes Keeps large inline button text, tells apart two links with one icon, makes the author's role plain text, and shares a wrapped address's characters across its lines in the line-length audit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…982) The phone menu's rule on a bare .primary class also hid a content button, so it now names the header's nav. Two sample pages ran wider than the screen. The design check now looks for hidden buttons and sweeps the sample pages for overflow. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Close the empty space beside article text Text, images and the side card now sit in one centred block, with the text at 20 px so that a narrower column still fills. The design check fails on a wide gap beside the text, and its sample sweep also looks for hidden buttons. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Let the design check's sample sweep survive a redirecting page /glossary/ redirects on load, and reading it during that navigation crashed the check. Also measures the gap beside article text on pages with no direct paragraph, and limits the hidden-button exception to Bootstrap utilities that are hiding the button at the current width. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Since #930 the description quotes the stats table, whose link text differs on this branch. The comparison failed on this one page after main was merged. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Take Bootstrap, jQuery and Font Awesome off the designed pages Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Close the review's findings on the foundation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Draw section pages on the reading layout Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Allow the manuscript page's modified date to move Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
#991) * Draw the remaining templates, and take the theme's look off every page Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Drop the manuscript page's highlighter, now that it has no code block, and allow the renamed image copies Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Lay out the previous and next links, and drop a line about a removed menu Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Close search with one press of Escape Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Count letters, not combining marks, in the line length check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Close the review bot's findings on the Phase 3 templates Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep clusters centred, and close the second round of review findings Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Fix resource pagination metadata and social image formats * Tighten social metadata comparisons and review regressions * Drop the mini-site Hugo test; checks 12 and 13 verify the same metadata on every real build Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Restore the GEP link and document the daily chart cutoff * Clarify provisional chart data and narrow the alias regression * Record the approved legacy GEP redirect in Doors comparison * Drop the mini-site test for the GEP alias It built a Hugo site inside the unit-test suite to check one line of standard front matter. The alias was verified in this PR's build, where the comparison listed about/charity/gep/index.html as the one added address. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…m on demand (#1055) * Lighten the clusters pages: load publication data and the full diagram on demand The clusters pages inlined all 820 publication cards (about 2 MB) and loaded the 12,695-pixel diagram (960 KB) on every visit, as both thumbnail and lightbox image. The cards are now a fingerprinted JSON file that featured-resources.js fetches when a visitor points at, touches or tabs to a reference or save control, or opens the reading list. The hero shows a 720-pixel thumbnail, and the lightbox loads the diagram when first opened. The diagram is now a 2,400-pixel WebP (550 KB) that Hugo can decode, so the share-image conversion can process it; the full-size original stays in the picture archive. check_seo_html.py gains check 12: no page inlines more than 200 KB in one script. Fixes #993 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Retry a failed card fetch, show when a reference is loading, and wait for cards before export - A failed fetch of the publication cards no longer sticks; the next interaction retries. - A reference clicked before the cards arrive is marked busy, and only the latest one opens. - Export BibTeX and Download PDF wait for the cards. - check_seo_html.py counts a script left open at the end of a file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep a loading reference at full contrast; the progress cursor and aria-busy mark it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Allow the clusters pages' card file and share-image size in the Doors comparison Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Let a share image kept at the same address change size, instead of exempting /clusters/ compare_heads now drops og:image:width and og:image:height when a page's og:image is unchanged, so /clusters/ keeps every other SEO and structured-data comparison. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…nt clusters (#1061) * Replace the outdated clusters diagram with a map drawn from the current clusters /clusters/ showed a diagram of an earlier version of the clusters. It now has a wheel with one segment per cluster and a legend, both built from data/clusters_v4.json, so they change with the data. Every segment and legend entry links to its cluster. The legend carries the links for keyboard and screen-reader users; the wheel repeats them for pointer users. Pointing at either highlights the cluster in both. The page's share image is now a render of the map, regenerated with scripts/render_clusters_share_image.py. The intro's cluster count also comes from the data. The lightbox, thumbnail and their styles are removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Make the wheel pointer-only, underline legend names, and guard missing cluster data - Wheel segments are no longer links inside the aria-hidden SVG; a click follows the segment's data-href, and the legend stays the accessible route. - Legend names carry a light underline at rest. - The map and the intro count skip cleanly if data/clusters_v4.json is missing. - AGENTS.md names the map's real inputs; the render script lists its dependencies and keeps the page's heading style in the share image (re-rendered). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… staging) (#1064) * Use only main's artifacts for the Doors preview, as deploys now do Refs #960 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use only main's data and announcement artifacts for deploys and staging deploy.yaml and staging-aggregate.yaml took the newest data-artifact from any branch, so a test dispatch of data-processing.yml from a branch could feed the live site. The artifact downloads now filter on branch main, the missing-artifact fallback always regenerates from main, and create_announcements.yml compares against main's previous announcements. The workflows README says how to try a branch's artifact instead. Fixes #960 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Let a manual staging run use a named branch's data artifact staging-aggregate.yaml gains a data_branch dispatch input. Left empty, staging uses main's artifact like production; set, it stages that branch's data, so a change to data-processing.yml can still be tried on staging. Production deploys stay main-only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Document the data_branch staging input Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Make the missing-artifact fallback fire, and track only the run it dispatches The initial data downloads used if_no_artifact_found: warn, which succeeds, so the fallback (which runs on failure) never did; with the main-only filter that could leave a deploy without data. They now fail, with continue-on-error, so the fallback dispatches data-processing on main. The fallback then only follows runs created after its own dispatch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Fail a staging run that names a branch whose data artifact is missing With data_branch set, staging used to fall back to committed or main data, which would misrepresent a pipeline test. It now stops with an error instead; the main fallback is kept for default runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Compare announcements with the same branch's previous run, and clarify the fallback create_announcements.yml's change detection now looks up the previous artifact from its own branch (main for scheduled runs), so a branch test run isn't skipped as unchanged against main's hash. Deploys still take only main's announcements. The README says that only a missing data artifact is regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Leave create_announcements.yml to #1030's PR, and stage a branch's preview artifact #1059 (#1030) renames branch-run artifacts to data-artifact-preview and announcements-artifact-preview and reworks create_announcements.yml, so this PR no longer touches that file. A staging run with data_branch now downloads that branch's data-artifact-preview. Merge #1059 first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pass data_branch through env, follow exactly the dispatched run, clarify the README - The staging error step no longer interpolates the data_branch input into its shell script; it reads it from an environment variable. - The missing-artifact fallback notes the newest data-processing run before it dispatches, then follows the first run newer than that. - The README says staging can opt in to a branch's data artifact only, never to branch announcement artifacts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Treat data_branch=main as the default, and say a missing branch artifact stops staging Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Fail the fallback step when GitHub rejects the data-processing dispatch curl -f turns an HTTP error from the dispatch API into a failure, so the existing error branch runs instead of waiting for a run that was never created. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say in the README that data_branch: main behaves like the default Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Add shared citation popovers and a site-wide bibliography * Flag unresolved glossary citations during the Hugo build * Handle corporate et-al and comma-free glossary citations * Drop the build-time glossary citation report, and don't repeat the source link - The glossary template no longer scans every definition for unmatched citations on each build; it printed 219 warnings for issues in generated content, which would hide real warnings. The browser matcher still links only certain matches. - The popover offers 'Open source' only when the reference has no link of its own, so a DOI isn't shown twice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep authors' wording when adding citations; add a bare cite form The pilot conversions had reworded sentences to fit the shortcode (for example '(e.g. Robertson, 2020; Pownall et al., 2020)' became 'as discussed by Pownall et al. (2020) and Robertson (2020)'), renamed a heading and respelled a word. cite now has bare="true", which renders 'Author, Year' inside brackets the author wrote, so each converted sentence reads exactly as before. The checklist post (a reference listing only) and the Gilad Feldman interview (quoted speech) are left unconverted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Leave citations unconverted where the shortcode would change their wording 'Henrich, Heine, & Norenzayan, 2010' and 'Bahlai, et al., 2019' would render as 'Henrich et al.' and 'Bahlai et al.', so they stay plain text. Trailing spaces go from the edited lines, and the author's 'pre-selected' joins the spelling allow-list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Add explicit glossary links and build-time English term index * Show glossary definitions through the shared popover * Fix touch navigation and keyboard glossary dismissal * Preserve original text around glossary markup * Keep glossary summaries whole after abbreviations and drop stray bold markers Summaries ended mid-parenthesis at 'e.g.' or 'et al.' on 11 terms, and three showed literal '**'. The popover title is now a paragraph, so it no longer adds a heading to the page outline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Drop the spacer line breaks old pages put between blocks Pages written for the previous theme put <br> on its own line between blocks to add space. In Doors these only open gaps: about 100px above the first heading on Open Science in Developing Countries and 1,668px over the length of Reversals. 52 pages have them; none sits between two pieces of inline text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep line breaks that clear floats Awards uses <br style="clear: both"> between sections to keep its right-aligned logos apart; those stay. Spotted by Cubic on #1069. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Put the side card left of the text and set prose at 18px Reading pages centred a 580px column with a 300px card on its right, at 20px type. On a desktop the side card (contents, date, term list, profile) now sits in a 220px column to the left of a 640px text column, and the pair is centred, so spare width goes to the outer margins. Prose is 18px/1.6 with paragraphs capped at 560px (about 70 characters); pictures, tables and embeds use the full column. Headings scale down to match. From 1240px, pages with call-outs add a 260px notes column on the right, and their contents card now stays in view while scrolling. Below that, notes stay in the text. The contents card comes first in the page so keyboard order matches. Chosen by Lukas from four options mocked up with GPT-6.1 Sol. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep lines under 80 characters, and fix the card column and design check - Paragraphs keep the 28.4em measure, so lines stay under the 80 characters check_design.py allows; at 18px that is 511px. Plain and reference lists keep to it plus their indent. Card grids, wide pages and inline images in text are no longer capped (Contributors' list had shrunk to 560px). - Only a layout that has a side card gets the left column, so a page with call-outs but no card has no empty column. - check_design.py: call-outs sit beside the text from 1240px and in it below, where the card may now sit beside the text; the card gap is measured on whichever side the card sits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Put the profile, resource and term-list cards first in the page They now sit left of the text on a desktop, so keyboard order should reach them first, as it does the contents card. On phones they still fall after the text. Spotted by Cubic on #1070. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…1080) * Accept 'Career / Technical' in the resources education-level filter The FORRT Database 2.0 sheet's Education Level values are being changed from 'Career /Technical' to 'Career / Technical' (together with the resource submission form option). Map both spellings to the Career / Technical filter group so no resource falls under Other in between. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Map the sheet's corrected 'Assessment' material type to Activity The FORRT Database 2.0 sheet now spells this material type 'Assessment'; the filter still listed the old 'asssessment', so those resources would fall under Other once the data run rebuilds the curated pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Allow the CV page's new title in the build comparison Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say when to drop the CV allow-list entry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Apply the content-review decisions to hand-written pages Wording, dates, names and references across the About, Teams, Nexus, Replication Hub, Publications and related pages, as decided in the pre-launch content review. /about/ now redirects through an alias instead of rendering a list page; the Welcome card can name its button. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review: fix empty breadcrumb links and small wording points A section that is not rendered (About, Glossary) has no permalink, so the article and glossary trails linked it with an empty href. They now fall back to the section path, which serves a redirect. check_seo_html.py gains check 17 for empty breadcrumb links. Also: split the accessible-feedback post's authors so profiles link, APS name, Nexus list order and closing parenthesis, Welcome wording, and "Open Science-related". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Correct the assessment type value on the resources page Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add the article before the APS name Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep the misspelt assessment value until the database is corrected Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Restore the resources-page wording lost in the merge Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Pass the build comparison and design checks Keep the About step in breadcrumb data through a breadcrumb_url param, so the About pages match main. Allow-list the /about/ list paths that the redirect removes and the pages whose titles or descriptions the content review changed, each with its reason. Restore the JUST-OS reference to its short form: the full author list runs past the design check's line limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Say when to drop the content-review allow-list entries Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * List the About pager paths exactly in the allow-list Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Render Markdown in glossary term titles and related terms
Term titles in the A–Z list, breadcrumb and heading now go through
markdownify, so 'Research Contribution Metric (*p*)' shows an italic p.
The page <title>, og:title and JSON-LD get the plain-text form.
Related terms drop '*' and '\' before building the link slug and render
their Markdown, so '*P*\-hacking' links to p-hacking and shows italic.
check_seo_html.py gains check 17, which fails if a glossary page's
<title> or <h1> shows paired asterisks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Number the glossary title check 18 and keep it apart from the cluster title check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Use plain glossary titles in JSON-LD and ignore intraword asterisks in check 18
A shared functions/plain_title partial now feeds <title>, og:title, the
DefinedTerm name and collection ListItem names, so none of them shows
'(*p*)'. Check 18 no longer treats asterisks inside words
('G*Power and P*Hack') as a Markdown pair.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Keep glossary link titles separate from titles and document check 18
plain_title now takes the text to clean, so the breadcrumb and ListItem
names keep .LinkTitle while <title> and the DefinedTerm name use .Title.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Allow the plain-text titles of the five Research Contribution Metric pages
compare_builds.py flags any SEO tag change. These five pages' <title>,
og:title and JSON-LD name now read '(p)' instead of '(*p*)', which is the
intended effect of rendering glossary title Markdown.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Also allow the Arabic page's older slug used by the committed content
CI builds with main's data artifact (slug without 'p_'); a local build from
the content committed on this branch still produces 'p_مقياس…'.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… width (#1100) * Spread the contributor network's dense middle so it holds up at phone width The force layout from the data run packs people who share many projects into a dense middle, and how dense it is changes with each run: since the 9 November data, the 390 px drawing bunched into a band and failed the design check. The drawing now moves each node outwards by its rank in distance from the middle, measured in each axis's spread, so the middle opens up whatever shape the layout takes. That replaces the per-axis spreading that only the older file had. A narrow drawing also keeps smaller margins and names two projects at rest instead of four. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Place the older file's projects among their people after the spreading Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Redesign the newsletter sign-up as a native form The form is part of the page and posts to EmailOctopus when a visitor presses Subscribe, loading Google reCAPTCHA at that point. Adds an HTML check that no page loads either service on view, and updates the privacy page to describe the new flow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review: newsletter smoke test, timeout, focus and policy date The preview smoke test now checks the native form and confirms an invalid submit contacts no third party. The reCAPTCHA timeout also covers a stalled script load, focus moves to the success message, and the privacy page carries this change's date. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Exercise the newsletter submit handler in the smoke test A valid submit now runs against a stubbed EmailOctopus endpoint, and the invalid-submit assertion counts only requests made after page load. The status message keeps its focus ring for keyboard users. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep the newsletter note at the 15 px minimum and the site date stable The privacy page records the update as lastmod, so its publication date, and with it the home page's updated time, stay unchanged. Its description change is listed in the rebrand comparison's allowed changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Drop the unused double opt-in message from the newsletter form Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show the confirmation message when EmailOctopus reports a pending subscriber The list's double opt-in setting can change in EmailOctopus without a site change, so keep the PENDING branch rather than relying on the setting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Drop the pending-subscriber message again The FORRT list does not use double opt-in, so EmailOctopus never returns PENDING here. This reverts eac9eea. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ails (#1107) Every Doors preview run on 2026-11-11 failed the design and axe checks before they started: `playwright install --with-deps chromium` could not resolve azure.archive.ubuntu.com, exited 100, and never downloaded the browser. The runner image already has Chromium's libraries (apt reports them as current); only extra fonts were missing. Fall back to a plain `playwright install chromium` with a warning. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Move the home page newsletter sign-up under "Take part" The sign-up hung below the news card in the left column, in a narrower block than the card, and left a gap under "Take part". It now sits in the right column under its own "Get the newsletter" heading, so the news column ends on its card and link. When the board is one column it comes last, after the news, on phones too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Put "All news and announcements" inside the news card Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… the rest (#1103) * Show long author lists as three authors and "et al." with a button for the rest References with more than five authors now show the first three, "et al." and a button that reveals the full list in place (aria-expanded). It applies wherever the shared citation partials print a full reference: reference lists and glossary term references, the citation popover, citation cards, the "cite us" blocks and the disciplines citation. Copy buttons copy the complete reference; without JavaScript the full list shows. citation-card can now take a bibliography key. JUST-OS cites OpenScholar through it, from a new Glossary BibTeX entry (Asai2026OpenScholar) taken from Crossref; the bibliography and its reference page are regenerated from the Doc. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Announce copy results, fall back when the Clipboard API fails, and match "Elm, E. von" - Copy buttons keep the visible label "Copy" with a hidden " citation", so their name stays "Copy citation" while the label is a live region that announces "Copied!" or "Copy failed". - copyText falls back to a selection and execCommand when the Clipboard API rejects, as the replaced cite-us and citation-card scripts did. - The author matcher accepts a surname particle after the initials, as in the bibliography's "Elm, E. von". - The FReD fallback citation has the same shape as the generated file: a working DOI link and the note after a blank line, which Copy leaves out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Return focus to the Copy button after the clipboard fallback Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep the author-list button out of page descriptions and the search index The meta description of /about/cite_us/ and the search index's text read "… & FORRT, et al. Show more authors (2019 …". Both now strip the "et al." and the button before taking the plain text, so they match the base build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
#1101) * Draw the /clusters/ map as a mind map like the original illustration The FORRT badge sits in a ring of cluster icons; a line runs from each segment to its cluster's label, and the sub-clusters fan out from the label as pills. Everything is laid out at build time from data/clusters_v4.json, with text wrapped by Source Sans 3's measured advance widths, so it stays correct when the Clusters Doc changes. - Labels sit on an arc round the hub; tall clusters split into columns. - The drawing is aria-hidden with no tab stops; a details list carries every cluster and sub-cluster link. "Open full size" shows it 1:1. - Phones get the hub and coloured cluster labels instead of a thumbnail. - The share image is now a render of the illustration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Check the clusters illustration's links and layout on every build check_seo_html.py check 19: the drawing is aria-hidden, none of its links is a tab stop, and every in-page link in the map reaches an id. check_design.py: text fits its pill, no pill or label overlaps another, and no line runs through a box. Both guard the build-time layout when the Clusters Doc changes. Also drop an unused variable and guard a single-cluster split in map.html. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Address review: full-size dialog width, map counts and phone view checks - The phone dialog shows the drawing at its generated width, not 1400 px. - check_design.py checks that the drawing holds every cluster and sub-cluster in the list, and that phones show the hub and one label per cluster instead of the drawing. - The clusters-map tests sit above unittest.main(), so running the file directly runs them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Leave 4% headroom when wrapping cluster-map text; widen a label before cutting it Chromium on Linux sets Source Sans 3 slightly wider than its advance widths, so three pills that fitted on macOS with under 1 px to spare overflowed in the CI design check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Clusters-map check: report measured and available widths, and the loaded fonts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Set the clusters-map text with geometricPrecision so Linux Chromium does not round glyph widths Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…1083) * Render italics and small caps in publication titles Publication titles from Crossref carry <i>, <em> and <scp> markup and HTML entities, which the cluster cards showed as literal text. A new partial, clusters/rich_text.html, escapes the title and restores only those tags (scp as small caps). featured-resources.js does the same for the reference popup and the reading list, and copies and exports plain text. The popup and reading-list APA references join the D15 italics exception for reference lists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Show italics in publication titles and check cluster pages for literal markup Card, popup and reading-list titles join the D15 exception for reference lists, so journal names and species set in <i> are italic. check_seo_html.py check 17 fails a build whose cluster pages show <i>, <em> or <scp> as text or leave <scp> unrendered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Match <i> and <em> closing tags separately in rich_text.html RE2 has no backreferences, so <i> could close with </em>; the JS pairs them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Catch double-escaped title markup and a build with no cluster pages Check 17 now also matches &lt;i&gt; and fails when it scans no cluster page, as the homepage checks do when there is no homepage. The minimal fixture build in the tests gains a cluster page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * List checks 19 and 20 in the check_seo_html docstring --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Let the newsletter form retry after a stalled reCAPTCHA load A load that stalls now times out on its own and clears the cached promise, and each retry requests reCAPTCHA under its own URL, since the browser otherwise attaches the new script to the stalled request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Only the latest reCAPTCHA attempt clears the cached load A late error from a stalled earlier script no longer wipes out the promise of the retry that replaced it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s tables (#1116) * Point to the clusters share-image renderer from the clusters map and generator AGENTS.md is dropping its generator tables, so the reminder to re-render FORRT_Clusters.webp moves to the files an agent edits when the clusters change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Give the share-image command its build-dir argument in the clusters map note Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Drop the EmailOctopus links from the newsletter front matter data/newsletters.json lists every EmailOctopus issue with its copy on forrt.org, so the front-matter links to EmailOctopus's web versions and the template's de-duplication by month are no longer needed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Key newsletter year colours on the year, not the front matter Each year takes the palette colour at its index modulo 5, which keeps the current colours and stops 2027 reusing 2026's. The front matter drops its colour lines and the empty 2026 entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Add a script that screenshots pages at phone and desktop size for design review
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Screenshot pages that forward themselves by script
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Answer a local build's redirects to forrt.org from the build when screenshotting
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Design round 1: explorer in the site's components, labelled chat tab, tidier text pages
- Cluster and discipline explorer: pill filters as in the resources directory, no shadow
card or full-bleed rules, larger arrows, visible link buttons, counts read 'n of m'
- Chat launcher tab below 1440 px is dark and labelled 'Ask JUST-OS'
- No rule under headings or at the end of old pages
- Previous on the left and Next on the right everywhere, with arrows; glossary titles
in the pager keep English left to right
- Educators' Corner thumbnails uncropped, and above the entry on phones
- JUST-OS team in the site's people cards; sentence-case labels on the explorer and
the AI in Metascience page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Design round 2: link-like resource cards, phone wayfinding, one button style
- Resource cards: titles in link colour and the whole card opens the resource
- Replication Hub: jump links to the four stages on phones
- Author profiles: portrait, role and links under the name on phones
- Glossary: English name on its own line under a translated term, breadcrumb names
the term only, English references left to right on Arabic pages, a link to the
list of terms near the top on phones; Latin text in the site's fonts on Arabic
and Chinese pages
- Publications: the full reference behind 'Cite this'; a smaller chart on phones
- One primary button size and shape in page content; Send and the conference's
recordings button as pills; booklet button clear of its sentence
- Explorer: Expand all on its own line, aligned first rows, larger arrows; the
cluster h1 at the site's weight; introductions at reading measure
- Filters: the pressed state is dark ink everywhere
- Chat page: smaller empty chat on phones, card border instead of shadow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Design round 3: breadcrumbs for top-level pages, one search field, cluster lists as rows
- Top-level pages show their menu section in the trail (Home / Educational Nexus);
crumb_parent names it for a page outside the menu (AI in Metascience)
- Generated cluster lists: alphabetical rows across the page, each with its type
- Disciplines search as the header's pill field with the button inside;
'Open full size' as a secondary pill; sponsor as a small credit on phones
- Primary buttons in content at one size (the older 15 px rule no longer wins);
chat Send and field without their inline square styles
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Design round 3: phone pages lead with what they are for
- Chat page opens with the chat on phones, at about half the screen
- Resources show level, audience and language under 'Open this resource' on phones
- Articles show their date in the byline on phones
- Smaller clusters wheel on phones
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Design round 4: glossary languages as pills, explorer counts under titles on phones
- Term pages list their other languages as the hub's pills, with 'List of terms' beside them
- Explorer rows on phones put the count under the title, so long titles keep the width
- Cluster pages: Home / Educational Nexus / Clusters in the trail
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Keep the phone chat tab at 52 px and Arabic text in its own face
The labelled tab grew to about 140 px and covered text on /about/ and back to top on
the explorer pages (check_design.py, floating controls). It stays dark, without the label.
Source Sans first in the Arabic stack narrowed word spaces and pushed Arabic lines past
80 characters; only English runs on Arabic pages now use it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Float the chat button in the bottom corner below 1440 px
Reviewers in every round found the 20 px margin tab too small to read or press. Below 1440 px
the launcher is now the desktop's round mascot button, 48 px, in the bottom corner; the
footer keeps room under it, back to top sits above it, and it hides while the clusters
drawer is open. check_design.py now lets the two float over the page mid-scroll, as long
as they keep off each other and cover nothing at the end of the page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Drop the separators between glossary language pills, and check the floating launcher
The pills hid the old ' | ' separators at font-size 0, which the design check rightly reads as
text under 15 px; the template no longer writes them. check_design.py's phone check now expects
the launcher as a button of at most 64 px in the bottom corner, not a 24 px tab in the gutter.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Act on Argon's review: glossary glosses, hub order, trails, dismissable launcher
- Translated glossary terms show their English name as a second line, without brackets,
in the heading, the list of terms and the pager
- Glossary hub on phones: title, link to the list, languages and introduction first,
the list after them, as its own text says
- Article trails end with the page itself, as on the other templates
- Below 1440 px the floating chat button has its dismiss cross again
- Only articles offer 'Copy article link'
- Reversals: drop the in-page table of contents that repeated the side card
- Disciplines: the five areas as a row of pills, and 'list of fields' in place of
'sidebar', which phones do not have
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Screenshot a page list from a JSON file
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Measure the phone launcher's corner from the cookie banner while it shows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Make each glossary index a hub of its terms
Languages and a search for the terms come first, then every term with the start of its
definition, A to Z with letter links; the history and citation sit in a disclosure. The
search filters the terms by name as it is typed. The term pages keep their side list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Search every tag on /tags/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals: lead with the project's status, gather its background, search the effects
The status paragraph moves to the top; motivation, history and how to contribute go into one
disclosure; a new list_filter shortcode searches the effects and hides disciplines left empty.
No wording changes in this commit.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: shorten the Reversals summary, awards and list note
Shortened copy; rebrand/long-copy keeps the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Get Involved: three starting points first, then the projects
A new action_cards shortcode gives the page three starting points (Slack, the projects, the
starter guide). The projects follow the introduction, the in-depth introduction comes after
them, and project actions are the site's outline pills.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: shorten the Get Involved introduction
The Slack paragraph no longer repeats the card above it, the second heading over the projects
and the 'Check it out!' box (now the starter-guide card) are dropped. rebrand/long-copy keeps
the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AI in Metascience: a visible title and subtitle beside the banner
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Link related glossary terms by title, in the term's language or English
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AWoP: the wheel opens the overview, the toolkit as cards, materials as disclosures
The supplemental materials each fold into a disclosure, the citation uses the site's
citation box with Copy, and licence notes everywhere are a quiet panel. No wording changes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: lead the AWoP overview with three sentences
The rest of the overview moves into a 'Why the AWoP' disclosure. rebrand/long-copy keeps the
original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary feedback form: labels and fields at the site's minimum text size
Its fields were 14 px, under the 15 px rule and small enough that phones zoom in on focus.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary: the definition leads each term page; the hub opens with a lede and keeps its letters in reach
The definition sits in a tinted panel and credits become a quiet line. On the hub a lede links
to the citation, which opens its disclosure, the A to Z bar stays at the top while scrolling,
and a search shows its match count. The lede is in the template: content/glossary ships from
main's data artifact, so its _index.md pages cannot carry branch edits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home: the figures as stat cards, and a 'more' button for each area on phones
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Replication Hub: a 'Start here' row, and the research bricks in place of the diagram
Action cards move into the shared stylesheet so any template can use them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Replication Hub: describe the bricks as the home page does
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: cards lead with the title, and active filters are chips that remove themselves
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals' statistics as small toggles under each effect; AWoP points to its materials on OSF
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Smaller fixes from the reviews: project card actions, a larger dialog close, letters that match
- Get Involved cards keep their actions on one footer line; a contact without email gets an
'Ask … on Slack' button
- AI in Metascience: the abstract dialog's close button is 44 px
- Glossary hub: letters with no matching term dim while searching
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Tags: the twenty most used, then every tag A to Z with letter links
The search hides the most-used row and empty letters while it has a query. The page no longer
hides most tags behind a disclosure.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: drop 'most used first' from the tags note, now that the page shows both orders
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: the type and level separator stays at the end of the first line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary terms: related terms as chips, and credits in the body colour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Outline buttons in page content at the primary button's size
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: open Reversals with one notice and two buttons; the citation moves into the disclosure
rebrand/long-copy keeps the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: results as full-width rows, with the previous and next page beside the count
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AWoP: the lead before the wheel, the wheel opens full size, each material shows its purpose
No text removed: each material's first sentence shows, the rest and its example are in a
disclosure.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: drop the AWoP paragraph that repeated the Web App card
rebrand/long-copy keeps the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AI in Metascience: 'Watch the recordings' and 'See the programme' under the summary; facts in two columns on phones
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary on phones: compact term rows and a lighter definition panel; Get Involved projects two to a row from 1440 px
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Fixes from Argon's review: the home 'more' button hides once used; glossary search by address
- Home: an opened area's 'more' button no longer stays visible (a selector for the
revealed links outranked the one hiding it)
- Glossary hub: ?q= opens with that search; when no term name matches, definitions are searched
- Replication Hub: 'Start here' spans the width of the stages below; the sticky letter bar
has a rule beneath it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Status chips on Reversals, featured first tools on the hub, one-row headers on the phone glossary
- Reversals: each effect's status (replicated, not replicated, mixed, reversed) shows as a chip
before its name, read from its statistics
- Replication Hub: the first tool in each stage is tinted as its starting point
- Glossary hub on phones: languages and letters scroll sideways in one row each
- AI in Metascience on phones: Abstract and Watch share the last line of each talk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Section intros under a heading in the body face, not a second display line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: shorten Get Involved's in-depth introduction; the third starting card is the newsletter
The introduction keeps its two pointers (Publications, Getting Started with FORRT) in two
sentences; the starter guide stays linked there. rebrand/long-copy keeps the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home: the statement band in two columns on a wide screen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: shorter labels under the home page's figures, and 2026 for the award
rebrand/long-copy keeps the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 4 suggestions: hub stages two by two, a sticky glossary toolbar, project search
- Replication Hub: on a wide screen the four stages sit two by two, each with its tools two
to a row
- Glossary hub: search, count, letters and a Clear button stay at the top while scrolling;
related terms without a page read as plain text
- AWoP: a smaller wheel beside the lead
- AI in Metascience: the three daily playlists under the summary
- Get Involved: search the projects
- Resources: numbered pages above the list as well as below
- Tags: twelve most used
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Tags on phones: twelve per letter with a button for the rest; home hero links on one line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 5 suggestions: related-term chips, status words, hub columns, rare tags, level counts
- Glossary terms: related terms on a row of their own, those without a page as muted chips
- Reversals: status chips use one word set; qualifiers stay in the statistics and the title
- Replication Hub: Track and Explore stacked beside Conduct and Disseminate, and a fourth
starting point (publish in R2)
- Tags: tags on one page only are lighter
- Resources: two education levels and a count per row
- Phones: a more compact consent banner, same wording
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 5 suggestions: the main home action filled, glossary language menu on phones, tag count badges
- Home: the first hero link is filled, and the phone tower is smaller
- Glossary hub on phones: a labelled language menu and a visible search label
- AWoP on phones: the wheel as a thumbnail beside its link; each material has an OSF link
- Tags: counts as small badges
- Resources: the collection's history behind 'How the collection grew'
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AWoP: an OSF link on each supplemental material
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Copy: 'Find teaching resources' leads the home links; AWoP subtitle says who it is for; playlists name their day's theme
rebrand/long-copy keeps the original wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 6 suggestions: Get Involved on the wide layout, effects as rows, collapsed tag letters
- Get Involved joins the wide pages: its projects fill the width, three to a row, and the
grid no longer breaks out of the text column
- Reversals: the effects read as rows with a rule between them, without bullets
- Tags: every letter shows its first sixteen (twelve on phones) with a button for the rest
- Glossary hub: two lines of definition per term on every screen
- AI in Metascience: the three playlists as compact cards in a row
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Fix two check failures: hub tints as plain colours, Arabic definitions at their own size
The design check could not read the featured cards' color-mix() background and reported low
contrast; the tints are now precomputed. Arabic definitions in the panel keep the 21 px that
keeps their lines under 80 characters.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 6 suggestions: find a tool, glossary list view, term finder on phones, section menu
- Replication Hub: 'Find a tool' searches the tools, and each tool says what kind it is
- Glossary hub: a list view beside the cards, remembered for the next visit
- Glossary terms: on phones the list of terms opens right after the definition; the term
filter shows a count, a no-match line and a Clear button
- Reversals: a menu of the disciplines, with counts, beside the search
- Tags: A to Z as rows with the count on the right
- Home: the phone 'more' buttons name their area
- Glossary hub: the citation link in the lede is underlined (axe: link-in-text-block)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 7 suggestions: effects by outcome, word-start search, most-used tags first, hub colours
- Reversals: buttons show effects by outcome, and the search matches the start of words
('ego' no longer finds 'category')
- Tags: each letter's preview shows its most used tags; rare tags are no longer greyed
- Replication Hub: the starting points follow the stages and carry their colours; phone jump
links in two rows of two
- Glossary hub on phones: the list switch sits under the search, which keeps its full width
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Get Involved: no line breaks inside the calendar's heading
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AI in Metascience playlists as clearly outlined tiles; 'Find another term' on English term pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals: remove stray emphasis markers after the Robbers Cave entry
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Round 8 fixes: no-status chips and status counts on reversals, glossary Cards/List switch, current letter, phone list default and compact feedback row, clean previews, one contact action per project, short tag groups stay whole
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Compact menu up to 979 px so the header never wraps; reversals filter skips non-entry lists; select focus ring; playlist tiles in their day colours; tag groups move focus to the first revealed tag
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AI in Metascience: facts under the banner on wide screens; AWoP supplemental materials as a list with OSF links beside titles; Get Involved contact buttons back to outline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Get Involved: keep the filled contact action; term finder gets a visible label
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary: Previous and Next follow the A to Z; the first letter is marked on load; the phone term list centres on the current term when opened
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AWoP and Get Involved: a written summary for the meta description, which would otherwise open with link text
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Checks: allow the three new descriptions; the glossary language menu no longer reads as a link
The language menu's onchange used location.href = this.value, which the internal-link check read as a link to glossary/<lang>/this.value. It now calls location.assign.
German terms beginning with Ä, Ö or Ü are filed under A, O and U on the glossary hub, as Hugo's sort already places them, instead of getting letters of their own.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Review tools: screenshot sizes accept 'both' and duplicate page slugs are refused; the launcher check bounds both sides
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Layout fixes from the review of #1118
- Home: on phones the area links collapse only when script can open them again
- Consent banner: its two buttons fit a 320 px screen
- Chat launcher: the short-screen size comes last, so the phone size no longer undoes it
- Tags: phones keep two columns, and a letter jump lands below the sticky letters
- Lists: thumbnails are resized, not cropped, so they show whole as intended
- Replication Hub: a tool's format line keeps its own style
- Glossary feedback: the intro keeps its 16 px size inside the article
- Disciplines: the five area badges are a list
- People: empty organisations print no empty paragraph
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Filters: tag search hidden beside a selected tag, removable chips name their group, project search ignores the shared actions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary related terms match the full name first, so the three Model terms link to their own pages; a full stop after the reversals DOI
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: the search chip's screen-reader label says it removes the search
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home: a thumbnail on each news row, and two-line excerpts (#1126)
* Home: news rows lead with a small thumbnail and a two-line excerpt
Each "From the community" row now shows a small WebP crop of the post's
featured image (or a tile in its category's tint with the initial when a
post has none) beside the date, category and title. The excerpt is clamped
to two lines; on phones it runs full width under the thumbnail and title.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home news: no row gap on phones, where the older rule's 4px gap still applied
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Arabic glossary pages: Arabic labels and related-term names, isolated English text (#1121)
* Arabic glossary pages: Arabic labels, Arabic related-term names and isolated English text
Feedback from the Arabic glossary team on the Doors preview:
- Related terms name the Arabic page they link to, without its English name.
- The breadcrumb, the other-languages row and the pager are labelled in Arabic.
- Contributor names are separated by the Arabic comma and isolated, so Latin names keep
their order inside right-to-left text; each name stays on one line.
- Breadcrumb steps and links in the entry are isolated, so English names and URLs keep
their brackets and order.
- The Arabic glossary hub's foot reads "آخر تحديث:" with the date in digits, and a root
i18n/ar.yaml replaces the theme's misspelt "اخر تحيث في".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Arabic glossary pages: name the breadcrumb in Arabic for screen readers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: sort by newest added and choose how many per page (#1125)
* Resources: sort by title or date added, and choose how many per page
The directory gains a Sort select (Title A-Z, Newest added) and a Per page
select (12, 24, 48; 24 on wider screens, 12 on phones). The result line now
gives the range and order, e.g. "Showing 1-24 of 1,473 resources, A to Z".
The date added comes from each resource's form timestamp, written into
directory.json as an ISO time; resources without one, including the
01/01/2020 placeholder, sort last under Newest.
Sort, page size and page go in the address with the filters. With no filter,
A to Z and 24 a page, the address stays the server's /resources/page/N/.
Filtered and re-sorted views get page links at the top and bottom in place
of Show more; page links add a history step, so Back returns to the page
before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: keep other address parameters, and check the new page links and sort
The directory rewrites only its own keys in the address, so a campaign tag
or the theme's ?q= survives the first draw. The design check now turns a
filtered page, goes Back, and tries the Sort and Per page selects, in place
of the removed Show more button.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: keep the page size in filtered links from a phone; the design check counts the cards
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: sort order and page size as two quiet menus beside the search box, below it on a phone
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resources: the search keeps at least 18em, so with enlarged text the sort and page-size menus wrap below it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* A page opening with its picture beside the title: AWoP, Citational Justice and AI in Metascience (#1123)
* AWoP: the wheel beside the title and actions, on the first screen
The wheel moves from the overview into the page's opening: large beside the
title, lede and buttons on a desktop, and under the buttons at a moderate size
on a phone. It still opens full size. A page opts in with hero_image in its
front matter (layouts/partials/doors/tool_hero.html); other section pages are
unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* AWoP: clip the wheel image to the link's rounded corners
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* A general page opening with its picture beside the title, for AWoP, Citational Justice and AI in Metascience
The AWoP-only tool_hero becomes doors/page_hero, which the reading layout and widget_page both use when a page sets hero_image (a page resource or a static path). Page resources are resized to 900 px; landscape pictures take the full width on a phone. AI in Metascience drops its hand-written first-row grid.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Citational Justice: the opening shows a 900 px copy of the wheel, not the 2,835 px original
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* AWoP: back to the authors' original wording; the shortened copy goes to its own PR for the authors to review
The layout changes stay (the wheel at the top, the toolkit cards).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals: a search bar that stays on screen, and descriptions cut to their first lines (#1127)
* Reversals: the search and outcome filters stay at the top while the effects scroll, with a live count; each description shows its first lines with a "more" button
The rows keep the reading width of a paragraph. On a phone only the search row and count stay on screen; beside the "On this page" card the bar needs no Go to menu. The design check's line-length audit now skips text nobody can see: inside a closed disclosure, or clipped by a box that shortens it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals on a phone: the outcome buttons get their usual size and spacing, with room above and below them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals: closing an effect re-checks whether it still needs "more"; the fade follows right-to-left text; the line-length audit also skips text clipped sideways
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Tags: /tags/ lists the 148 used on five or more pages; resource pages show all theirs as keywords (#1120)
* Tags: list and show only tags used on five or more pages
Three quarters of the 1,691 tags appear on one page, so the A to Z list and
the badges on resource pages were mostly dead ends. Every tag still works in
/tags/?tag= and site search.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Tags: document the min key in tag_counts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Resource pages list every tag as one line of keywords: the common ones link to their list, rarer ones are plain text
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Phone contents: an open "On this page" list, shortened to five with "Show all" (#1128)
* Phone contents: the closed line says what it holds, "On this page: 5 sections", with the first section names under it
One partial (doors/toc_phone) for doors/reading and widget_page, with a chevron like the resources filter drawer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Phone contents: an open list under an "On this page" label, the first five sections and "Show all N sections" when there are more than six
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Phone contents on section pages: escape each entry's id and title before building the list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Glossary credits escape each name before Markdown and keep only short names on one line; the page opening resizes only images wider than 900 px
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Design check: a wrapped word's characters are shared out over all its boxes before hidden ones are dropped
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Allow the /tags/ description change from #1120
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Review round: tags intro in one sentence; MORNING and AFTERNOON in capitals again; reversals cite visible, FLoRA only, no All Effects heading; Replication Hub keeps its diagram; glossary's about section under the heading; related terms as a plain list; Get Involved says what FORRT is
- JUST-OS: on touch screens the close control is 28 px with a 44 px tap area
- Two or more buttons in one paragraph keep a gap when they wrap
- On full-width pages a call-out keeps to the reading width
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Reversals: the FLoRA button no longer calls its entries validated; the hub diagram loads at once; two comments match the layout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Tags: a tag on more than a quarter of the tagged pages (today only "Open Science") is too general to show as a tag or keyword
Its /tags/?tag= address still works.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home: three actions under the intro (teach, learn, explore replications) (#1133)
* Home: three actions under the intro (teach, learn, explore replications), with Join FORRT and Submit a replication as a quieter line on wide screens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home: "Submit a resource" leads to a new page, Submit to FORRT, with each kind of submission and its form
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Submissions page: /submit/ rather than /contribute/, as submitting is not the same as becoming a contributor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Submit page: the game card opens the form for games the Portal is missing
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Cards: bricks for starting points, ruled rows for the Replication Hub's tools (#1134)
* Cards: starting points as bricks in their area's colour, the Replication Hub's tools as ruled rows that are links across their whole width
- action_cards and the hub's Start here: solid bricks with studs; the shortcode takes `area` (edu, res, jus, com); AWoP uses justice, Get Involved community
- Hub stages: open sections under a rule in the stage colour; each tool a contents-style row, the kind of tool in a label column
- Each hub tool is a full-size link target on phones (it was only the 19 px title)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Cards: each row of bricks runs through the four area colours, starting with its own; the Replication Hub drops its tool search
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Cards: bricks keep their colours when printed; the hub's four bricks join only once they fit on one line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Spelling: accept "jus", the justice area's key in the action_cards shortcode
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Replication Hub: tool titles keep a thin underline in the stage colour, so they read as links before hover
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Home: a tighter hero, so the second line of links does not push the topics past 1.6 screens; hub stage headings wrap at 200% text
- Hero text column 36 px less bottom padding, castle column 16 px less top padding, castle at most 410 px high, 12 px less above the area cards
- .stage h2 wraps anywhere, as "Disseminate" at double size is wider than a phone
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Conflicts resolved: - Newsletter: keep the Doors sign-up form (doors/newsletter.html, same EmailOctopus IDs); drop main's newsletter_form.html, static/js/newsletter.js and their SCSS. The archive page takes main's ordering by issue URL. - FLoRA: main's build-time citation shortcode replaces the citation block, so CONTRIBUTING no longer lists it as generated; cite-us keeps the Doors layout with the full FLoRA name. The FLoRA citation check becomes check 22. - Reversals keeps the Doors page; privacy takes main's date; mike-galang's copied profile is deleted as on main; .codespellrc combines both skip lists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…linked clusters (#1136) * Resource entries: content first, shorter creator lists, linked clusters - Show six creators and a disclosure with the rest, so the button stays in the first phone screen. - Name the destination host beside "Open this resource", with the external-link icon. - Link clusters in the details card to their cluster pages. - Show the material type as a plain label instead of a chip. - Put the entry before the details card in source order; the grid keeps the card in the left column on desktop, and on phones it comes before Previous/Next, replacing the one-line summary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Keep the resource kind line under 80 characters Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Resource entries: give Keywords its space above (Cubic) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This is the Doors redesign of forrt.org: a long-lived branch that stays a draft until launch, planned for the week of 4 January 2027. The merge is the launch.
It is a draft on purpose. Aggregate staging skips drafts, so everyone else's preview stays as it is, and an open PR stops
cleanup-branches.ymlfrom deleting the branch. Please do not mark it ready for review or merge it.Smaller pieces of work arrive as PRs into
rebrand-doors, andmainis merged in at least weekly. Hugo stays, with no Node in the build, and URLs do not change in the current phases.Preview: https://forrt.org/rebrand-doors/. It carries noindex and rebuilds on each push.
At launch. Delete
.github/workflows/rebrand-preview.yaml, andscripts/rebrand/unless a check has been promoted. The repository allows only squash and rebase merges through the PR button, so the launch merge will squash the branch unless that setting changes, which affects how a revert or a re-landing works.Created with Claude Opus 5.5 in Claude Code.
🤖 Generated with Claude Code