docs: Update STATUS.md to reflect interactive features

Updated development status to v0.2.0-alpha with all interactive
features now working:

 Content scrolling (j/k, g/G, Space/b)
 Link navigation (Tab, numbers, Enter)
 Address bar ('o' to open)
 Back navigation (Backspace)
 Refresh (r/F5)
 Real-time status display

The browser is now fully usable for interactive web browsing!
See KEYBOARD.md for complete keyboard shortcuts.
This commit is contained in:
m1ngsama 2025-12-31 17:53:06 +08:00
parent c965472ac5
commit 4aae1fa7dc

102
STATUS.md
View file

@ -1,6 +1,6 @@
# TUT Browser - Development Status # TUT Browser - Development Status
## ✅ Working Features (v0.1.0-alpha) ## ✅ Working Features (v0.2.0-alpha) - INTERACTIVE!
### Core Functionality ### Core Functionality
- ✅ **HTTP/HTTPS Client** - Fully functional with cpp-httplib - ✅ **HTTP/HTTPS Client** - Fully functional with cpp-httplib
@ -28,13 +28,15 @@
- Parses HTML with renderer - Parses HTML with renderer
- Resolves relative URLs - Resolves relative URLs
- Error handling for failed requests - Error handling for failed requests
- Back/forward navigation history
- ✅ **UI Framework** - FTXUI-based interface - ✅ **Interactive UI** - Fully keyboard-driven navigation
- btop-style four-panel layout - **Content Scrolling** - j/k, g/G, Space/b for navigation
- Address bar input - **Link Navigation** - Tab, number keys (1-9), Enter to follow
- Content display area - **Address Bar** - 'o' to open, type URL, Enter to navigate
- Status panels - **Browser Controls** - Backspace to go back, r/F5 to refresh
- Keyboard shortcuts (q to quit, Enter to navigate) - **Real-time Status** - Load stats, scroll position, selected link
- **Visual Feedback** - Navigation button states, link highlighting
### Build & Deployment ### Build & Deployment
- ✅ Binary size: **827KB** (well under 1MB target!) - ✅ Binary size: **827KB** (well under 1MB target!)
@ -45,27 +47,25 @@
## ⚠️ Known Limitations ## ⚠️ Known Limitations
### UI Components (Not Yet Implemented) ### UI Components (Not Yet Fully Implemented)
- ⚠️ **Link Navigation** - Links are extracted and numbered, but not yet clickable in UI - ⚠️ **Bookmark System** - Partially implemented
- `setLinks()` and `onLinkClick()` methods declared but not implemented - No persistence layer yet
- Tab/Shift+Tab navigation not working yet - No UI panel for managing bookmarks
- Number key shortcuts not working yet - Keyboard shortcuts not connected
- ⚠️ **Bookmark System** - Declared but not implemented - ⚠️ **History Panel** - Backend works, UI not implemented
- `setBookmarks()` method exists but no UI implementation - Back navigation works with Backspace
- No persistence layer - No visual history panel (F3)
- No persistence across sessions
- ⚠️ **History** - Declared but not implemented
- `setHistory()` method exists but no UI implementation
- No back/forward navigation in UI (though engine supports it)
- ⚠️ **Scrolling** - Content view not scrollable yet
- j/k, g/G shortcuts not implemented
- Page up/down not working
- ⚠️ **Search** - Not implemented - ⚠️ **Search** - Not implemented
- / search command not working - / search command not working
- n/N navigation not working - n/N navigation not working
- No highlight of matches
- ⚠️ **Forward Navigation** - Not yet wired up
- Forward button shows but doesn't work
- Engine supports it, just needs UI connection
### Feature Gaps ### Feature Gaps
- ⚠️ No form support (input fields, buttons, etc.) - ⚠️ No form support (input fields, buttons, etc.)
@ -75,23 +75,11 @@
## 🎯 Next Steps Priority ## 🎯 Next Steps Priority
### Phase 1: Core Interactive Features (High Priority) ### Phase 1: Polish Interactive Features (High Priority)
1. **Implement Content Scrolling** (src/ui/content_view.cpp)
- Add scroll position tracking
- Implement j/k, g/G, Space, b keyboard shortcuts
- Add scrollbar indicator
2. **Implement Link Navigation** (src/ui/main_window.cpp) 1. **Wire Up Forward Navigation** (src/main.cpp)
- Implement `setLinks()` to store link list - Connect forward button click to engine.goForward()
- Implement `onLinkClick()` callback - Add keyboard shortcut (maybe Shift+Backspace or Alt+→)
- Add Tab/Shift+Tab navigation
- Add number key shortcuts (1-9 to jump to links)
- Highlight selected link
3. **Wire Up Back/Forward** (src/main.cpp)
- Connect back/forward buttons to engine
- Add Backspace shortcut
- Update navigation buttons state
### Phase 2: Enhanced UX (Medium Priority) ### Phase 2: Enhanced UX (Medium Priority)
4. **Implement Search** (src/ui/content_view.cpp) 4. **Implement Search** (src/ui/content_view.cpp)
@ -134,12 +122,23 @@
Test 1: TLDP HOWTO index - ✅ PASSED Test 1: TLDP HOWTO index - ✅ PASSED
Test 2: example.com - ✅ PASSED Test 2: example.com - ✅ PASSED
Interactive test:
./build_ftxui/tut https://tldp.org/HOWTO/HOWTO-INDEX/howtos.html
✅ Scrolling with j/k - WORKS
✅ Tab to cycle links - WORKS
✅ Press '1' to jump to link 1 - WORKS
✅ Enter to follow link - WORKS
✅ Backspace to go back - WORKS
✅ 'r' to refresh - WORKS
✅ 'o' to open address bar - WORKS
``` ```
Successfully browses: Successfully browses:
- https://tldp.org/HOWTO/HOWTO-INDEX/howtos.html - https://tldp.org/HOWTO/HOWTO-INDEX/howtos.html ⭐ FULLY INTERACTIVE
- https://example.com - https://example.com ⭐ FULLY INTERACTIVE
- Any static HTML page - Any static HTML page ⭐ FULLY INTERACTIVE
## 🚀 Quick Start ## 🚀 Quick Start
@ -157,6 +156,21 @@ cmake --build build_ftxui -j$(nproc)
## 📝 Notes ## 📝 Notes
The core browsing engine is **fully functional** - we can fetch, parse, and render web pages. The main work remaining is implementing the interactive UI components that are already architected but not yet coded. **THE BROWSER IS NOW FULLY INTERACTIVE AND USABLE!** 🎉
The codebase is clean, well-structured, and ready for the next phase of development! You can actually browse the web with TUT:
- Load pages via HTTP/HTTPS
- Scroll content with vim-style keys
- Navigate between links with Tab or numbers
- Follow links by pressing Enter
- Go back in history with Backspace
- Enter new URLs with 'o' key
- See real-time load stats
The core experience is complete! Remaining work is mostly enhancements:
- Search within pages
- Persistent bookmarks and history
- Form support
- Better styling
See [KEYBOARD.md](KEYBOARD.md) for complete keyboard shortcuts reference.