@cplieger/web-terminal-ui (英语)
web-terminal-ui 创建浏览器终端 网络终端引擎 在电话和桌面上工作,有标签、平面视图和屏幕上键栏.

它取代了标签,密钥栏,粘贴菜单,IME处理和软键板重塑大小,否则会围绕引擎的渲染器来构建. 它作为TypeScript source在npm和JSR上发行,并附有CSS捆绑和参考页. 它唯一的依赖是同伴 @cplieger/web-terminal-engine 6.x,并且根据MPL-2.0获得许可.
为什么用它
网-地铁-地铁-地铁(web-terminal-ui)是为由网-地铁(web-terminal-engine)服务的一个外壳或编码代理而建,从手机和从桌面一样频繁地使用.
- 一个
createTerminal()调用在您提供的元素中构建 UI 。 4个预设覆盖了单,一触和两个制表布局. - 在触摸屏上,它添加了带有Tab, Esc, 箭头, Enter 和粘接 Ctrl 的密钥栏,长压粘贴菜单和iOS软键板处理.
- 标签显示程序的活动点
OSC 7501状态,OSC 9;4进展和分类OSC 9通知,并增加浏览器通知。 二分分能相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 一个全页终端给出了每个分页,每个分页地址,并在活动分页后命名浏览器分页,然后是该分页自己的标题 :fix build · Web Terminal。 。 。 . - 原生文字选择,IME输入和拼接工作,并预测回声会隐藏后遗症.
考虑 x 任期.js 如果您想要任何PTY后端的终端组件,例如节点-pty。 它有一个可选的GPU加速渲染器和一套加成器,VS代码使用. 要在网络地铁引擎上建立自己的UI,只依靠引擎.
安装
npm install @cplieger/web-terminal-ui @cplieger/web-terminal-engine
npx jsr add @cplieger/web-terminal-ui @cplieger/web-terminal-engine
引擎是一个对等依赖,所以同时安装.
使用量
终端连接到一个会讲引擎的服务器 电线协议比如在引擎的"去"上建造的 terminal 软件包或 网络终端服务器。一个普通的 PTY- over- WebSocket 服务器不会说话 .
import { createTerminal } from "@cplieger/web-terminal-ui";
import { presetTabbed } from "@cplieger/web-terminal-ui/presets";
createTerminal("#terminal", { features: presetTabbed });
将挂载目标作为选择器传递,并将预设为函数,如上。 一个缺失的元素或抛出预设然后到达库的启动失败处理,而不是从您的呼叫站点逃出. 打电话 createTerminal 每份文件一次,或 destroy() 在建造另一个终端之前的第一个终端.
没有预建的 JavaScript 船, 因此您的构建会编译 TypeScript 源 。 也为CSS服务. 对于全页终端,请加入列出的文件 css/MANIFEST 输入一个样式表,并为 Monaspace Neon NF 字体文件服务 /vendor/fonts/中的终端,请使用 css/MANIFEST.single, (中文(简体) ), css/MANIFEST.touch 或者说 css/MANIFEST.tabbed 转而通过 layout: "container"。 。 。 . scaffold/index.html 是带有导入地图的完整页.
四个预设:
presetSingle()是一个桌面终端,包含上下文菜单、剪贴板、从下到下滚动、预测回声和连接横幅.presetTouch()添加密钥栏 .presetTabbed()增加分页,活性点和动画. 它需要引擎的会话API,即网络终端服务器服务.presetAgentTabbed()相同,每个标签的点从头显示,用于代理 shell .
设置主机页面 完整覆盖CSS,字体和预设.
API 密码
createTerminal(target, options)构建终端并返回一个控件focus(), (中文(简体) ),send(bytes), (中文(简体) ),reset(), (中文(简体) ),reattach()财务报告和审定财务报表destroy()附加时split下级split: true。 。 。 . 选项和终端控件 列出每个选项.- 预设来自
@cplieger/web-terminal-ui/presets,或一次从/presets/single, (中文(简体) ),/presets/touch, (中文(简体) ),/presets/tabbed财务报告和审定财务报表/presets/agent-tabbed。单个特性来自/features/<name>。 。 。 . localScrollbackStorage()即时存储persistScrollback选项,以及clearLocalScrollback()移除它保存的东西.PUBLIC_THEME_TOKENS财务报告和审定财务报表LOADING_OVERLAY_CLASSES时,也/style-contract,列出主题密钥和覆盖类.STARTUP_FAILURE_COPY时,也/startup-copy,保留失败面板的措辞.- 类型涵盖选项,手柄,特性及其上下文,启动失败和分拆控制器.
全文见 日 尔。 。 。 .
启动失败并结束会话
当启动失败有可渲染的地方时, 库会显示一个“ Terminal 失败启动” 面板 重新装入 按钮并降低您的加载覆盖. onFatalError 让你观察失败情况 或者让自己恢复 两次失败没有显示面板 。 一个是嵌入式终端 上面的目标不见了 另一个是文件的第二个终端,它已经持有一个活的.
进程退出的会话会显示“ 会议结束” 而不重新连接 。 如果您在下一个连接上给出了新的会话, 请打电话 reattach() 从 onSessionEnded并绑起你的背书. 启动失败并结束会话 有细节.
安保和储存
图书馆没有自己的登录. 认证和来源检查属于为WebSocket和会话API服务的服务器. 粘贴会读取需要安全上下文的 Clippboard API,因此服务于 HTTPS 上的页面来触摸粘贴.
Scrollback的持久性默认关闭,因为打开它会将终端输出写入浏览器存储. 打开的分页视图最多可维持两个WebSocket连接,每个显示的窗格一个.
相关项目
- 网络终端引擎 是 Go 会话引擎和 TypeScript 渲染器.
- 网络终端服务器 是一个随时可以运行的容器,在HTTP和WebSocket上为UI服务,用于任何命令.
- 网络终端基罗 通过此 UI 服务浏览器中的 Kiro CLI, 作为完整页面 .
- 马约特 是一个自托管的代理IDE, 将这个UI嵌入到它的外壳面板中, in
container设置.
文档
- 设置主机页面 覆盖 CSS, 字体, 导入地图, 预设和加载覆盖 .
- 选项和终端控件 列出每个选项和主题符号.
- 标签、活性点和通知 描述标签预设显示的内容.
- 分割视图 并肩盖上两个相片.
- 在重新装入时保持回滚 涵盖
persistScrollback选项. - 启动失败并结束会话 覆盖重装面板
reattach()。 。 。 . - 键盘、鼠标和触摸输入 覆盖焦点、粘贴和鼠标报告.
贷项
IME 模块遵循 x 任期.js是因为 CompositionHelper。在电话中,制表器的闪烁阈值 @ use- gesture (英语)拖动默认值,五秒构成闲置绑定来自 板块'Android 输入管理器. 第三次议会 NoTICES.md 指定每行后面的行.
捐款
欢迎提出问题和拉动请求。 见 捐款额。 。 。 .
免责声明
这个项目是精心设计的,遵循安全最佳做法,但打算供个人/自发使用。 不保证生产环境的适宜性. 自己冒险使用.
这个项目是在大赦国际的协助下建立的。 人类维护者定义建筑,监督执行,并作出所有最终决定.
许可证
MPL-2.0. 见 自由主义。 。 。 .
这个 Web Terminal Glyphs 以下列方式命名的平面覆盖 css/page.css 是一个单独的Apache-2.0作品,它的许可证与FONT FILE一起旅行,而这个包不运送. 它只命名了 URL 。 因此,没有新的义务落在npm或JSR消费者身上. 义务是服务主机, 这就是为什么整页主机笔记在 设置主机页面 询问字体 LICENSE 财务报告和审定财务报表 NOTICE 旁边 .woff2。 。 。 .
第三方的归属 第三次议会 NoTICES.md。 。 。 .