From 1606b1ebecff15c489b02f3a7d33bd4962ff6b13 Mon Sep 17 00:00:00 2001 From: Lukas Wallrich Date: Wed, 2 Sep 2026 17:45:43 +0100 Subject: [PATCH 1/3] Load Mermaid/Highlight.js only where used; fix heading hierarchy and image attributes - Mermaid and Highlight.js are opt-in: they load on pages whose Markdown content has a code block (or `highlight`/`diagram` front matter), with `defer`; site params default to false (#865). - Search index fetch shows a failure message and allows a retry (#861). - Search overlay heading is an h2; homepage and page-builder section titles are h2 under one page h1 (visible hero, or visually hidden page title); author profile name is the h1 (#860). - Every template image has an alt decision; card, avatar, header and featurette images carry intrinsic width/height (#869). - Duplicate Google Fonts preconnects removed from the chatbot partial. - scripts/check_seo_html.py checks the built HTML for these rules and runs after the Hugo build in deploy.yaml. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_011qVBTM5W7PENuS5gS1Nm7z --- .github/workflows/deploy.yaml | 7 + assets/scss/academic/_content.scss | 1 + assets/scss/academic/_dark.scss | 1 + assets/scss/academic/_root.scss | 4 +- assets/scss/academic/_search.scss | 4 +- assets/scss/academic/_widgets.scss | 6 +- assets/scss/custom.scss | 14 +- config/_default/params.toml | 13 +- content/awards/awards.md | 36 ++-- .../index.md | 2 +- content/manuscript/index.md | 3 + layouts/authors/list.html | 4 +- layouts/partials/announcement_card.html | 2 +- layouts/partials/chatbot.html | 5 +- .../partials/functions/static_img_dims.html | 10 + layouts/partials/li_card.html | 2 +- layouts/partials/li_compact.html | 2 +- layouts/partials/page_header.html | 2 +- layouts/partials/resource_li_card.html | 2 +- layouts/partials/resource_page_header.html | 2 +- layouts/partials/search.html | 2 +- layouts/partials/site_footer_license.html | 2 +- layouts/partials/site_head.html | 28 ++- layouts/partials/widgets/about_welcome.html | 6 +- layouts/partials/widgets/announcements.html | 2 +- layouts/partials/widgets/blank.html | 4 +- layouts/partials/widgets/featured.html | 2 +- .../widgets/featurette_alternative.html | 6 +- layouts/partials/widgets/featurette_team.html | 6 +- .../partials/widgets/featurette_welcome.html | 4 +- layouts/partials/widgets/history.html | 2 +- layouts/partials/widgets/people-card.html | 7 +- layouts/partials/widgets/people.html | 2 +- layouts/partials/widgets/resource.html | 4 +- scripts/check_seo_html.py | 185 ++++++++++++++++++ themes/academic/assets/js/academic-search.js | 9 + themes/academic/layouts/partials/site_js.html | 14 +- .../layouts/partials/widget_page.html | 11 +- 38 files changed, 341 insertions(+), 77 deletions(-) create mode 100644 layouts/partials/functions/static_img_dims.html create mode 100644 scripts/check_seo_html.py diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 2b5a3cec30f..67199f817c3 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -208,6 +208,13 @@ jobs: env: HUGO_ENV: production + # ======================= + # Built HTML Regression Checks + # ======================= + - name: Check built HTML (headings, conditional assets, image alt) + run: | + python3 scripts/check_seo_html.py public + # ======================= # Deployment Artifact #======================================== diff --git a/assets/scss/academic/_content.scss b/assets/scss/academic/_content.scss index f72126d6fe4..61cfb90f5b6 100644 --- a/assets/scss/academic/_content.scss +++ b/assets/scss/academic/_content.scss @@ -42,6 +42,7 @@ article { .featured-image { position: relative; width: 100%; + height: auto; display: block; margin: 0 auto; } diff --git a/assets/scss/academic/_dark.scss b/assets/scss/academic/_dark.scss index 7b0df54d97e..d29626029fc 100644 --- a/assets/scss/academic/_dark.scss +++ b/assets/scss/academic/_dark.scss @@ -71,6 +71,7 @@ body.dark, color: #fff; } +.dark #profile .portrait-title h1, .dark .portrait-title h2 { color: #fff; } diff --git a/assets/scss/academic/_root.scss b/assets/scss/academic/_root.scss index 9b915f3104b..fe70ef4cef6 100644 --- a/assets/scss/academic/_root.scss +++ b/assets/scss/academic/_root.scss @@ -161,8 +161,10 @@ video { } .img-responsive { - /* Extend Bootstrap declaration with centering. */ + /* Extend Bootstrap declaration with centering; keep intrinsic-size images fluid. */ margin: 0 auto; + max-width: 100%; + height: auto; } // Center all figure images by default. diff --git a/assets/scss/academic/_search.scss b/assets/scss/academic/_search.scss index 92e7074f541..3f72f7118c8 100644 --- a/assets/scss/academic/_search.scss +++ b/assets/scss/academic/_search.scss @@ -57,9 +57,11 @@ background-color: $sta-dark-background; } -.search-header h1 { +/* The search overlay is a subordinate region, so its heading is an h2; keep the h1 size. */ +.search-header h2 { margin: 0; line-height: 1; + font-size: 2.25rem; } .col-search-close { diff --git a/assets/scss/academic/_widgets.scss b/assets/scss/academic/_widgets.scss index d2622cd0d8c..61c7f1a85d9 100644 --- a/assets/scss/academic/_widgets.scss +++ b/assets/scss/academic/_widgets.scss @@ -93,8 +93,11 @@ } } -.section-heading h1 { +/* Section titles are h2 (the page's h1 belongs to its hero); keep the h1 size. */ +.section-heading h1, +.section-heading h2 { margin: 0 0 10px 0; + font-size: 2.25rem; } .section-heading p { @@ -288,6 +291,7 @@ a.hero-cta-alt:hover { border-radius: 3px; } +#profile .portrait-title h1, .portrait-title h2 { font-size: 1.75em; font-weight: 300; diff --git a/assets/scss/custom.scss b/assets/scss/custom.scss index 9fe74229142..3584cb1be5f 100644 --- a/assets/scss/custom.scss +++ b/assets/scss/custom.scss @@ -3278,8 +3278,8 @@ h1.clusters-site-heading.clusters-hub-page__title { * `subtitle = "---"` / `***` content dividers (which some sections had and * others didn't). Scoped to .home-section so inner pages are unaffected. * ============================================================ */ -.home-section .section-heading h1::after, -.home-section.wg-about-welcome h1::after { +.home-section .section-heading h2::after, +.home-section.wg-about-welcome h2::after { content: ""; display: block; height: 1px; @@ -3461,6 +3461,16 @@ h1.clusters-site-heading.clusters-hub-page__title { } /* ---- "What is FORRT?" media column: logo + video stacked, text beside it. ---- */ +/* Featurette images carry intrinsic width/height attributes; scale them with the column. */ +.wg-featurette-alternative img, +.wg-featurette-welcome img, +.wg-featurette-team img { + height: auto; +} +/* About section title: same size as the section headings. */ +.home-section.wg-about-welcome h2 { + font-size: 2.25rem; +} .wg-about-welcome .avatar { width: 170px; height: 170px; diff --git a/config/_default/params.toml b/config/_default/params.toml index f7ec9d8005e..fd205669237 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -86,9 +86,11 @@ tag_index_min_pages = 5 # Show "Recommended" tab with community-endorsed resources on cluster pages enable_featured_resources = false -# Enable source code highlighting? true/false +# Force Highlight.js onto every page? true/false +# With false, it loads only on pages whose Markdown content contains a code block, +# plus any page with `highlight: true` in its front matter. # Documentation: https://sourcethemes.com/academic/docs/writing-markdown-latex/#highlighting-options -highlight = true +highlight = false highlight_languages = ["r"] # Add support for highlighting additional languages # highlight_style = "github" # For supported styles, see https://cdnjs.com/libraries/highlight.js/ @@ -96,9 +98,10 @@ highlight_languages = ["r"] # Add support for highlighting additional languages # If false, you can enable math on a per page basis as needed. math = false -# Enable diagram rendering? true/false -# If false, you can enable diagrams on a per page basis as needed. -diagram = true +# Force Mermaid onto every page? true/false +# With false, it loads only on pages whose Markdown content contains a mermaid code +# block, plus any page with `diagram: true` in its front matter. +diagram = false # Privacy pack # Show a cookie consent message to visitors diff --git a/content/awards/awards.md b/content/awards/awards.md index 6b8516882ed..008af6fcdd7 100644 --- a/content/awards/awards.md +++ b/content/awards/awards.md @@ -121,75 +121,75 @@ Thanks to our amazing community, FORRT has become an ***award-winning*** grassro
- In 2025, FORRT received the ***[Mission Award for Educational resources on the replication crisis](https://forrt.org/positive-changes-replication-crisis/)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/#:~:text=SEMA3-,June%202025,Educational%20resources%20on%20the%20replication%20crisis,-June%202025). + In 2025, FORRT received the ***[Mission Award for Educational resources on the replication crisis](https://forrt.org/positive-changes-replication-crisis/)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/#:~:text=SEMA3-,June%202025,Educational%20resources%20on%20the%20replication%20crisis,-June%202025).
- In 2025, FORRT received a ***Commendation Award for [Pownall et al. (2023): Teaching open and reproducible scholarship: a critical review of the evidence base for current pedagogical methods and their outcomes](https://doi.org/10.1098/rsos.221255)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/). + In 2025, FORRT received a ***Commendation Award for [Pownall et al. (2023): Teaching open and reproducible scholarship: a critical review of the evidence base for current pedagogical methods and their outcomes](https://doi.org/10.1098/rsos.221255)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/).
- In 2025, FORRT received a ***Commendation Award for [Open Science in the Developing World: A Collection of Practical Guides for Researchers in Developing Countries](https://forrt.org/os-developing-world/)*** [(published article)](https://doi.org/10.1177/25152459251357565) from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/). + In 2025, FORRT received a ***Commendation Award for [Open Science in the Developing World: A Collection of Practical Guides for Researchers in Developing Countries](https://forrt.org/os-developing-world/)*** [(published article)](https://doi.org/10.1177/25152459251357565) from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/).
- In 2025, FORRT received a ***Commendation Award for [International Initiatives to Enhance Awareness and Uptake of Open Research in Psychology: A Systematic Mapping Review](https://doi.org/10.1098/rsos.241726)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/). + In 2025, FORRT received a ***Commendation Award for [International Initiatives to Enhance Awareness and Uptake of Open Research in Psychology: A Systematic Mapping Review](https://doi.org/10.1098/rsos.241726)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/).
- In 2025, FORRT received a ***[Commendation Award for FORRT Credit Project](https://forrt.org/contributors/)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/). + In 2025, FORRT received a ***[Commendation Award for FORRT Credit Project](https://forrt.org/contributors/)*** from the Society for the Improvement of Psychological Science [(Announcement)](https://improvingpsych.org/mission/awards/).
- In 2023, FORRT was awarded the ***[Dorothy Bishop Prize](https://www.ukrn.org/2023/03/21/db-prize-winners-mar2023/)*** from the UK Reproducibility Network, for its work towards integrating open science principles into higher education and advancing research transparency, reproducibility, rigor, and ethics through pedagogical reform. + In 2023, FORRT was awarded the ***[Dorothy Bishop Prize](https://www.ukrn.org/2023/03/21/db-prize-winners-mar2023/)*** from the UK Reproducibility Network, for its work towards integrating open science principles into higher education and advancing research transparency, reproducibility, rigor, and ethics through pedagogical reform.
-In 2023, FORRT was a *finalist* for the ***[Early Career Award](https://award.einsteinfoundation.de/award-winners-finalists/recipients-2023/early-career-researcher-award-2023-finalists)*** for Promoting Quality in Research from the Einstein Foundation for its [Replication Hub](https://forrt.org/replication-hub/) initiative. +In 2023, FORRT was a *finalist* for the ***[Early Career Award](https://award.einsteinfoundation.de/award-winners-finalists/recipients-2023/early-career-researcher-award-2023-finalists)*** for Promoting Quality in Research from the Einstein Foundation for its [Replication Hub](https://forrt.org/replication-hub/) initiative.
- In 2023, FORRT received an ***[OSC Award](https://osc-international.com/osc-amsterdam/looking-back-oscawards/)*** in the Open Educational Resources / Open Education / Open Online Courses category from Open Science Community Amsterdam, receiving €200. This was for our paper, *[The role of pedagogical communities](https://doi.org/10.1186/s13104-022-05944-1)*. [Watch our successful pitch on YouTube](https://youtu.be/7wYW7xpqbUY). + In 2023, FORRT received an ***[OSC Award](https://osc-international.com/osc-amsterdam/looking-back-oscawards/)*** in the Open Educational Resources / Open Education / Open Online Courses category from Open Science Community Amsterdam, receiving €200. This was for our paper, *[The role of pedagogical communities](https://doi.org/10.1186/s13104-022-05944-1)*. [Watch our successful pitch on YouTube](https://youtu.be/7wYW7xpqbUY).
- In 2023, FORRT received the ***[Mission Award](https://improvingpsych.org/mission/awards/)*** from the Society for the Improvement of Psychological Science for its overall initiatives. + In 2023, FORRT received the ***[Mission Award](https://improvingpsych.org/mission/awards/)*** from the Society for the Improvement of Psychological Science for its overall initiatives. - **[Announcement by SIPS](https://improvingpsych.org/mission/awards/)**
- In 2023, FORRT was named a ***[Community Champion for UK education and research communities](https://www.jisc.ac.uk/news/all/jisc-announces-2023-community-champions)*** by JISC. + In 2023, FORRT was named a ***[Community Champion for UK education and research communities](https://www.jisc.ac.uk/news/all/jisc-announces-2023-community-champions)*** by JISC.
- In 2023, FORRT received a ***Commendation award*** from the Society for the Improvement of Psychological Science for its [Replications & Reversals](https://forrt.org/reversals/) project. + In 2023, FORRT received a ***Commendation award*** from the Society for the Improvement of Psychological Science for its [Replications & Reversals](https://forrt.org/reversals/) project. - **[Announcement by SIPS](https://improvingpsych.org/2023/08/22/sips-2023-awards-announced/)**
- In 2022, FORRT received an ***Open Scholarship Prize (1st Place)*** award from the Atlantic Technological University and the Open Science Community Galway for its several initiatives aiming to help researchers integrate Open Science into their educational pipeline, receiving €200/£189. + In 2022, FORRT received an ***Open Scholarship Prize (1st Place)*** award from the Atlantic Technological University and the Open Science Community Galway for its several initiatives aiming to help researchers integrate Open Science into their educational pipeline, receiving €200/£189.
- In 2022, FORRT received a ***Grants-In-Aid to Reduce Barriers to Improving Psychological Science*** from the Society for the Improvement of Psychological Science for the FORRT's Neurodiversity initiative, receiving $1250. + In 2022, FORRT received a ***Grants-In-Aid to Reduce Barriers to Improving Psychological Science*** from the Society for the Improvement of Psychological Science for the FORRT's Neurodiversity initiative, receiving $1250.
- In 2022, FORRT received an ***Open Scholarship Conference award*** from the Association for Learning Technology for its initiatives, receiving €200/£189. This was linked to our presentation at the OER22 Conference. + In 2022, FORRT received an ***Open Scholarship Conference award*** from the Association for Learning Technology for its initiatives, receiving €200/£189. This was linked to our presentation at the OER22 Conference.
- In 2022, FORRT received a ***[Commendation](https://improvingpsych.org/mission/awards/)*** from the Society for the Improvement of Psychological Science for its [Summaries of Open Science](https://forrt.org/summaries/) project. + In 2022, FORRT received a ***[Commendation](https://improvingpsych.org/mission/awards/)*** from the Society for the Improvement of Psychological Science for its [Summaries of Open Science](https://forrt.org/summaries/) project.
- In 2021, FORRT has received a ***Commendation*** from the [HiddenREF](https://hidden-ref.org/) for its initiatives advancing training materials and resources on open and reproducible science. You can [watch a recording of the award ceremony on YouTube](https://youtu.be/btjRNG0NANg?t=1070). + In 2021, FORRT has received a ***Commendation*** from the [HiddenREF](https://hidden-ref.org/) for its initiatives advancing training materials and resources on open and reproducible science. You can [watch a recording of the award ceremony on YouTube](https://youtu.be/btjRNG0NANg?t=1070).
- In 2021, FORRT has received an ***Open Scholarship Award (2nd Place)*** from the [Open Scholarship Community Galway](https://osc-galway.ie/competition/) for its overall initiatives. + In 2021, FORRT has received an ***Open Scholarship Award (2nd Place)*** from the [Open Scholarship Community Galway](https://osc-galway.ie/competition/) for its overall initiatives.
@@ -197,7 +197,7 @@ In 2021, FORRT has received a ***Kellogg School of Management Consultancy on “
- In 2020, FORRT has received a ***Commendation*** from the [Society for the Improvement of Psychological Science](http://improvingpsych.org/mission/awards/) for its manuscript ["Introducing a Framework for Open and Reproducible Research Training (FORRT)"](https://osf.io/bnh7p/). + In 2020, FORRT has received a ***Commendation*** from the [Society for the Improvement of Psychological Science](http://improvingpsych.org/mission/awards/) for its manuscript ["Introducing a Framework for Open and Reproducible Research Training (FORRT)"](https://osf.io/bnh7p/).
diff --git a/content/educators-corner/020-Community-Augmented-Meta-Analyses-in-Education/index.md b/content/educators-corner/020-Community-Augmented-Meta-Analyses-in-Education/index.md index ab5766a2d8d..d9dd4190a72 100644 --- a/content/educators-corner/020-Community-Augmented-Meta-Analyses-in-Education/index.md +++ b/content/educators-corner/020-Community-Augmented-Meta-Analyses-in-Education/index.md @@ -46,7 +46,7 @@ Box 1. The community-augmented approach therefore extends beyond the content development. Like existing [CAMAs](https://github.com/metahag/ELD-CAMA_source) that encourage ***forking*** and reusing established code, we aim to help meta-researchers with similar needs in developing their own database and platform with the template code we share. The beauty of it lies in the flexibility of the components. Users can take some components (e.g., only the SQL database) and build upon them to add new variables, improve the entire platform (e.g., add additional features or dynamic markdowns), or simply reuse it as is to build a platform in a different scientific filed (e.g., medicine). This flexibility facilitates incremental knowledge and collaboration, which is what ELD CAMA and FORRT both strive for. Repository: https://github.com/metahag/ELD-CAMA_source. - +Diagram: ELD CAMA (Evidence in Learning and Didactics Community-Augmented Meta-Analysis) branches into two uses. Use the content: pedagogical tool, meta-research, evidence synthesis. Reuse the code: copy the SQL database, improve the Shiny apps, add new features to the platform. --- diff --git a/content/manuscript/index.md b/content/manuscript/index.md index f7a97366a5b..3f4017f850a 100644 --- a/content/manuscript/index.md +++ b/content/manuscript/index.md @@ -3,6 +3,9 @@ type = "widget_page" headless = false # Homepage is headless, other widget pages are not. title = "Manuscript" +# The code block sits in the headless section file `manuscript.md`, which is not part of +# this page's `.Content`, so Highlight.js has to be requested explicitly. +highlight = true # url = "/forrt/manuscript" +++ diff --git a/layouts/authors/list.html b/layouts/authors/list.html index 0b564e5e322..c73a0121178 100644 --- a/layouts/authors/list.html +++ b/layouts/authors/list.html @@ -35,10 +35,10 @@
{{ with $avatar }} {{ $img := .Fill "270x270 Center" }} - {{ $name }} + {{ $name }} {{ end }}
-

{{ $name }}

+

{{ $name }}

{{ with $page.Params.role }}

{{ . | markdownify | emojify }}

{{ end }} {{ range $page.Params.organizations }}

diff --git a/layouts/partials/announcement_card.html b/layouts/partials/announcement_card.html index f6c922198b2..597cd8a446c 100644 --- a/layouts/partials/announcement_card.html +++ b/layouts/partials/announcement_card.html @@ -12,7 +12,7 @@
{{ with $img }}
- +
{{ end }}
diff --git a/layouts/partials/chatbot.html b/layouts/partials/chatbot.html index cd23767cfa8..8359b0d0fb9 100644 --- a/layouts/partials/chatbot.html +++ b/layouts/partials/chatbot.html @@ -7,9 +7,8 @@ {{ end }} {{ end }} -{{/* Load Inter for the JUST-OS chat UI (the site's body font is Domine). */}} - - +{{/* Load Inter for the JUST-OS chat UI (the site's body font is Domine). + site_head.html already preconnects to the Google Fonts origins. */}}