← בלוג

⁦Text.js 1.0⁩

⁦Text.js 1.0⁩ יציב. הוא מרנדר אפליקציות ⁦React 19⁩ ו-⁦App Router⁩ במסוף של DevTools עם קריאת console.log אחת לכל פריים.

Adam

היום אנחנו משחררים את ⁦Text.js 1.0⁩, פריימוורק המסוף לווב.

bunx create-text-app@latest

⁦Text.js⁩ מרנדר אפליקציות ⁦React 19⁩ בתוך המסוף של ⁦Chrome DevTools⁩, עם layout, ניתוב, מיקוד, קלט, טפסים, תרשימים ו-Markdown בהזרמה שמצוירים באמצעות console.log.

מה כלול ב-1.0

  • ⁦App Router⁩. layout.tsx, page.tsx, [param], loading.tsx, error.tsx, not-found.tsx ו-api/*/route.ts, מסונכרנים עם window.location. הוא פועל לפי המוסכמות של ⁦App Router⁩ ב-Next.js.
  • Turbolog. ⁦Yoga flexbox⁩ מסדר רשת תאים, CellBuffer המבוסס על מערך מטיפוס מוגדר מחזיק אותה, ומקודד אורכי רצף הופך אותה לקריאת console.log(format, ...css) יחידה. פריימים ללא פעילות אינם מבצעים קריאות למסוף.
  • ערכת רכיבים. Box, Text, ScrollBox, Input, Select, Tabs, Markdown, Diff, רכיב List עם וירטואליזציה, Table, Tree, תרשימים, תיבות דו-שיח, התראות צפות ולוח פקודות Ctrl+K מתוך useKeymap.
  • הוספת פריימים לסוף. פריימים מתווספים מתחת לפריים הקודם, כך שהמסוף לא מהבהב כשהוא ריק בין פריימים. פרטים נוספים ב-Turbolog: ביטול ההבהוב.
  • טקסט מימין לשמאל. עברית וערבית מרונדרות בסדר חזותי עם עיצוב אותיות בערבית, באמצעות מימוש של ⁦UAX #9⁩ שעובר את כל 770,241 מקרי הבדיקה של BidiTest.txt. ראו טקסט מימין לשמאל במסוף.
  • מסוף רספונסיבי. Text.js מתאים את עצמו לחלונית DevTools המעוגנת, כולל שינוי קנה המידה של הדף וסרגל כלים שנגלל לשורה נוספת. כשהחלונית אינה מעוגנת, הוא משתמש ב-120×36 כברירת מחדל.
  • text run. אותו יישום ⁦App Router⁩ מרונדר בטרמינל אמיתי.
  • כלים לסוכנים ולעורכים. text mcp מגיש את היישום לסוכני קוד באמצעות ⁦Model Context Protocol⁩, ותוסף DevTools של Text.js מוסיף חלונית לצד "מסוף". גם eslint-plugin-textjs ותוסף ל-⁦VS Code⁩ הם חלק מ-1.0.

שינוי שם אחד

חבילת הפריימוורק נקראת כעת @textjs/next. השם textjs היה תפוס ב-npm. יש לעדכן את הייבואים:

- import { Box, Text } from "textjs";+ import { Box, Text } from "@textjs/next";

עדכון, 1.0.2: החבילה נקראת כעת @textjs/app, והשימוש ב-@textjs/next הוצא משימוש. כדי לעבור, יש להריץ bun remove @textjs/next && bun add @textjs/app ולייבא מתוך @textjs/app.

מספרים

בלוח מחוונים צפוף בגודל 100×32 (46 צומתי טקסט, 149 מקטעי span של %c), במדידה באמצעות packages/core/test/perf.test.ts:

פרייםממוצע
ציור מלא מחדש (layout, ציור, קידוד)0.163 ms
עריכת שורה אחת (הקלדה)0.011 ms
ללא פעילות0.000 ms, 0 קריאות למסוף

פריים ללא שינוי חוזר לפני הקצאת מחרוזת, ולכן פריימים ללא פעילות נמדדים כ-0.000 ms.

התנסות

יש לפתוח את textjs.org וללחוץ על ⁦⌘⌥J⁩ (⁦Ctrl+Shift+J⁩ ב-Windows וב-Linux). האתר מפעיל יישום Text.js במסוף, תצוגה אחת לכל דף. ה-Playground כולל לוח מחוונים, Markdown בהזרמה וסנייק. OpenCode מתחבר לשרת OpenCode המקומי.

רשימת השינויים המלאה נמצאת ב-יומן השינויים, וקוד המקור נמצא ב-GitHub.