当前位置: 首页 > news >正文

webtui+chawan 搭建兼容TUI与HTML的UI

方案

  • chawan,支持sixel与kitty graphics protocol的终端浏览器,积极开发中: https://chawan.net/#:~:text=Homebrew
  • webtui,仅css的终端主题,严格遵循ch字符单位长度,易于与chawan集成: https://webtui.ironclad.sh/installation/astro/
    • astro,轻量编译: https://docs.astro.build/zh-cn/tutorial/2-pages/2/ 。像react, vue(vite)也是模板编译型框架,不过astro更轻量,适合写文档等简单的轻交互界面。也可以后期引入vue等框架,渐进开发。
    • mdx,可运行js的markdown: https://docs.astro.build/en/guides/integrations-guide/mdx/

为什么要同时兼容HTML与TUI?

见: https://github.com/webtui/webtui/issues/144

有许多CLI工具,如docker/podman,会同时有webUI与TUI支持,但是2套完全不同的代码。而且大部分情况下,TUI的维护人很少,且不活跃,大多都是昙花一现。这个方案旨在主要支持HTML,但也能完美兼容TUI,不过需要自行安装/编译chawan,毕竟TUI用的人真的挺少,但tty或ssh等fallback情况下就很好用。

教程

astro

markdown文件会直接被astro编译为HTML,URL路由会按照目录结构展开

index.astro

---
// 类似vue中的<script setup>,astro仅在build时运行一次
import '../styles/global.css';
import Navigation from '../components/Navigation.astro';
const jsVar1 = "#000";
const { platform, username } = Astro.props;
---
{jsVar1 && <p>我非常乐意学习 Astro!</p>}
{jsVar2 === true ? <p>我的目标是在三天内完成。</p> : <p>我的目标不是 3 天。</p>}
<style define:vars={{ jsVar1, jsVar2 }}>
<Navigation />
<a href={`https://www.${platform}.com/${username}`}>{platform}</a>
<Social platform="twitter" username="astrodotbuild" /><script>import "../scripts/menu.js";</script>
<slot />
@media screen and (min-width: 636px) {}
:has(.menu[aria-expanded="true"]) .nav-links {display: unset;
}

mdx

webtui兼容包

尝试:<noscript>标签

<style></style>
<noscript><style> /* chawan样式 */ </style></noscript>

缺点是chawan开启js后失效。

js判断UA==chawan,注入css

http://www.gsyq.cn/news/54593.html

相关文章:

  • CCUT应用OJ题解——重复数
  • 防止 FreeFileSync的RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行 2025年11月19日
  • 11/18
  • 软件工程学习日志2025.11.19
  • linux ftp地址
  • 2025年11月水泵,管道水泵,多级水泵厂家推荐:大流量机型实测与采购攻略
  • ubuntu25 win11 双系统 和一些常用配置
  • 详细介绍:技术人互助:城市级充电系统(Java 微服务)的落地细节,含 demo 和设备适配经验
  • 浅记树分块
  • linux ftp代码
  • linux ftpgt;put
  • 题解 [YLOI 2019] 棠梨煎雪
  • 2025-11-19
  • docker 自用手册
  • Gemini 3发布与小试牛刀
  • kilocode_idea端测试
  • 详细介绍:JavaEE初阶7.0
  • 什么?Viggle Ai Pro版会员免费送?
  • linux ftp 用户权限
  • 完整教程:GPTBots 工作流:让AI从“会说“到“会做“的技术演进引言:企业AI化的瓶颈在哪里?
  • html-webpack-plugin扩展创建:自定义钩子构建
  • Android中EditText同时支持textMultiLine与imeOptions(action/actionSend/...)
  • 空间变换层和自注意力机制
  • MacX Video Converter Pro for Mac v6.8.2 安装视频转换器安装步骤(附安装包)
  • 深入解析:Kotlin 高阶函数在回调设计中的最佳实践
  • 信息化、数字化、智能化、智慧化、数智化,到底啥区别 - 智慧园区
  • 洛谷 B4413:[GESP202509 三级] 数组清零
  • 中大型超市智能运营导购系统:AI 精准推送,滞销品库存加速 19%!
  • linux ftp shell
  • 全国计算机等级考试——二级JAVA完整大题题库【五十三道】