DocsPage

tcmts.site.DocsPage · #cznindgn · term · runs on the server

uses process

The page kept in file (apps.html), rendered on the server: its text, and the pages before and after it. The published site (pnpm docs:site, which sets TCM_SITE_VERSION) says the commit it was built from, and links definitions to its code browser.

import { hrefFor, renderedDoc, titleOf } from "#codebase/tcmts/site";

export async function DocsPage({ file }: { file: string }) {
  const published = process.env.TCM_SITE_VERSION;
  const { pages, page, rendered } = await renderedDoc(file, published !== undefined);
  const prev = pages[page.n - 1];
  const next = pages[page.n + 1];
  return (
    <>
      <title>{titleOf(page, rendered)}</title>
      <main>
        <article dangerouslySetInnerHTML={{ __html: rendered.html }} />
        <div className="rule" aria-hidden="true" />
        <footer>
          <span>{prev && <>&lt;&lt; <a href={hrefFor(prev.file, true)}>[{prev.n}] {prev.label}</a></>}</span>
          <span>{next && <><a href={hrefFor(next.file, true)}>[{next.n}] {next.label}</a> &gt;&gt;</>}</span>
        </footer>
        {published && <p className="build">built from {published}</p>}
      </main>
    </>
  );
}

uses

used by