主控台框架
建構在 console.log 內渲染的全端 React 應用程式。
1import { useState } from "react";2import { AsciiFont, Box, Text, useInput } from "@textjs/app";34export default function Page() {5 const [count, setCount] = useState(0);6 useInput((e) => {7 if (e.key === "up") setCount((c) => c + 1);8 if (e.key === "down") setCount((c) => c - 1);9 });1011 return (12 <Box className="flex-col gap-1 p-2">13 <AsciiFont text="▼ TEXT.JS" />14 <Text color="muted">React 19 in console.log</Text>15 <Text bold color="accent">count = {count}</Text>16 </Box>17 );18}React 19
Text.js 支援並行渲染、Suspense 與錯誤邊界。
App Router
app/ 中的資料夾會成為路由與版面配置,並支援上一頁、下一頁與深層連結。
響應式網格
無論頁面縮放比例為何,網格都會符合停駐的 DevTools 面板。
鍵盤輸入
按鍵、貼上與 IME 組字會透過一個隱藏的 <textarea> 傳入應用程式。
表格、圖表、表單與快速鍵
每個已變更的影格呼叫一次 console.log
未變更任何儲存格的提交不會傳到主控台。
- React 19
01提交
React 透過自訂協調器提交更新。
- Yoga
02版面配置
Yoga 以完整儲存格為單位配置方塊。
- CellBuffer
03繪製
僅重繪受損的列。
- 列雜湊
04變更檢查關卡
未變更的影格到此停止。
- RLE
05編碼
3,200 個儲存格轉為 149 個
%cspan。 - console.log
06輸出
附加影格至少間隔 66 ms。
clear() + log()70.6% 空白log(), appended1.0% 空白%c 引數在伺服器上渲染路由
匯出 runtime = "server",在伺服器上渲染路由及其非同步元件。瀏覽器會載入 21 kB(gzip)的影格播放器,取代你的應用程式。
1import { Suspense } from "react";2import { Box, Text } from "@textjs/app";3import { db } from "@/lib/db";45export const runtime = "server";67async function Deploys() {8 const rows = await db.deploys.latest(5);9 return rows.map((d) => (10 <Text key={d.id}>{`${d.state} ${d.branch}`}</Text>11 ));12}1314export default function Page() {15 return (16 <Box className="flex-col p-1">17 <Text bold>Deployments</Text>18 <Suspense fallback={<Text color="muted">Loading…</Text>}>19 <Deploys />20 </Suspense>21 </Box>22 );23}也可在終端機與代理中執行
DevToolstext dev
Turbolog 以一次 console.log 將每個影格寫成 %c span。
終端機text run
text run 以全彩 ANSI 渲染同一個 App Router 應用程式,並在處理程序內執行路由處理常式。
程式開發代理text mcp
代理透過 MCP 瀏覽路由、按鍵,並以純文字讀取每個影格。
編輯器、lint 與測試工具
DevTools 擴充功能
新增面板,內含元件樹、影格檢查器與逐影格時間軸。
Text.js 面板VS Code
在程式碼旁預覽影格,並產生 App Router 檔案骨架。
⌘K VESLint
偵測主控台元件中的 DOM 標籤、文字內的方塊,以及 Menlo 不具備的字形。
eslint-plugin-textjs測試
在任意測試執行器中離屏渲染、按鍵,並對 lastFrame() 執行斷言。
錯誤代碼
帶有 TX 代碼的錯誤與警告會連結至說明修正方式的頁面。
主控台 REPL
從主控台提示字元暫停執行中的應用程式、調整大小、顯示線框並複製。
window.text由右至左
實作 Unicode 雙向演算法,並通過全部 770,241 個 BidiTest.txt 測試案例。
FIGlet 字型
解析 .flf 檔案,結果符合從 figlet 二進位檔記錄的 273 個輸出。