رفتن به محتوا

نقشهٔ مسئله

این خط را در ترمینال چاپ کنید:

نسخهٔ 2.1 از «persian-cli» را با دستورِ `make test` (لا ۱۲۳) اجرا کنید.

بسته به ابزارهایتان، حرف‌ها جدا از هم، واژه‌ها وارونه، متن لاتین و عددها جابه‌جا، پرانتزها برعکس و مکان‌نما جایی غیر از جای تایپ دیده می‌شود. هیچ‌کدام از این‌ها در انگلیسی رخ نمی‌دهد.

ترمینال شبکه‌ای از خانه‌های هم‌پهنا است که از چپ به راست و هر خانه با یک نویسه پر می‌شود. خط عربی سه فرض این مدل را می‌شکند:

شبکه فرض می‌کند… خط عربی نیاز دارد… چه می‌شکند
هر خانه مستقل است شکل‌دهی: شکل حرف به همسایه‌هایش بستگی دارد حرف‌های جدا از هم
متن از چپ به راست است دوجهتی: ترتیب نمایش به کل پاراگراف بستگی دارد (UAX #9) واژه‌های وارونه، عددهای جابه‌جا
هر نویسه یک خانه است پهنای متغیر: «لا»، نیم‌فاصله، اِعراب ناهمخوانی مکان‌نما و برنامه

لایه‌های ۳ تا ۵ بار بقیه را به دوش می‌کشند.

# لایه «تمام‌شده» یعنی…
۱ رمزگذاری و یکسان‌سازی ي/ك و ی/ک یکسان رفتار می‌شوند؛ هر سه دستگاه عدد آگاهانه مدیریت می‌شوند
۲ ورودی چیدمان فارسی، نیم‌فاصله و کلیدهای مرده همه‌جا کار می‌کنند
۳ پهنا برنامه و ترمینال همیشه بر سر شمار خانه‌های یک رشته توافق دارند
۴ شکل‌دهی هر خط پیوسته در همهٔ ترمینال‌های آزمون‌شده پیوسته نمایش داده می‌شود
۵ دوجهتی خط‌های دوجهته درست نمایش داده می‌شوند و مالک آن روشن است
۶ مکان‌نما، انتخاب، کپی مکان‌نمای قابل‌پیش‌بینی؛ متن کپی‌شده به ترتیب منطقی است
۷ قلم‌ها قلم‌های هم‌پهنا با پوشش فارسی و ابعادی که در شبکه جا می‌شود
۸ مالتی‌پلکسرها tmux و Zellij شکل‌دهی و دوجهتی را سالم عبور می‌دهند
۹ برنامه‌ها و چارچوب‌های TUI Neovim، readline، zle، Ink، ratatui، ncurses و Bubble Tea متن را درست مدیریت می‌کنند

چارچوب کامل در README و بحث آغازین آمده است.

یک پروژهٔ مهدی بانشی · mbaneshi.ir