Skip to content

Team / Members Page#

View Markdown

When ssg.team is enabled, a Markdown page with layout: team renders a static card grid of people instead of (or around) the page body. Names, roles, and link labels are escaped. Avatar and link URLs must be https: or a site-relative path that starts with / and is not //.

The feature is off unless you turn it on. Existing sites stay unchanged. While it is off, layout: team is ignored and the file stays an ordinary page.

import { oxContent } from "@ox-content/vite-plugin";

export default {
  plugins: [
    oxContent({
      ssg: {
        team: {
          members: [
            {
              name: "Ada Lovelace",
              role: "Mathematician",
              avatar: "https://example.com/ada.png",
              links: [{ label: "Website", href: "https://example.com/ada" }],
            },
          ],
        },
      },
    }),
  ],
};

false or omitted keeps the layout inert. true enables an empty member list. An object enables the feature and supplies members.

---
title: Team
layout: team
---

Optional introduction. Safe member cards are rendered above this body.
Option Type Default
ssg.team boolean / TeamOptions false
members TeamMember[] []
name string
role string
avatar string
links { label, href }[]

Rejected avatar and link URLs (javascript:, data:, http:, protocol- relative //) are omitted from the markup. Site-relative paths such as /avatars/ada.png are kept.

Cards use the .ox-team class. Bare mode still runs the same URL and escape rules when generateHtmlPage receives the option.

Last updated: