website: Use Docusaurus Frontmatter for badges (#12893)

website/docs: Reduce redundant usage of badges. Move badge logic to components.

- Fix JSX class name warning.
- Remove duplicate titles.
- Flesh out `support_level` frontmatter.
This commit is contained in:
Teffen Ellis
2025-02-19 19:03:05 +01:00
committed by GitHub
parent df2e3878d5
commit a714c781a6
214 changed files with 930 additions and 748 deletions

View File

@ -0,0 +1,38 @@
import React from "react";
import { coerce } from "semver";
export interface AuthentikVersionProps {
semver: string;
}
/**
* Badge indicating semantic versioning of authentik required for a feature or integration.
*/
export const VersionBadge: React.FC<AuthentikVersionProps> = ({ semver }) => {
const parsed = coerce(semver);
if (!parsed) {
throw new Error(`Invalid semver version: ${semver}`);
}
const yearCutoff = new Date().getFullYear() - 2;
if (parsed.major <= yearCutoff) {
throw new Error(
`Semver version <= ${yearCutoff} is not supported: ${semver}`,
);
}
return (
<span
title={`Available in authentik ${parsed.format()} and later`}
aria-description="Version badge"
role="img"
className="badge badge--version"
>
authentik:&nbsp;{parsed.format()}+
</span>
);
};
export default VersionBadge;