diff --git a/.github/workflows/create_announcements.yml b/.github/workflows/create_announcements.yml new file mode 100644 index 00000000000..4b38198e93b --- /dev/null +++ b/.github/workflows/create_announcements.yml @@ -0,0 +1,104 @@ +name: Create announcements + +# ===================================================================== +# Generates FORRT announcement posts from the "FORRT Announcements" +# Google Sheet and delivers them to the deploy as an ARTIFACT — it never +# commits to main and never runs the full data-processing pipeline. +# +# Flow: +# 1. Download the previous run's announcements artifact (for the cached +# sheet hash) to decide whether anything changed. +# 2. Run scripts/create_announcements.R. It no-ops (exits early) when the +# sheet hash is unchanged. +# 3. If — and only if — the sheet changed, upload content/post as the +# `announcements-artifact` and fire the `data-update` repository_dispatch. +# +# deploy.yaml downloads `announcements-artifact` and unpacks it over +# content/post before the Hugo build (see "Apply announcements" there). The +# latest successful artifact always holds the full current set of posts, so +# deploys triggered by anything else still pick up the announcements. +# ===================================================================== + +on: + schedule: + - cron: '15 * * * *' # hourly (offset to balance runner load) + workflow_dispatch: + +concurrency: + group: create-announcements + cancel-in-progress: false + +jobs: + announcements: + name: Generate announcements + runs-on: ubuntu-latest + permissions: + contents: read + actions: read # read previous artifact + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Download previous announcements artifact (for change detection) + id: prev + uses: dawidd6/action-download-artifact@07ab29fd4a977ae4d2b275087cf67563dfdf0295 + continue-on-error: true + with: + workflow: create_announcements.yml + name: announcements-artifact + path: .prev + github_token: ${{ secrets.GITHUB_TOKEN }} + search_artifacts: true + if_no_artifact_found: warn + + - name: Seed previous hash + run: | + if [ -f .prev/gs_announcement_hash.txt ]; then + cp .prev/gs_announcement_hash.txt gs_announcement_hash.txt + echo "Seeded previous hash." + else + echo "No previous hash — first run or expired artifact." + fi + + - name: Setup r2u + uses: eddelbuettel/github-actions/r2u-setup@master + + - name: Install R package dependencies + run: Rscript -e 'install.packages(c("googlesheets4", "httr", "digest"))' + + - name: Generate announcement posts + id: gen + run: | + before="$(cat gs_announcement_hash.txt 2>/dev/null || echo none)" + Rscript scripts/create_announcements.R + after="$(cat gs_announcement_hash.txt 2>/dev/null || echo none)" + if [ "$before" = "$after" ]; then + echo "changed=false" >> "$GITHUB_OUTPUT" + echo "Sheet unchanged — nothing to publish." + else + echo "changed=true" >> "$GITHUB_OUTPUT" + echo "Sheet changed — packaging announcements." + fi + + - name: Package announcements + if: steps.gen.outputs.changed == 'true' + run: tar czf announcements.tar.gz content/post + + - name: Upload announcements artifact + if: steps.gen.outputs.changed == 'true' + uses: actions/upload-artifact@v7 + with: + name: announcements-artifact + path: | + announcements.tar.gz + gs_announcement_hash.txt + retention-days: 90 + + - name: Trigger production deploy + if: steps.gen.outputs.changed == 'true' + run: | + curl -s -X POST \ + -H "Authorization: Bearer ${{ secrets.FORRT_PAT }}" \ + -H "Accept: application/vnd.github+json" \ + "https://api.github.com/repos/${{ github.repository }}/dispatches" \ + -d '{"event_type": "data-update"}' diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 7639e0af497..afd5c362e36 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -149,6 +149,31 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} run_id: ${{ steps.data-processing.outputs.run_id }} + # ======================= + # Announcements (generated by create_announcements.yml, delivered as an artifact) + # ======================= + - name: Download announcements artifact + id: download-announcements + uses: dawidd6/action-download-artifact@07ab29fd4a977ae4d2b275087cf67563dfdf0295 + continue-on-error: true + with: + workflow: create_announcements.yml + name: announcements-artifact + path: .announcements + github_token: ${{ secrets.GITHUB_TOKEN }} + search_artifacts: true + if_no_artifact_found: warn + + - name: Apply announcements + if: steps.download-announcements.outcome == 'success' + run: | + if [ -f .announcements/announcements.tar.gz ]; then + echo "📥 Applying announcement posts from artifact..." + tar xzf .announcements/announcements.tar.gz + else + echo "::warning::announcements artifact present but tarball missing; skipping." + fi + # ======================= # Hugo Build Environment # ======================= diff --git a/assets/scss/custom.scss b/assets/scss/custom.scss index c1908fe41b8..e5d6b8ed228 100644 --- a/assets/scss/custom.scss +++ b/assets/scss/custom.scss @@ -2990,3 +2990,326 @@ h1.clusters-site-heading.clusters-hub-page__title { gap: 0.25rem; } } + +/* ============================================================ + * Announcements (card grid) — homepage widget + /post/ page + * ============================================================ */ +.announcements-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.6rem; +} +.announcement-card { + display: flex; + flex-direction: column; + background: #fff; + border: 1px solid #ece9db; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 1px 3px rgba(0, 64, 85, 0.06); + transition: transform 0.15s, box-shadow 0.15s; + color: inherit; + text-decoration: none; + height: 100%; +} +.announcement-card:hover { + transform: translateY(-3px); + box-shadow: 0 8px 22px rgba(0, 64, 85, 0.12); + text-decoration: none; +} +.announcement-card .ac-thumb { + aspect-ratio: 16 / 9; + background: #eef1ec; + overflow: hidden; +} +.announcement-card .ac-thumb img { + width: 100%; + height: 100%; + object-fit: cover; +} +.announcement-card .ac-body { + display: flex; + flex-direction: column; + flex: 1; + padding: 1rem 1.1rem 1.2rem; +} +.announcement-card .ac-meta { + display: flex; + align-items: center; + gap: 0.6rem; + margin-bottom: 0.55rem; +} +.announcement-card .ac-date { + font-size: 0.78rem; + color: #8a8a8a; +} +.announcement-card h3 { + font-size: 1.06rem; + line-height: 1.3; + color: #004055; + margin: 0 0 0.5rem; +} +.announcement-card .ac-summary { + flex: 1; + font-size: 0.9rem; + line-height: 1.5; + color: #4a4a4a; + margin: 0 0 0.9rem; + /* Clamp to a few lines so cards stay even regardless of summary length. */ + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; +} +.announcement-card .ac-summary p { margin: 0; } +.announcement-card .ac-summary a { color: inherit; text-decoration: underline; } +.announcement-card .ac-more { + font-size: 0.86rem; + font-weight: 700; + color: #8e0000; +} +.announcement-card:hover .ac-more { color: #ff6bbc; } + +/* Image-less cards: a slim brand accent on top so they don't read as bare. */ +.announcement-card.no-image { border-top: 3px solid #69b3a2; } +.announcement-card.no-image .ac-body { padding-top: 1.1rem; } + +/* category pills */ +.ac-cat { + display: inline-block; + font-size: 0.68rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.05em; + padding: 0.16rem 0.5rem; + border-radius: 999px; + color: #004055; + background: #d9eef2; +} +.ac-cat.event { color: #7a1f47; background: #f7dce8; } +.ac-cat.opportunity { color: #7a4a00; background: #fbeccd; } +.ac-cat.resource { color: #1f5e52; background: #d8efe9; } +.ac-cat.milestone { color: #5c2e8e; background: #ece0f7; } +.ac-cat.newsletter { color: #004055; background: #d9eef2; } + +.announcements-all { text-align: center; margin-top: 40px; } + +/* dedicated-page filter chips */ +.ac-filters { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + justify-content: center; + margin: 0 0 36px; +} +.ac-chip { + font-family: inherit; + font-size: 0.82rem; + color: #004055; + border: 1px solid #cfd9d3; + background: #fff; + padding: 0.32rem 0.9rem; + border-radius: 999px; + cursor: pointer; +} +.ac-chip.active { background: #004055; color: #fff; border-color: #004055; } + +@media (max-width: 820px) { .announcements-grid { grid-template-columns: 1fr 1fr; } } +@media (max-width: 560px) { .announcements-grid { grid-template-columns: 1fr; } } + +/* ---- YouTube lightbox thumbnail (compact "video in lightbox") ---- */ +.yt-lightbox { + position: relative; + display: block; + width: 100%; + border-radius: 10px; + overflow: hidden; + line-height: 0; +} +.yt-lightbox img { width: 100%; height: auto; } +.yt-lightbox .yt-play { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.18); + transition: background 0.15s; +} +.yt-lightbox:hover .yt-play { background: rgba(0, 0, 0, 0.34); } +.yt-lightbox .yt-play i { + color: #fff; + font-size: 1.6rem; + width: 64px; + height: 64px; + line-height: 64px; + text-align: center; + padding-left: 6px; + border-radius: 50%; + background: rgba(184, 51, 106, 0.92); +} + +/* ============================================================ + * Unified homepage section-heading divider. + * One real rule for every home section title, replacing the ad-hoc + * `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 { + content: ""; + display: block; + height: 1px; + background: rgba(0, 64, 85, 0.18); + margin: 16px auto 0; +} + +/* ============================================================ + * Newsletter (EmailOctopus) submit button — ships Bootstrap-purple; + * repaint it in FORRT teal. High specificity + !important to beat the + * embed's own injected, later-loaded styles. + * ============================================================ */ +[id^="octopus-form"] input.btn.btn-primary, +[id^="octopus-form"] input[type="submit"], +[id^="octopus-form"] button[type="submit"] { + background-color: #004055 !important; + border-color: #004055 !important; + color: #fff !important; +} +[id^="octopus-form"] input.btn.btn-primary:hover, +[id^="octopus-form"] input[type="submit"]:hover, +[id^="octopus-form"] button[type="submit"]:hover { + background-color: #00566f !important; + border-color: #00566f !important; +} + +/* ============================================================ + * Combined Achievements & Awards section (two columns) + * ============================================================ */ +.aa-grid { + display: grid; + grid-template-columns: 1fr 1.05fr; + gap: 2.8rem; + align-items: start; + max-width: 980px; + margin: 0 auto; +} +.aa-col img { max-width: 100%; height: auto; } +.aa-achievements { text-align: center; } +.aa-achievements img { max-width: 440px; } +.aa-awards p:first-child { margin-top: 0; } +@media (max-width: 768px) { + .aa-grid { grid-template-columns: 1fr; gap: 1.4rem; } +} + +/* ============================================================ + * Rotating-quote hero (wg-hero-quotes) + * ============================================================ */ +.hero-quotes { + max-width: 1000px; + margin: 0 auto; + text-align: center; +} +.hq-eyebrow { + font-family: 'Domine', serif; + font-size: 0.82rem; + text-transform: uppercase; + letter-spacing: 0.18em; + color: #69b3a2; + font-weight: 700; + margin: 0 0 1.6rem; +} +/* All quotes share one grid cell so the hero height = tallest quote (no shift). + minmax(0,1fr) stops the column auto-sizing to the longest quote's one-line + (max-content) width, which would otherwise overflow narrow viewports. */ +.hq-stage { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; align-items: center; } +.hq-quote { + grid-area: 1 / 1; + /* Match the site-wide section-title treatment: Domine, weight 400, #313131. */ + font-family: 'Domine', serif; + color: #313131; + font-weight: 400; + font-size: 3.3rem; + line-height: 1.22; + margin: 0 auto; + max-width: 22ch; + /* Neutralise the theme's default blockquote treatment (left border, padding). */ + border: 0; + padding: 0; + /* Resting state: waiting just below, hidden. Active slides up into place; + leaving keeps sliding up and out — a continuous upward motion. */ + opacity: 0; + transform: translateY(34px); + transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1); + pointer-events: none; +} +.hq-quote.is-active { opacity: 1; transform: translateY(0); pointer-events: auto; } +.hq-quote.is-leaving { opacity: 0; transform: translateY(-34px); } +.hq-quote .accent { color: #b8336a; } +@media (prefers-reduced-motion: reduce) { + .hq-quote { transition: opacity 0.4s ease; transform: none; } + .hq-quote.is-leaving { transform: none; } +} +.hq-actions { + display: flex; + gap: 0.8rem; + justify-content: center; + margin-top: 1.8rem; +} +.hq-dots { + display: flex; + gap: 0.5rem; + justify-content: center; + margin-top: 1.8rem; +} +.hq-dot { + width: 9px; + height: 9px; + padding: 0; + border: 0; + border-radius: 50%; + background: #d8d4c2; + cursor: pointer; + transition: background 0.2s, transform 0.2s; +} +.hq-dot:hover { transform: scale(1.2); } +.hq-dot.on { background: #b8336a; } +@media (max-width: 992px) { .hq-quote { font-size: 2.5rem; } } +@media (max-width: 640px) { .hq-quote { font-size: 1.8rem; max-width: 18ch; overflow-wrap: break-word; } } +@media (max-width: 430px) { .hq-quote { font-size: 1.42rem; max-width: 17ch; } } + +/* ---- Compress the hero: cap the logo height so the top of the site is tighter. + Base rule keeps the logo within the viewport on every screen; the height + cap (which needs width:auto) only kicks in on large screens. ---- */ +.wg-hero-welcome .hero-media img { + max-width: 100%; + height: auto; +} +@media (min-width: 992px) { + .wg-hero-welcome .hero-media img { + width: auto; + max-height: 240px; + margin: 0 auto; + display: block; + } +} + +/* ---- "What is FORRT?" media column: logo + video stacked, text beside it. ---- */ +.wg-about-welcome .avatar { + width: 170px; + height: 170px; +} +.wg-about-welcome .profile-video { + display: block; + width: 100%; + max-width: 280px; + margin: 1.4rem auto 0; +} +.wg-about-welcome #profile { text-align: center; } +.wg-about-welcome .network-icon { margin-top: 1.1rem; } +/* On mobile, lead with the heading + intro text, then the logo/video/socials. */ +@media (max-width: 991px) { + .wg-about-welcome .row { flex-direction: column; } + .wg-about-welcome .col-lg-8 { order: 1; } + .wg-about-welcome .col-lg-4 { order: 2; margin-top: 1.5rem; } +} diff --git a/content/authors/forrt/_index.md b/content/authors/forrt/_index.md index 82b06685a26..1bb12b70d17 100644 --- a/content/authors/forrt/_index.md +++ b/content/authors/forrt/_index.md @@ -52,13 +52,8 @@ user_groups: display_name: false --- -*** In a nutshell, FORRT is a ***F***ramework for ***O***pen and ***R***eproducible ***R***esearch ***T***raining advancing research transparency, reproducibility, rigor, and ethics through pedagogical reform and meta-scientific research. FORRT provides a pedagogical infrastructure & didactic resources designed to recognize and support the teaching and mentoring of open and reproducible science. FORRT strives to raise awareness of the pedagogical implications of open and reproducible science and its associated challenges (i.e., curricular reform, epistemological uncertainty, methods of education) and advocates for the opening and formal recognition of teaching and mentoring materials to facilitate access, discovery, and learning to those who otherwise would be educationally disenfranchised. -{{< youtube XlL54egjSoA >}} - -
- {{< expand "Expand to learn more" >}} diff --git a/content/home/1-hero.md b/content/home/1-hero.md index a21073fe896..a75d385a46c 100644 --- a/content/home/1-hero.md +++ b/content/home/1-hero.md @@ -1,56 +1,35 @@ +++ -# Hero widget. -widget = "hero_welcome" # See https://sourcethemes.com/academic/docs/page-builder/ +# Rotating-quote hero (see layouts/partials/widgets/hero_quotes.html). +widget = "hero_quotes" headless = true # This file represents a page section. active = true # Activate this widget? true/false weight = 10 # Order that this section will appear. -title = "Framework for
Open and
Reproducible
Research
Training" +eyebrow = "FORRT — a fort and a force" -# Hero image (optional). Enter filename of an image in the `static/img/` folder. -hero_media = "FORRT.svg" -hero_media_alttext = "Logo of FORRT is a fort." -# [design.spacing] -# # Customize the section spacing. Order is top, right, bottom, left. -# padding = ["20px", "0", "20px", "0"] - -[design.background] - # Apply a background color, gradient, or image. - # Uncomment (by removing `#`) an option to apply it. - # Choose a light or dark text color by setting `text_color_light`. - # Any HTML color name or Hex value is valid. +# Key statements to cycle through. Wrap the part to highlight in +# . Drawn from FORRT's vision and mission. +[[quote]] + text = 'Care is not a distraction from the work. It is the work.' +[[quote]] + text = 'Scientific excellence and social justice, inseparable.' +[[quote]] + text = 'From a culture of competition to one of community.' +[[quote]] + text = 'Teaching and community building, on equal footing with discovery.' - # Background color. - # color = "#fefdf6" - - # Background gradient. - # gradient_start = "#4bb4e3" - # gradient_end = "#2b94c3" - - # Background image. - # image = "FORRT.svg" # Name of image in `static/img/`. - # image_darken = 0.6 # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque. - # image_size = "cover" # Options are `cover` (default), `contain`, or `actual` size. - # image_position = "center" # Options include `left`, `center` (default), or `right`. - # image_parallax = true # Use a fun parallax-like fixed background effect? true/false - - # Text color (true=light or false=dark). - text_color_light = false +[primary_cta] + label = "Get involved" + url = "/about/get-involved/" + +[secondary_cta] + label = "About FORRT" + url = "/about/us/" -# Call to action links (optional). -# Display link(s) by specifying a URL and label below. Icon is optional for `[cta]`. -# Remove a link/note by deleting a cta/note block. -# [cta] -# url = "https://sourcethemes.com/academic/docs/install/" -# label = "Get Started" -# icon_pack = "fas" -# icon = "download" - -# [cta_alt] -# url = "https://sourcethemes.com/academic/" -# label = "View Documentation" +[design.spacing] + # Customize the section spacing. Order is top, right, bottom, left. + padding = ["60px", "0", "56px", "0"] -# Note. An optional note to show underneath the links. -# [cta_note] -# label = 'Latest release' -+++ \ No newline at end of file +[design.background] + text_color_light = false ++++ diff --git a/content/home/2-welcome.md b/content/home/2-welcome.md index 6df2f9e526b..467c054110c 100644 --- a/content/home/2-welcome.md +++ b/content/home/2-welcome.md @@ -5,7 +5,7 @@ widget = "blank" # See https://sourcethemes.com/academic/docs/page-builder/ headless = true # This file represents a page section. -active = true # Activate this widget? true/false +active = false # Disabled: redundant with the hero. Its tagline now lives in the hero lead (1-hero.md). weight = 20 # Order that this section will appear. title = "**Welcome to FORRT**
------
" diff --git a/content/home/3-what-is-forrt.md b/content/home/3-what-is-forrt.md index 9efc6d972d9..9d84446eedf 100644 --- a/content/home/3-what-is-forrt.md +++ b/content/home/3-what-is-forrt.md @@ -12,9 +12,12 @@ title = "What is FORRT?" # See https://sourcethemes.com/academic/docs/get-started/#introduce-yourself author = "forrt" +# YouTube video shown (as a click-to-play lightbox) in the left media column. +video_id = "XlL54egjSoA" + [design.spacing] # Customize the section spacing. Order is top, right, bottom, left. - padding = ["60px", "0", "60px", "0"] + padding = ["24px", "0", "24px", "0"] +++ diff --git a/content/home/3b-announcements.md b/content/home/3b-announcements.md new file mode 100644 index 00000000000..a19849217e3 --- /dev/null +++ b/content/home/3b-announcements.md @@ -0,0 +1,17 @@ ++++ +# Announcements section (custom card widget). +widget = "announcements" # See layouts/partials/widgets/announcements.html +headless = true # This file represents a page section. +active = true # Activate this widget? true/false +weight = 35 # Order that this section will appear (after "What is FORRT?", before Products). + +title = "News & Announcements" +# Divider under the header comes from the shared .home-section heading rule (custom.scss). + +# Number of recent announcements to show. +count = 3 + +[design.spacing] + # Customize the section spacing. Order is top, right, bottom, left. + padding = ["20px", "0", "50px", "0"] ++++ diff --git a/content/home/4-products.md b/content/home/4-products.md index 6f081926ff0..4a51caa5b47 100644 --- a/content/home/4-products.md +++ b/content/home/4-products.md @@ -6,8 +6,6 @@ active = true # Activate this widget? true/false weight = 40 # Order that this section will appear. title = "Open Educational Resources &
Metascientific Works" -subtitle = "---" - # Showcase personal skills or business features. # diff --git a/content/home/5-achievements.md b/content/home/5-achievements.md index 0cd4ce648c1..158b7a479ca 100644 --- a/content/home/5-achievements.md +++ b/content/home/5-achievements.md @@ -1,67 +1,39 @@ +++ -# A Demo section created with the Blank widget. -# Any elements can be added in the body: https://sourcethemes.com/academic/docs/writing-markdown-latex/ -# Add more sections by duplicating this file and customizing to your requirements. - +# Combined Achievements & Awards section (two columns). widget = "blank" # See https://sourcethemes.com/academic/docs/page-builder/ headless = true # This file represents a page section. active = true # Activate this widget? true/false weight = 50 # Order that this section will appear. -title = "Achievements" -subtitle = "---" - +title = "Achievements & Awards" [design] # Choose how many columns the section has. Valid values: 1 or 2. columns = "1" [design.background] - # Apply a background color, gradient, or image. - # Uncomment (by removing `#`) an option to apply it. - # Choose a light or dark text color by setting `text_color_light`. - # Any HTML color name or Hex value is valid. - - # Background color. - color = "#fefdf6" - - # Background gradient. - # gradient_start = "DeepSkyBlue" - # gradient_end = "SkyBlue" - - # Background image. - # image = "headers/bubbles-wide.webp" # Name of image in `static/img/`. - # image_darken = 0.6 # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque. - # image_size = "cover" # Options are `cover` (default), `contain`, or `actual` size. - # image_position = "center" # Options include `left`, `center` (default), or `right`. - # image_parallax = true # Use a fun parallax-like fixed background effect? true/false - - # Text color (true=light or false=dark). + color = "#fefdf6" text_color_light = false [design.spacing] # Customize the section spacing. Order is top, right, bottom, left. - padding = ["60px", "0", "60px", "0"] - -[advanced] - # Custom CSS. - css_style = "" - - # CSS class. - css_class = "" + padding = ["40px", "0", "40px", "0"] +++ -
- -
+
+
-
+![FORRT achievements infographic](/img/Achievements.webp) -![FORRT Awards](/img/Achievements.webp) +
+
-
+FORRT has won a series of awards and commendations for our work, including: -
+- The UK Reproducibility Network's Dorothy Bishop Prize +- Open Science Community Amsterdam's OSC Award in the Open Educational Resources / Open Education / Open Online Courses category +- An Open Scholarship Prize (1st Place) award from the Atlantic Technological University and the Open Science Community Galway - +To find out more about these and more, read [FORRT's awards page](/awards). -
+ + diff --git a/content/home/5-awards.md b/content/home/5-awards.md index c3ca44d8d9d..7fe1a490070 100644 --- a/content/home/5-awards.md +++ b/content/home/5-awards.md @@ -5,7 +5,7 @@ widget = "blank" # See https://sourcethemes.com/academic/docs/page-builder/ headless = true # This file represents a page section. -active = true # Activate this widget? true/false +active = false # Disabled: merged into 5-achievements.md as a two-column "Achievements & Awards" section. weight = 50 # Order that this section will appear. title = "Awards" diff --git a/content/home/5-get-involved.md b/content/home/5-get-involved.md index d65cb50b102..fc603108271 100644 --- a/content/home/5-get-involved.md +++ b/content/home/5-get-involved.md @@ -6,9 +6,6 @@ active = true # Activate this widget? true/false weight = 60 # Order that this section will appear. title = "How can you help?" -subtitle = "---" - - # Add/remove as many `[[feature]]` blocks below as you like. # # For available icons, see: https://sourcethemes.com/academic/docs/widgets/#icons diff --git a/content/post/2026-01-newsletter/featured.jpg b/content/post/2026-01-newsletter/featured.jpg new file mode 100644 index 00000000000..222ba949206 Binary files /dev/null and b/content/post/2026-01-newsletter/featured.jpg differ diff --git a/content/post/2026-01-newsletter/index.md b/content/post/2026-01-newsletter/index.md new file mode 100644 index 00000000000..2503457168a --- /dev/null +++ b/content/post/2026-01-newsletter/index.md @@ -0,0 +1,14 @@ +--- +title: "FORRT Newsletter — January 2026" +date: 2026-01-28 +tags: [] +categories: + - Newsletter +authors: ["FORRT"] +--- + +Marks the launch of the **Replication Research (R²) journal** with its inaugural editorial, and introduces the **FORWARD (FORRT for World Development)** initiative aligned with UNESCO's International Decade of Sciences for Sustainable Development. It also flags upcoming events including Love Replications Week and the Making Replications Count Hackathon. + + + +[Read the newsletter](https://eocampaign1.com/web-version?p=fe198ab4-f705-11f0-b264-b3838bc6094d&pt=campaign&t=1769634321&s=8d9de871b0b694f3fb7ea79f9d5365fb858c018631402d1f306912c583e846e0) diff --git a/content/post/2026-02-newsletter/featured.jpg b/content/post/2026-02-newsletter/featured.jpg new file mode 100644 index 00000000000..222ba949206 Binary files /dev/null and b/content/post/2026-02-newsletter/featured.jpg differ diff --git a/content/post/2026-02-newsletter/index.md b/content/post/2026-02-newsletter/index.md new file mode 100644 index 00000000000..df0d43dffaa --- /dev/null +++ b/content/post/2026-02-newsletter/index.md @@ -0,0 +1,14 @@ +--- +title: "FORRT Newsletter — February 2026" +date: 2026-02-25 +tags: [] +categories: + - Newsletter +authors: ["FORRT"] +--- + +Previews **Love Replications Week** (2–6 March), a **Team Credit Hackathon** (9 March), and the in-person **Making Replications Count Hackathon** (4–6 May). It introduces new tools — **ARIADNE**, the **FReD Explorer App**, and the **FLoRA Annotator** — with the FReD database now holding over 1,000 replication findings. + + + +[Read the newsletter](https://eocampaign1.com/web-version?p=e0c335de-11b6-11f1-a1c2-6ba123ee4ad5&pt=campaign&t=1772047352&s=dec61220bf547f2a4345d54a8819f206f19df3923ec3234ae2e98517cbe4d9a7) diff --git a/content/post/2026-03-newsletter/featured.jpg b/content/post/2026-03-newsletter/featured.jpg new file mode 100644 index 00000000000..222ba949206 Binary files /dev/null and b/content/post/2026-03-newsletter/featured.jpg differ diff --git a/content/post/2026-03-newsletter/index.md b/content/post/2026-03-newsletter/index.md new file mode 100644 index 00000000000..cdde609b3f3 --- /dev/null +++ b/content/post/2026-03-newsletter/index.md @@ -0,0 +1,14 @@ +--- +title: "FORRT Newsletter — March 2026" +date: 2026-03-31 +tags: [] +categories: + - Newsletter +authors: ["FORRT"] +--- + +Shares the launch of **Round 3 of the Predicting Replicability Challenge** (22 April). It also highlights recordings from **Love Replications Week** and the **Zotero Replication Checker**, now available in five languages. + + + +[Read the newsletter](https://eocampaign1.com/web-version?p=37587f24-13bc-11f1-a58e-016a4c8ed9d0&pt=campaign&t=1774939747&s=0364890f4fe6275bb6fcf840a4994b12cab30ff7fa9428df282730367dd893bb) diff --git a/content/post/2026-04-newsletter/featured.jpg b/content/post/2026-04-newsletter/featured.jpg new file mode 100644 index 00000000000..222ba949206 Binary files /dev/null and b/content/post/2026-04-newsletter/featured.jpg differ diff --git a/content/post/2026-04-newsletter/index.md b/content/post/2026-04-newsletter/index.md new file mode 100644 index 00000000000..8dbaffbfa57 --- /dev/null +++ b/content/post/2026-04-newsletter/index.md @@ -0,0 +1,14 @@ +--- +title: "FORRT Newsletter — April 2026" +date: 2026-04-30 +tags: [] +categories: + - Newsletter +authors: ["FORRT"] +--- + +Contains a call for contributors to the **FLoRA** replication library, alongside the new interactive **Re-Search Terms app**. It also invites responses to the Big Team Science Experience and Tools & Infrastructure surveys (deadline 18 May). + + + +[Read the newsletter](https://eocampaign1.com/web-version?p=8644de88-42bb-11f1-bea3-9d65e0900500&pt=campaign&t=1777532460&s=1106ac34f85bfa9f49456127a0721dc5de49dcde3135c164ab272a08a51f553e) diff --git a/content/post/2026-05-chinese-glossary/featured.jpg b/content/post/2026-05-chinese-glossary/featured.jpg new file mode 100644 index 00000000000..5040beb4baa Binary files /dev/null and b/content/post/2026-05-chinese-glossary/featured.jpg differ diff --git a/content/post/2026-05-chinese-glossary/index.md b/content/post/2026-05-chinese-glossary/index.md new file mode 100644 index 00000000000..b28ac04a04c --- /dev/null +++ b/content/post/2026-05-chinese-glossary/index.md @@ -0,0 +1,14 @@ +--- +title: "Chinese-language Glossary of Open Scholarship terms" +date: 2026-05-31 +tags: [] +categories: + - Resource +authors: ["FORRT"] +--- + +FORRT's **Glossary of Open Scholarship** terms is now available in **Chinese**, lowering the barrier to understanding and participating in open-science discussions for Chinese-speaking researchers and students. It joins the existing English, German, and Arabic versions. + + + +[Explore the glossary](/glossary/chinese/) diff --git a/content/post/2026-05-get-involved-page/featured.jpg b/content/post/2026-05-get-involved-page/featured.jpg new file mode 100644 index 00000000000..2a76d180bb4 Binary files /dev/null and b/content/post/2026-05-get-involved-page/featured.jpg differ diff --git a/content/post/2026-05-get-involved-page/index.md b/content/post/2026-05-get-involved-page/index.md new file mode 100644 index 00000000000..d7a74d0b3ad --- /dev/null +++ b/content/post/2026-05-get-involved-page/index.md @@ -0,0 +1,14 @@ +--- +title: "Updated Get Involved page" +date: 2026-05-07 +tags: [] +categories: + - Resource +authors: ["FORRT"] +--- + +The **Get Involved** page has been updated and rebuilt, and we have made it easier to keep the updates coming. So if you are looking for ways to get involved, have a look at the current opportunities now. + + + +[Get involved](/about/get-involved/) diff --git a/content/post/2026-05-just-os-chatbot/featured.jpg b/content/post/2026-05-just-os-chatbot/featured.jpg new file mode 100644 index 00000000000..9ba3c86ad44 Binary files /dev/null and b/content/post/2026-05-just-os-chatbot/featured.jpg differ diff --git a/content/post/2026-05-just-os-chatbot/index.md b/content/post/2026-05-just-os-chatbot/index.md new file mode 100644 index 00000000000..0550f6a1f65 --- /dev/null +++ b/content/post/2026-05-just-os-chatbot/index.md @@ -0,0 +1,14 @@ +--- +title: "JUST-OS chatbot launched to help navigate Open Science resources" +date: 2026-05-07 +tags: [] +categories: + - Resource +authors: ["FORRT"] +--- + +**JUST-OS**, an AI-based chatbot developed by researchers at the **University of Groningen** and FORRT, is now live on our website. It gives user-friendly, tailored guidance to help researchers find relevant Open Science resources. Try it out and share your feedback. + + + +[Try the chatbot](/just_os_chatbot/) diff --git a/content/post/2026-05-newsletter/featured.jpg b/content/post/2026-05-newsletter/featured.jpg new file mode 100644 index 00000000000..222ba949206 Binary files /dev/null and b/content/post/2026-05-newsletter/featured.jpg differ diff --git a/content/post/2026-05-newsletter/index.md b/content/post/2026-05-newsletter/index.md new file mode 100644 index 00000000000..f0f52093d53 --- /dev/null +++ b/content/post/2026-05-newsletter/index.md @@ -0,0 +1,14 @@ +--- +title: "FORRT Newsletter — May 2026" +date: 2026-05-28 +tags: [] +categories: + - Newsletter +authors: ["FORRT"] +--- + +Announces the **Replication Hub Showcase** (1 July 2026, online) and a **‘CRediTing in BTS’ hackathon at SIPS 2026** in Washington, DC, plus a call for validators for **FLoRA**, FORRT's replication database of over 2,000 study pairs. Applications are also open for the **LMU Open Science Summer School 2026** (deadline 6 July). + + + +[Read the newsletter](https://eocampaign1.com/web-version?p=fc2dc0f2-5a02-11f1-acce-9d9105ec3473&pt=campaign&t=1779997339&s=3af80e5a532a00aab817156af2b3a85643ab7b668d1960d384ba6d9ee2072ddd) diff --git a/content/post/2026-05-nowhere-lab/featured.jpg b/content/post/2026-05-nowhere-lab/featured.jpg new file mode 100644 index 00000000000..90dcd0d0034 Binary files /dev/null and b/content/post/2026-05-nowhere-lab/featured.jpg differ diff --git a/content/post/2026-05-nowhere-lab/index.md b/content/post/2026-05-nowhere-lab/index.md new file mode 100644 index 00000000000..e4d2a4e00d7 --- /dev/null +++ b/content/post/2026-05-nowhere-lab/index.md @@ -0,0 +1,14 @@ +--- +title: "Nowhere Lab: an online community for those without a lab" +date: 2026-05-12 +tags: [] +categories: + - Resource +authors: ["FORRT"] +--- + +FORRT welcomes **Nowhere Lab** into our community - a space for anyone without a lab who wants the lab-meeting experience — new faculty, ex-academics, freelancers, and keen undergrads. Their members have also produced a **PhD Survival Guide**. Check the website, or join their [channel on Slack](https://forrt.slack.com/archives/C0B0FKG3GH2). + + + +[Read more](/nowherelab/) diff --git a/content/post/2026-06-ai-metascience-call/featured.jpg b/content/post/2026-06-ai-metascience-call/featured.jpg new file mode 100644 index 00000000000..14916127430 Binary files /dev/null and b/content/post/2026-06-ai-metascience-call/featured.jpg differ diff --git a/content/post/2026-06-ai-metascience-call/index.md b/content/post/2026-06-ai-metascience-call/index.md new file mode 100644 index 00000000000..be74dec6aff --- /dev/null +++ b/content/post/2026-06-ai-metascience-call/index.md @@ -0,0 +1,14 @@ +--- +title: "FORRT AI in Metascience Online Conference: Call for Submissions" +date: 2026-06-14 +tags: [] +categories: + - Opportunity +authors: ["FORRT"] +--- + +We are inviting submissions for a **free online conference (28–30 September 2026)** exploring how AI and large language models can help us understand and improve how science works. Talks, workshops, and hackathon proposals are welcome from all career stages, with a **submission deadline of 31 July 2026**. + + + +[Find out more and submit your proposal](/ai-metascience/) diff --git a/content/post/2026-06-peer-community-in-partner/featured.jpg b/content/post/2026-06-peer-community-in-partner/featured.jpg new file mode 100644 index 00000000000..792c01c5bc4 Binary files /dev/null and b/content/post/2026-06-peer-community-in-partner/featured.jpg differ diff --git a/content/post/2026-06-peer-community-in-partner/index.md b/content/post/2026-06-peer-community-in-partner/index.md new file mode 100644 index 00000000000..26488321300 --- /dev/null +++ b/content/post/2026-06-peer-community-in-partner/index.md @@ -0,0 +1,14 @@ +--- +title: "Peer Community In joins FORRT's partners" +date: 2026-06-10 +tags: [] +categories: + - Milestone +authors: ["FORRT"] +--- + +FORRT has added **Peer Community In (PCI)** and the **Peer Community Journal** to its network of partners. PCI offers thematic platforms to review preprints, and PCJ is a multidisciplinary, indexed, **diamond open-access** journal where validated preprints can be published free of charge for authors. + + + +[See our partners](/about/partnerships/) diff --git a/content/post/_index.md b/content/post/_index.md new file mode 100644 index 00000000000..e6a13e3f34d --- /dev/null +++ b/content/post/_index.md @@ -0,0 +1,7 @@ +--- +title: "News & Announcements" +summary: "Newsletters, events, opportunities and new resources from across the FORRT community." +header: + caption: "" + image: "" +--- diff --git a/gs_announcement_hash.txt b/gs_announcement_hash.txt new file mode 100644 index 00000000000..4cb8b208ee4 --- /dev/null +++ b/gs_announcement_hash.txt @@ -0,0 +1 @@ +5ae74c7b28ade46610a05161a8124a47 diff --git a/layouts/partials/announcement_card.html b/layouts/partials/announcement_card.html new file mode 100644 index 00000000000..3480c1932e0 --- /dev/null +++ b/layouts/partials/announcement_card.html @@ -0,0 +1,22 @@ +{{/* Renders one announcement card. Context (.) is the post page. */}} +{{ $post := . }} +{{ $img := ($post.Resources.ByType "image").GetMatch "*featured*" }} +{{ $cat := "" }}{{ with $post.Params.categories }}{{ $cat = index . 0 }}{{ end }} + + {{ with $img }} +
+ +
+ {{ end }} +
+
+ {{ with $cat }}{{ . }}{{ end }} + {{ $post.Date.Format "Jan 2006" }} +
+

{{ $post.Title }}

+ {{/* Render the rendered-markdown summary as HTML so formatting (bold, links) + and typographic entities (’, —) display correctly; CSS clamps the height. */}} +
{{ $post.Summary }}
+ Read more › +
+
diff --git a/layouts/partials/chatbot.html b/layouts/partials/chatbot.html index 05ec6276884..cd23767cfa8 100644 --- a/layouts/partials/chatbot.html +++ b/layouts/partials/chatbot.html @@ -867,6 +867,20 @@ top: 80px; } + /* On mobile there's no room to the left of the seal, so drop the + "How can I help you?" bubble below it instead. */ + #just-os-bubble, + #just-os-widget.is-offline #just-os-bubble { + top: 92px; + right: 0; + left: auto; + transform: translateY(-8px); + } + #just-os-btn:hover #just-os-bubble, + .bubble-visible { + transform: translateY(0) !important; + } + #just-os-window { width: 100vw; } diff --git a/layouts/partials/widgets/about_welcome.html b/layouts/partials/widgets/about_welcome.html index a25a6b23437..c00818fd168 100644 --- a/layouts/partials/widgets/about_welcome.html +++ b/layouts/partials/widgets/about_welcome.html @@ -43,6 +43,13 @@

{{ end }} + {{ with $page.Params.video_id }} + + Play introduction video + + + {{ end }} +