mirror of
https://github.com/m1ngsama/TUT.git
synced 2025-12-26 12:04:11 +00:00
Major features: - New modular architecture with Terminal, FrameBuffer, Renderer layers - True Color (24-bit) support with warm, eye-friendly color scheme - Unicode support with proper CJK character width handling - Differential rendering for improved performance - Page caching (LRU, 20 pages, 5-minute expiry) - Search functionality with highlighting (/, n/N) - Form rendering (input, button, checkbox, radio, select) - Image placeholder support ([alt text] or [Image: filename]) - Binary data download via fetch_binary() - Loading state indicators New files: - src/browser_v2.cpp/h - Browser with new rendering system - src/main_v2.cpp - Entry point for tut2 - src/render/* - Terminal, FrameBuffer, Renderer, Layout, Image modules - src/utils/unicode.cpp/h - Unicode handling utilities - tests/* - Test programs for each module Build with: cmake --build build_v2 Run: ./build_v2/tut2 [URL]
3.1 KiB
3.1 KiB
TUT 2.0 - 下次继续从这里开始
当前位置
- 阶段: Phase 4 - 图片支持
- 进度: 基础功能完成 (占位符显示)
- 最后完成: 图片占位符渲染 + 二进制数据下载支持
Phase 4 已完成功能
图片占位符 (已完成)
<img>标签解析和渲染- 显示 alt 文本或文件名
- 格式:
[Example Photo]或[Image: filename.jpg]
二进制下载支持 (已完成)
HttpClient::fetch_binary()方法BinaryResponse结构体
ASCII Art 渲染器框架 (已完成)
ImageRenderer类- 支持 ASCII、块字符、盲文三种模式
- PPM 格式解码(内置,无需外部库)
启用完整图片支持
要支持 PNG、JPEG 等常见格式,需要下载 stb_image.h:
# 下载 stb_image.h 到 src/utils/ 目录
curl -L https://raw.githubusercontent.com/nothings/stb/master/stb_image.h \
-o src/utils/stb_image.h
# 重新编译
cmake --build build_v2
Phase 3 已完成功能
页面缓存
- LRU缓存,最多20个页面
- 5分钟缓存过期
- 刷新时跳过缓存 (
r键) - 缓存页面状态栏显示图标
差分渲染优化
- 批量输出连续相同样式的字符
- 减少光标移动次数
- 只更新变化的单元格
加载状态指示
- 连接状态、解析状态
- 缓存加载、错误状态
Phase 2 已完成功能
搜索功能
/触发搜索模式n/N跳转匹配- 搜索高亮
链接导航完善
- Tab切换时自动滚动到链接位置
窗口大小调整
- 动态获取尺寸
- 自动重新布局
表单渲染
- 输入框、按钮、复选框等
文件变更 (Phase 4)
新增文件
src/render/image.h- 图片渲染器头文件src/render/image.cpp- 图片渲染器实现
修改的文件
src/dom_tree.h- 添加 img_src, img_width, img_height 属性src/dom_tree.cpp- 解析 img 标签的 src, width, height 属性src/render/layout.h- 添加 layout_image_element 方法src/render/layout.cpp- 实现图片布局src/http_client.h- 添加 BinaryResponse, fetch_binarysrc/http_client.cpp- 实现 fetch_binaryCMakeLists.txt- 添加 image.cpp
下一步要做
实现真正的 ASCII Art 图片渲染
- 下载 stb_image.h
- 在 browser_v2.cpp 中添加图片下载逻辑
- 调用 ImageRenderer 渲染图片
- 将 ASCII art 结果插入布局
其他可选功能
- 异步HTTP请求
- 书签管理
- 更多表单交互
构建命令
# 配置
cmake -B build_v2 -S . -DCMAKE_BUILD_TYPE=Debug
# 编译全部
cmake --build build_v2
# 运行TUT 2.0
./build_v2/tut2 # 显示帮助
./build_v2/tut2 https://example.com # 打开网页
# 测试程序
./build_v2/test_terminal
./build_v2/test_renderer
./build_v2/test_layout
快捷键
| 键 | 功能 |
|---|---|
| j/k | 上下滚动 |
| Ctrl+d/u | 翻页 |
| gg/G | 顶部/底部 |
| Tab | 下一个链接 |
| Enter | 跟随链接 |
| h/l | 后退/前进 |
| / | 搜索 |
| n/N | 下一个/上一个匹配 |
| r | 刷新(跳过缓存) |
| :o URL | 打开URL |
| :q | 退出 |
| ? | 帮助 |
恢复对话时说
"继续TUT 2.0开发"
更新时间: 2025-12-26