Commit graph

2 commits

Author SHA1 Message Date
6baa6517ca feat: Implement functional web browsing with HTTP + HTML rendering
Implemented the missing browser engine functionality to make TUT actually
browse the web.

Browser Engine Changes:
- Integrate HttpClient to fetch URLs via GET requests
- Integrate HtmlRenderer to parse and render HTML content
- Implement proper error handling for failed HTTP requests
- Add relative URL resolution for links (absolute and relative paths)
- Store title, content, and links from rendered pages

Tested with https://tldp.org/HOWTO/HOWTO-INDEX/howtos.html:
 Successfully fetches and displays web pages
 Renders HTML with proper formatting (headings, lists, links)
 Extracts and numbers clickable links
 Displays page titles

The browser is now fully functional for basic text-based web browsing!
2025-12-31 17:19:01 +08:00
6408f0e95c feat: Complete FTXUI refactoring with clean architecture
Major architectural refactoring from ncurses to FTXUI framework with
professional engineering structure.

Project Structure:
- src/core/: Browser engine, URL parser, HTTP client
- src/ui/: FTXUI components (main window, address bar, content view, panels)
- src/renderer/: HTML renderer, text formatter, style parser
- src/utils/: Logger, config manager, theme manager
- tests/unit/: Unit tests for core components
- tests/integration/: Integration tests
- assets/: Default configs, themes, keybindings

New Features:
- btop-style four-panel layout with rounded borders
- TOML-based configuration system
- Multiple color themes (default, nord, gruvbox, solarized)
- Comprehensive logging system
- Modular architecture with clear separation of concerns

Build System:
- Updated CMakeLists.txt for modular build
- Prefer system packages (Homebrew) over FetchContent
- Google Test integration for testing
- Version info generation via cmake/version.hpp.in

Configuration:
- Default config.toml with browser settings
- Four built-in themes
- Default keybindings configuration
- Config stored in ~/.config/tut/

Removed:
- Legacy v1 source files (ncurses-based)
- Old render/ directory
- Duplicate and obsolete test files
- Old documentation files

Binary: ~827KB (well under 5MB goal)
Dependencies: FTXUI, cpp-httplib, toml11, gumbo-parser, OpenSSL
2025-12-29 22:07:39 +08:00