Changes for README.md: 1 added line, 1 removed line.
Original line number
Diff line number
Diff line
@@ -59,7 +59,7 @@ over each, on every push, in a job that blocks the pipeline. The numbers and wha
| `templates/` | **19 Twig files: 14 overrides of Drupal templates and five for this theme's own hooks.** The overrides are page, region, node, field, table, Views table, form element, pager, three menus (generic, footer, quick access), breadcrumb, the site-branding block and the file link. The five own hooks are the masthead, the header search, the award total, the sign-in panel and the CSV-distribution table, registered in `agora_theme.theme`. The last is the shortest file here and deliberately so: it prints a `#type: table` render array, which means the actual table markup is the override two rows up, already under the accessibility gate, rather than a second convention beside it. The table is still the centrepiece: it adds the `scope="col"`/`scope="row"` that Drupal's own table preprocess never sets, and renders the caption as the table's first child. ⚠️ **The sign-in template is not what a stock Ágora install shows.**`gin_login` takes `user.login` and four neighbouring routes and hands them to the site's admin theme, so this panel is reached on a standalone install of `agora_theme` and not on a site built from the Ágora site template. That is D-052, and it is recorded rather than fixed here |
| `components/` | **Four single-directory components — heading, text, section and group** — the pieces a site owner places on a page in Drupal Canvas without touching code. Layout and type only: no component here fetches data, because a component that fetches data is a block and the eight blocks on the front page are correct where they are (D-049). **No prop accepts a free colour or a free size.** Every one is an enum over a step `css/tokens.css` already declares and `tests/bin/contrast-check` has already measured, because that checker runs at build time and can say nothing about a value typed into a form afterwards. `tests/bin/component-metadata` is what stops one of them silently disappearing from the palette |
| `fonts/` | Public Sans, two weights, self-hosted, plus its `OFL.txt`. See "Third-party assets" |
| `agora_theme.theme` | **The theme's PHP — 3,806 lines, 47 functions** (it read 3,665 and 45 until 2026-09-25, when the header mark gained two functions of its own - `_agora_theme_logo_dimensions()` reads a site's own logo file's real width and height, falling back to the theme's known 120 by 120 grid when it is the shipped default or cannot be measured, and `_agora_theme_svg_dimensions()` is the pure parser beside it that reads a `viewBox` or a `width`/`height` pair out of an SVG document, which `getimagesize()` cannot do at all - 141 lines net, T-0721; it read 3,626 and 43 until 2026-09-24, when the two table hooks that attach `js/table-scroll.js` arrived; ⚠️ it read 2,528 and 28 until 2026-09-20; the count was already 32 before that day's eleven new functions, so it was stale by four and nobody re-ran `grep -c`), and it was missing from this table until 2026-09-06 despite being the largest source file here. It registers the four theme hooks named under `templates/`, preprocesses the page, the blocks and the footer menu, reads each setting through a `?? default` so an upgraded site behaves like a fresh one, and holds the money and award-total helpers the unit tests cover. Since 2026-09-20 it also **reads a dataset's CSV distribution and hands Twig a rows/header array** — D-038 option A — bounded by three ceilings the `phpunit` job prints, and refusing whole rather than drawing part of a file |
| `agora_theme.theme` | **The theme's PHP — 3,893 lines, 49 functions** (it read 3,806 and 47 until 2026-09-27, when the CSV preview gained two helpers, `_agora_theme_csv_download_allowed()` and `_agora_theme_csv_no_reuse()` - 87 lines net; it read 3,665 and 45 until 2026-09-25, when the header mark gained two functions of its own - `_agora_theme_logo_dimensions()` reads a site's own logo file's real width and height, falling back to the theme's known 120 by 120 grid when it is the shipped default or cannot be measured, and `_agora_theme_svg_dimensions()` is the pure parser beside it that reads a `viewBox` or a `width`/`height` pair out of an SVG document, which `getimagesize()` cannot do at all - 141 lines net, T-0721; it read 3,626 and 43 until 2026-09-24, when the two table hooks that attach `js/table-scroll.js` arrived; ⚠️ it read 2,528 and 28 until 2026-09-20; the count was already 32 before that day's eleven new functions, so it was stale by four and nobody re-ran `grep -c`), and it was missing from this table until 2026-09-06 despite being the largest source file here. It registers the four theme hooks named under `templates/`, preprocesses the page, the blocks and the footer menu, reads each setting through a `?? default` so an upgraded site behaves like a fresh one, and holds the money and award-total helpers the unit tests cover. Since 2026-09-20 it also **reads a dataset's CSV distribution and hands Twig a rows/header array** — D-038 option A — bounded by three ceilings the `phpunit` job prints, and refusing whole rather than drawing part of a file |
| `composer.json` | Package metadata. No dependencies, so there is nothing to justify |
| `LICENSE.txt` | GPL-2.0-or-later, byte-identical to the site template's copy — **verified as committed**, 2026-09-06: both repositories store the same 18,002-byte blob, `94fb846`. ⚠️ Compared in a Windows working copy the two files differ at byte 35, because this checkout carries CRLF; the difference is a checkout attribute and not a difference in what ships |
| `.gitlab-ci.yml` | The shared Drupal Association pipeline, plus the variables this project sets on it — see [Continuous integration](#continuous-integration) |