mirror of
https://github.com/prdlk/leetcode.git
synced 2026-08-02 17:31:40 +00:00
86 lines
2.7 KiB
Markdown
86 lines
2.7 KiB
Markdown
# docs
|
|
|
|
A [Fumapress](https://press.fumadocs.dev) (Fumadocs + Waku) docs site with
|
|
typography by [shadcn/typeset](https://ui.shadcn.com/docs/typeset) — one CSS
|
|
file you own.
|
|
|
|
## Getting started
|
|
|
|
Requires **Node.js 22+**.
|
|
|
|
```bash
|
|
bun install
|
|
bun dev # http://localhost:3000
|
|
```
|
|
|
|
## Your typeset
|
|
|
|
| Control | Choice |
|
|
| ------- | ------ |
|
|
| Heading | DM Sans |
|
|
| Body | Instrument Sans |
|
|
| Mono | JetBrains Mono |
|
|
| Size | 16px |
|
|
| Leading | Loose (1.9) |
|
|
| Flow | Compact (1em) |
|
|
| Measure | 80ch |
|
|
|
|
- `src/typeset.css` is the stylesheet from the
|
|
[typeset builder](https://ui.shadcn.com/typeset). It lives in your project —
|
|
edit it directly, or regenerate it from the builder any time.
|
|
- `src/app.css` holds your presets. `.typeset-docs` carries the choices
|
|
above; `.typeset-compact` is a tighter preset for chat-like UI. Rhythm is
|
|
three variables: `--typeset-size`, `--typeset-leading`, `--typeset-flow`.
|
|
- `typeset-prompt.md` is an agent-ready prompt with the choices above baked
|
|
in (like the builder's Prompt tab). Paste it into your coding agent to wire
|
|
typeset into the surfaces that render markdown.
|
|
|
|
Wrap any rendered markdown/HTML:
|
|
|
|
```tsx
|
|
<article className="typeset typeset-docs typeset-measure">{page}</article>
|
|
<div className="typeset typeset-compact">{message}</div>
|
|
```
|
|
|
|
Opt components out with `not-typeset`:
|
|
|
|
```tsx
|
|
<div className="typeset typeset-docs">
|
|
<p>Styled prose.</p>
|
|
<Card className="not-typeset">Untouched component.</Card>
|
|
</div>
|
|
```
|
|
|
|
## Fumadocs prose seam
|
|
|
|
Fumadocs UI ships its own `prose` styles for docs page bodies. If you apply
|
|
`typeset` to the same container, both systems will add spacing. This
|
|
template zeroes out `margin-block-end` inside `.typeset.prose` (see
|
|
`src/app.css`) so flow comes only from typeset's `margin-block-start`.
|
|
|
|
To apply the typeset classes to docs pages, customize the page layout in
|
|
`press.config.tsx` — see the
|
|
[Fumapress layouts docs](https://press.fumadocs.dev/docs/layouts).
|
|
|
|
## Structure
|
|
|
|
```
|
|
├── waku.config.ts # Waku/Vite plugins: press(), mdx(), tailwindcss()
|
|
├── source.config.ts # Fumadocs MDX content source (content/docs)
|
|
├── press.config.tsx # Site config, adapters, plugins
|
|
├── typeset-prompt.md # Agent prompt with your typeset picks baked in
|
|
├── content/docs/ # Your MDX pages
|
|
└── src/
|
|
├── app.css # Tailwind + presets + your typeset presets
|
|
└── typeset.css # shadcn/typeset — yours to edit
|
|
```
|
|
|
|
## Deploying static
|
|
|
|
Fumapress builds static + dynamic routes by default. For a pure CDN deploy,
|
|
force static mode in `press.config.tsx`:
|
|
|
|
```tsx
|
|
export default defineConfig({ mode: "static", /* ... */ });
|
|
```
|