Cấu trúc dự án

Thư mục app/, text.config.ts và CLI text.

Thư mục trong app/ xác định route, còn các tệp đặc biệt xác định giao diện cho từng route.

Thư mục

Thư mụcMục đích
appRoute, layout và route handler
libMô-đun dùng chung, không gắn với route
publicTài nguyên tĩnh

Tệp định tuyến

TệpMục đích
layout.tsxGiao diện dùng chung cho một phân đoạn
page.tsxMàn hình có thể truy cập qua route
loading.tsxGiao diện dự phòng của Suspense
error.tsxError boundary
not-found.tsxURL không khớp
route.tsĐiểm cuối 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 động

Thư mụcURLparams
[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" }],});
Tùy chọnMặc địnhMô tả
title""Tiêu đề trang và FocusPad
viewportvừa với console, nếu không thì 120×36responsive (mặc định true), kích thước dự phòng width × height, theme
hints[]Hai hoặc ba phím hiển thị trên FocusPad của trang
actionpress <first hint>Thao tác khi đã có tiêu điểm, ví dụ "type a prompt"
devIndicatorstrueDev Overlay trong console ([▼])
focusHinttrue“Nhấp vào trang để dùng bàn phím” phía trên dòng cuối của console khi trang chưa có tiêu điểm
rewrites[]Rewrite và proxy
ansi{ cols: 80, rows: 24 }Kích thước frame cho curl và ứng dụng khách terminal, hoặc false để trả HTML cho chúng

CLI

LệnhMô tả
text devMáy chủ phát triển với Fast Refresh
text buildBản dựng production
text startPhục vụ bản dựng và route handler
text runRender ứng dụng trong terminal (Terminal)
text mcpPhục vụ ứng dụng cho tác nhân lập trình (MCP)
Sửa trang này trên GitHub