mirror of
https://github.com/logos-co/logos-web.git
synced 2026-08-27 12:11:14 +00:00
* fix(sitemap): remove FAQ route from static indexable routes * feat(web): markdown-managed legal pages + Testnet FAQ & Terms Introduce a markdown-based system for legal/info documents and add the two testnet pages on the same docs route pattern. - Add getLegalDoc loader (gray-matter frontmatter + zod validation) and LegalMarkdown renderer (react-markdown + remark-gfm) mapped to Logos design tokens; render legal pages as a server component. - Refactor docs-page-factory to source content from content/legal/<slug>.md instead of next-intl namespaces; migrate terms, privacy, and security from messages/en.json to markdown. - Add /testnet-v01-faqs and /testnet-terms-and-conditions pages with content mirrored from logos.co; link the FAQ's testnet-terms references to the internal route. - Add Testnet FAQ and Testnet Terms to the docs ToC (remove the dead FAQ entry); register both routes in the sitemap. - Align docs content to the standard page gutter by removing the redundant px-3 on the docs page shell. * chore: optimise page imagery * feat(web): link Logos Devs X account in community section * chore(web): hide 'What you can build today' section on get-started and builders-hub * refactor: reuse builders hub start sections * feat(builders-hub): source RFPs from GitHub API at build time Fetch and parse RFPs from the logos-co/rfp repo (markdown + YAML frontmatter) at build time instead of local content, so the /rfps listing and [slug] detail pages render from a single live source. - add rfps-github lib: GitHub contents fetch, gray-matter frontmatter parse, stable slug from filename, draft/template exclusion - detail page renders frontmatter-stripped markdown via LegalMarkdown, with Apply + View on GitHub CTAs - widen RFP card/row/listing props to RfpListItem so GitHub data (no reward/image) and local Rfp both satisfy the UI - add optional markdown body to BuildersHubDetailLayout * refactor: share get started sections
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import type { ReactNode } from 'react'
|
|
|
|
import ContentWidth from '@/components/layout/content-width'
|
|
|
|
import { DocsToc, type DocsTocKey } from './docs-toc'
|
|
|
|
/**
|
|
* Layout shell shared by FAQ, Terms, Privacy, Security and any future
|
|
* docs / legal pages: the left ToC + the right content column.
|
|
*
|
|
* Figma desktop 40009046:22318 — flex row, px-12, gap-488, both columns py-80,
|
|
* ToC w-226 (sticky), content w-464.
|
|
* Figma mobile 40009046:22277 — flex column, px-12, gap-12, ToC py-80,
|
|
* content pb-80, both w-full.
|
|
*
|
|
* Row layout requires ≥ 1202 px (226 + 488 + 464 + 24) so the breakpoint
|
|
* is xl (1280 px) — below that we render the same stacked layout as mobile.
|
|
*/
|
|
|
|
interface DocsPageShellProps {
|
|
activeKey: DocsTocKey
|
|
children: ReactNode
|
|
}
|
|
|
|
export function DocsPageShell({ activeKey, children }: DocsPageShellProps) {
|
|
return (
|
|
<ContentWidth>
|
|
<section className="flex min-h-190 flex-col items-start gap-3 xl:flex-row xl:gap-122">
|
|
<DocsToc activeKey={activeKey} />
|
|
<div className="flex w-full flex-col items-start gap-6 pb-20 xl:w-116 xl:py-20">
|
|
{children}
|
|
</div>
|
|
</section>
|
|
</ContentWidth>
|
|
)
|
|
}
|