From 0d57a759151e8de24762499df0ee6cd1ebf2039b Mon Sep 17 00:00:00 2001 From: Lukas Heumos Date: Tue, 6 Oct 2026 18:38:12 +0200 Subject: [PATCH 1/2] Add a partners page with BioContextAI The page lists partners from front matter, so adding one later is a new [[partners]] block plus a logo in static/img/partners/. The BioContextAI logo is their official logo.svg from biocontext-ai/website (Apache-2.0), unmodified, shown on a light panel so it stays readable in dark mode. The page is linked from the About menu, the footer and llms.txt. The join and events pages carried identical copies of the card link-row styles; they now share a .card-links class with the partners page. Their rendered content is pixel-identical to main. --- assets/main.scss | 125 ++++++++++++++++++--------- content/partners/_index.md | 29 +++++++ layouts/events/list.html | 2 +- layouts/index.llms.txt | 1 + layouts/join/list.html | 2 +- layouts/partials/footer.html | 1 + layouts/partials/header.html | 1 + layouts/partners/list.html | 30 +++++++ static/img/partners/biocontextai.svg | 36 ++++++++ 9 files changed, 183 insertions(+), 44 deletions(-) create mode 100644 content/partners/_index.md create mode 100644 layouts/partners/list.html create mode 100644 static/img/partners/biocontextai.svg diff --git a/assets/main.scss b/assets/main.scss index 1faf4183..6bd1ea23 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -447,27 +447,6 @@ $-hues: border-radius: 50%; } - .events-meeting-links { - display: flex; - flex-wrap: wrap; - gap: 0.4rem 1.25rem; - margin: auto 0 0; - padding: 1.25rem 0 0; - list-style: none; - - a { - font-size: 0.95rem; - font-weight: 500; - color: var(--bs-fg-1); - text-decoration-color: var(--bs-border-emphasized); - text-underline-offset: 0.2em; - - &:hover { - text-decoration-color: currentColor; - } - } - } - @media (max-width: 50rem) { .events-upcoming { grid-template-columns: 1fr; @@ -541,27 +520,6 @@ $-hues: margin: 0; } - .join-card-links { - display: flex; - flex-wrap: wrap; - gap: 0.4rem 1.25rem; - list-style: none; - margin: auto 0 0; - padding: 1.25rem 0 0; - - a { - font-size: 0.95rem; - font-weight: 500; - color: var(--bs-fg-1); - text-decoration-color: var(--bs-border-emphasized); - text-underline-offset: 0.2em; - - &:hover { - text-decoration-color: currentColor; - } - } - } - &.post-content h2.join-section-title { font-size: 1.1rem; font-weight: 700; @@ -641,6 +599,89 @@ $-hues: } } +#partners-content { + .partners-lead { + margin: 0 0 2.5rem; + font-size: 1.1rem; + color: var(--bs-fg-2); + } + + .partner-card { + display: grid; + grid-template-columns: 14rem minmax(0, 1fr); + gap: 2.5rem; + align-items: center; + margin-bottom: 1rem; + padding: 2rem; + background-color: var(--bs-bg-1); + border: 1px solid var(--bs-border-color); + border-radius: var(--card-radius); + + @media (max-width: 50rem) { + grid-template-columns: 1fr; + gap: 1.5rem; + padding: 1.5rem; + } + } + + // Partner logos are drawn for a light background, like the ones in the media kit + .partner-logo { + display: grid; + place-items: center; + aspect-ratio: 3 / 2; + padding: 1.5rem; + color-scheme: light; + background-color: var(--bs-white); + border-radius: var(--card-radius); + + img { + max-width: 100%; + max-height: 6rem; + } + } + + .partner-body { + h2 { + margin: 0 0 0.5rem; + font-size: 1.3rem; + font-weight: 700; + color: var(--bs-fg-1); + } + + p { + margin: 0; + line-height: 1.7; + color: var(--bs-fg-2); + } + } + + .partners-contact { + margin: 2rem 0 0; + color: var(--bs-fg-2); + } +} + +.card-links { + display: flex; + flex-wrap: wrap; + gap: 0.4rem 1.25rem; + margin: auto 0 0; + padding: 1.25rem 0 0; + list-style: none; + + a { + font-size: 0.95rem; + font-weight: 500; + color: var(--bs-fg-1); + text-decoration-color: var(--bs-border-emphasized); + text-underline-offset: 0.2em; + + &:hover { + text-decoration-color: currentColor; + } + } +} + h1 { font-weight: 800; } diff --git a/content/partners/_index.md b/content/partners/_index.md new file mode 100644 index 00000000..bfb7f9ef --- /dev/null +++ b/content/partners/_index.md @@ -0,0 +1,29 @@ ++++ +title = "Partners" +description = "Organisations scverse works with to build tools and infrastructure for its community." +lead = "Organisations we work with to build tools and infrastructure for the scverse community." +contact = "Interested in partnering with scverse? Write to the [steering council](mailto:steering-council@scverse.org)." + +[[partners]] + name = "BioContextAI" + url = "https://biocontext.ai/" + logo = "/img/partners/biocontextai.svg" + text = """BioContextAI runs a community registry of Model Context Protocol (MCP) servers, which give AI agents standard access to biomedical databases and software. +Together we build scverse MCP servers, so that agents can explore omics data and write analyses on top of the scverse ecosystem.""" + + [[partners.links]] + label = "MCP registry" + url = "https://biocontext.ai/registry" + + [[partners.links]] + label = "Announcement" + url = "/blog/2025-11-biocontextai/" + + [[partners.links]] + label = "Zulip channel" + url = "https://scverse.zulipchat.com/#narrow/channel/518508-biocontext-ai" + + [[partners.links]] + label = "Nature Biotechnology correspondence" + url = "https://www.nature.com/articles/s41587-025-02900-9" ++++ diff --git a/layouts/events/list.html b/layouts/events/list.html index f36670a1..9a246430 100644 --- a/layouts/events/list.html +++ b/layouts/events/list.html @@ -32,7 +32,7 @@

Upcoming

{{ .title }}

{{ .schedule }}

{{ .text }}

-