Struttura del progetto

La directory app/, text.config.ts e la CLI text.

Le cartelle in app/ definiscono le route e i file speciali definiscono l’interfaccia di ogni route.

Cartelle

CartellaScopo
appRoute, layout e route handler
libModuli condivisi, senza route
publicRisorse statiche

File di routing

FileScopo
layout.tsxInterfaccia condivisa per un segmento
page.tsxUna schermata associata a una route
loading.tsxFallback di Suspense
error.tsxError boundary
not-found.tsxURL senza corrispondenza
route.tsEndpoint API
app/├── layout.tsx            → shared shell├── page.tsx              → /├── sessions/│   ├── page.tsx          → /sessions│   └── [id]/page.tsx     → /sessions/:id└── api/health/route.ts   → GET /api/health

Route dinamiche

CartellaURLparams
[id]/sessions/42{ id: "42" }
[...slug]/docs/a/b{ slug: ["a", "b"] }

text.config.ts

text.config.tsts
import { defineConfig } from "@textjs/app";export default defineConfig({  title: "Acme",  viewport: { width: 120, height: 36, theme: "geistDark" },  hints: [{ keys: "↑ ↓", label: "count" }],});
OpzioneValore predefinitoDescrizione
title""Titolo della pagina e del FocusPad
viewportadattamento alla console, altrimenti 120×36responsive (valore predefinito true), fallback width × height, theme
hints[]Due o tre tasti mostrati sul FocusPad della pagina
actionpress <first hint>Cosa fare dopo aver ottenuto il focus, ad esempio "type a prompt"
devIndicatorstrueDev Overlay nella console ([▼])
focusHinttrue«Fai clic sulla pagina per usare la tastiera» sopra l’ultima riga della console quando la pagina non ha il focus
rewrites[]Riscritture e proxy
ansi{ cols: 80, rows: 24 }Dimensioni del frame per curl e client terminale, oppure false per fornire loro HTML

CLI

ComandoDescrizione
text devServer di sviluppo con Fast Refresh
text buildBuild di produzione
text startPubblicazione della build e dei route handler
text runRendering dell’app in un terminale (Terminale)
text mcpAccesso all’app per gli agenti di programmazione (MCP)
Modifica questa pagina su GitHub