MedASR-Bench / src /app /layout.tsx
ngoan
MedASR Bench: full platform + Hugging Face Docker Space packaging
d70f132
Raw
History Blame Contribute Delete
4.82 kB
import type { Metadata } from "next";
import Link from "next/link";
import { Be_Vietnam_Pro, IBM_Plex_Mono, Instrument_Serif } from "next/font/google";
import SiteNav from "@/components/SiteNav";
import AmbientEffects from "@/components/ui/AmbientEffects";
import { getDataset, HARNESS_VERSION, NORMALIZER_VERSION } from "@/lib/data";
import "./globals.css";
const display = Instrument_Serif({
weight: "400",
style: ["normal", "italic"],
subsets: ["latin"],
variable: "--font-display",
});
const body = Be_Vietnam_Pro({
weight: ["400", "500", "600", "700"],
subsets: ["vietnamese", "latin"],
variable: "--font-body",
});
const mono = IBM_Plex_Mono({
weight: ["400", "500", "600"],
subsets: ["latin"],
variable: "--font-mono",
});
export const metadata: Metadata = {
title: {
default: "MedASR Bench — Vietnamese Medical ASR Benchmark",
template: "%s · MedASR Bench",
},
description:
"Public benchmark for Vietnamese medical speech recognition with English code-switching, anchored on ViMedCSS. Part of the Clinical Scribe program.",
};
const footerLink =
"transition-colors duration-200 ease-out hover:text-text focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent/70";
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const dataset = getDataset();
return (
<html
lang="en"
className={`${display.variable} ${body.variable} ${mono.variable} h-full antialiased`}
>
<body className="flex min-h-full flex-col scroll-smooth">
<AmbientEffects />
<SiteNav />
<main className="mx-auto w-full max-w-6xl flex-1 px-4 py-10 md:px-6">
{children}
</main>
<footer className="edge-accent hairline-t mt-16">
<div className="mx-auto grid max-w-6xl gap-8 px-4 py-7 md:grid-cols-3 md:px-6">
{/* wordmark + program */}
<div className="flex flex-col gap-1.5">
<p className="font-display text-lg leading-none text-text">
<em className="italic">Med</em>ASR&nbsp;Bench
</p>
<p className="text-[12px] leading-relaxed text-muted">
Part of the <span className="text-text">Clinical Scribe</span>{" "}
program — Vietnamese medical ASR, measured in the open.
</p>
</div>
{/* navigation echo + citation */}
<nav aria-label="Footer" className="text-[12px] text-muted">
<ul className="grid grid-cols-2 gap-x-6 gap-y-1.5">
<li>
<Link href="/" className={footerLink}>
Leaderboard
</Link>
</li>
<li>
<Link href="/compare" className={footerLink}>
Compare
</Link>
</li>
<li>
<Link href="/datasets" className={footerLink}>
Datasets
</Link>
</li>
<li>
<Link href="/methodology" className={footerLink}>
Methodology
</Link>
</li>
<li>
<a
href={`https://arxiv.org/abs/${dataset.arxiv}`}
target="_blank"
rel="noreferrer"
className={`num ${footerLink}`}
>
Cite · arXiv:{dataset.arxiv}
</a>
</li>
<li>
<a
href={`https://huggingface.co/datasets/${dataset.hf}`}
target="_blank"
rel="noreferrer"
className={`num ${footerLink}`}
>
HF · {dataset.hf}
</a>
</li>
</ul>
</nav>
{/* mono colophon */}
<dl className="num flex flex-col gap-1.5 text-[11px] tracking-wide text-muted/80 md:text-right">
<div>
<dt className="sr-only">Normalizer</dt>
<dd>normalizer {NORMALIZER_VERSION}</dd>
</div>
<div>
<dt className="sr-only">Harness</dt>
<dd>{HARNESS_VERSION}</dd>
</div>
<div>
<dt className="sr-only">License</dt>
<dd>benchmark data {dataset.license}</dd>
</div>
<div>
<dt className="sr-only">API snapshot policy</dt>
<dd>API results are date-stamped snapshots</dd>
</div>
</dl>
</div>
</footer>
</body>
</html>
);
}