mirror of
https://github.com/anomalyco/opentui.git
synced 2026-09-19 01:26:03 +08:00
69 lines
5.7 KiB
TypeScript
69 lines
5.7 KiB
TypeScript
#!/usr/bin/env bun
|
||
import { TextRenderable, createCliRenderer } from "../src/index.js"
|
||
import { ScrollBoxRenderable } from "../src/renderables/ScrollBox.js"
|
||
async function main() {
|
||
const renderer = await createCliRenderer({ exitOnCtrlC: true })
|
||
console.log("capabilities:", renderer.capabilities)
|
||
const scrollBox = new ScrollBoxRenderable(renderer, {
|
||
id: "scroll-box",
|
||
border: true,
|
||
height: 20,
|
||
title: "Thai Render Debug (Up/Down to scroll, Ctrl+C to exit)",
|
||
titleAlignment: "center",
|
||
})
|
||
const thaiLorem = `ภาษาไทยเป็นภาษาที่มีความสวยงามและซับซ้อนมาก มีพยัญชนะ 44 ตัว สระ 32 รูป และวรรณยุกต์ 4 รูป
|
||
มอญเป็นชนชาติที่มีอิทธิพลต่อภาษาไทยมาก คำว่า "มอ" เป็นพยัญชนะที่ใช้บ่อยในภาษาไทย
|
||
ตัวอย่างคำที่มี มอ: มา มี มือ มอง มัว มอบ มวย มอม มอด มอก
|
||
การเขียนภาษาไทยต้องใส่ใจเรื่องวรรณยุกต์ เช่น ม่า ม้า หม่า หม้า
|
||
สระลอยและสระเปลี่ยนรูปทำให้ภาษาไทยมีความพิเศษ เช่น เมือง แมว ไม้ ใหม่
|
||
คำผสมที่น่าสนใจ: มอมแมม มอดมอด มอมเมา มืดมอม มอมดำ
|
||
ภาษาไทยมีระบบการเขียนที่ไม่เว้นวรรคระหว่างคำ ทำให้การอ่านต้องอาศัยความเข้าใจ
|
||
ตัวอักษรไทยมีสามระดับ: บน กลาง ล่าง เช่น ก็ ปี่ ฎุ ฏู ญ ฐ ฑ
|
||
วรรณยุกต์ไทยมี 5 เสียง: สามัญ เอก โท ตรี จัตวา
|
||
ตัวอย่างเสียงวรรณยุกต์: มา ม่า ม้า หมา หม่า หม้า
|
||
การสะกดคำในภาษาไทยมีกฎเกณฑ์ที่ซับซ้อน มีทั้งตัวสะกดมาตราแม่ ก กา และตัวสะกดไม่ตรงมาตรา
|
||
คำยืมจากภาษาบาลีสันสกฤต: กรรม ธรรม สงฆ์ ศาสนา พระ มหา
|
||
คำยืมจากภาษาเขมร: ถนน เสวย ขนม ตำรวจ ทหาร
|
||
คำยืมจากภาษาจีน: ก๋วยเตี๋ยว เต้าหู้ บะหมี่ เกี๊ยว ซาลาเปา
|
||
ภาษาไทยถิ่นมีหลายภาษา: ภาษาเหนือ ภาษาอีสาน ภาษาใต้ ภาษากลาง
|
||
มอญกับไทยมีความสัมพันธ์ทางวัฒนธรรมมายาวนาน
|
||
ตัวเลขไทย: ๐ ๑ ๒ ๓ ๔ ๕ ๖ ๗ ๘ ๙
|
||
เครื่องหมายวรรคตอน: ฯ ๆ ฯลฯ « » ๏
|
||
อักษรไทยมีต้นกำเนิดจากอักษรเขมร ซึ่งมาจากอักษรปัลลวะของอินเดียใต้
|
||
พ่อขุนรามคำแหงมหาราชทรงประดิษฐ์อักษรไทยเมื่อ พ.ศ. 1826
|
||
ภาษาไทยเป็นภาษาที่มีวรรณยุกต์ การออกเสียงผิดวรรณยุกต์ทำให้ความหมายเปลี่ยน
|
||
ตัวอย่าง: ขาว (สีขาว) ข่าว (news) ข้าว (rice) เข้า (enter)
|
||
มอเตอร์ไซค์ มอนิเตอร์ มอลต์ มอร์ฟีน เป็นคำทับศัพท์ที่มี มอ
|
||
สำนวนไทยที่มี มอ: มอมเมา หมอมหมาม มืดมอม มอดไหม้
|
||
คำกริยาที่มี มอ: มอง มอบ มอม มอด มอก
|
||
คำนามที่มี มอ: มอญ มอด หมอ มอเตอร์
|
||
การผันวรรณยุกต์ของ มอ: มอ ม่อ ม้อ หมอ หม่อ หม้อ
|
||
ภาษาไทยมีคำควบกล้ำ: กร กล กว ขร ขล ขว คร คล คว
|
||
ตัวอย่างคำควบกล้ำ: กราบ กลาง กวาง ครู คลอง ความ
|
||
อักษรสูง กลาง ต่ำ มีผลต่อการผันวรรณยุกต์
|
||
อักษรสูง: ข ฃ ฉ ฐ ถ ผ ฝ ศ ษ ส ห
|
||
อักษรกลาง: ก จ ฎ ฏ ด ต บ ป อ
|
||
อักษรต่ำ: ค ฅ ฆ ง ช ซ ฌ ญ ฑ ฒ ณ ท ธ น พ ฟ ภ ม ย ร ล ว ฬ ฮ`
|
||
const text = new TextRenderable(renderer, {
|
||
id: "thai-text",
|
||
content: thaiLorem,
|
||
})
|
||
scrollBox.add(text)
|
||
renderer.root.add(scrollBox)
|
||
renderer.keyInput.on("keypress", (event) => {
|
||
if (event.name === "down") scrollBox.scrollDown()
|
||
if (event.name === "up") scrollBox.scrollUp()
|
||
})
|
||
renderer.requestRender()
|
||
|
||
renderer.keyInput.on("keypress", (event) => {
|
||
if (event.name === "`") {
|
||
renderer.console.toggle()
|
||
}
|
||
})
|
||
}
|
||
main().catch((err) => {
|
||
console.error("Error:", err)
|
||
process.exit(1)
|
||
})
|