diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-11 03:40:54 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-11 03:40:54 +0800 |
| commit | 85c1e247ce50ea1fa1ba12d524664063eac737a1 (patch) | |
| tree | e0c63e28599eddcf0165a062457ae1538ed3ef9c /ricochet/src/core | |
| parent | 86f0162f5556e25ce6a5b9b1327ff7ef2800d5c1 (diff) | |
| download | rcc-project-85c1e247ce50ea1fa1ba12d524664063eac737a1.tar.gz rcc-project-85c1e247ce50ea1fa1ba12d524664063eac737a1.tar.xz | |
feat: implement terminal renderer and integrate into browser core
Diffstat (limited to 'ricochet/src/core')
| -rw-r--r-- | ricochet/src/core/browser.cc | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/ricochet/src/core/browser.cc b/ricochet/src/core/browser.cc index e4c4c60..31f4df0 100644 --- a/ricochet/src/core/browser.cc +++ b/ricochet/src/core/browser.cc @@ -20,23 +20,24 @@ #include "ricochet/net/http_client.hh" #include "ricochet/parser/html_lexer.hh" #include "ricochet/parser/tree_builder.hh" +#include "ricochet/render/renderer.hh" #include <iostream> -namespace { -void print_dom_tree( const ricochet::parser::DomNode& node, std::size_t depth = 0 ) // NOLINT(misc-no-recursion) -{ - const std::string indent( depth * 2, ' ' ); +// namespace { +// void print_dom_tree( const ricochet::parser::DomNode& node, std::size_t depth = 0 ) // NOLINT(misc-no-recursion) +// { +// const std::string indent( depth * 2, ' ' ); - if ( node.tag_name.empty() ) { - std::cout << indent << "\"" << node.text_content << "\"\n"; - } else { - std::cout << indent << "<" << node.tag_name << ">\n"; - for ( const auto& child : node.children ) { - print_dom_tree( child, depth + 1 ); - } - } -} -} // namespace +// if ( node.tag_name.empty() ) { +// std::cout << indent << "\"" << node.text_content << "\"\n"; +// } else { +// std::cout << indent << "<" << node.tag_name << ">\n"; +// for ( const auto& child : node.children ) { +// print_dom_tree( child, depth + 1 ); +// } +// } +// } +// } // namespace namespace ricochet::core { int Browser::run( std::string_view initial_url ) @@ -59,8 +60,10 @@ int Browser::run( std::string_view initial_url ) const parser::TreeBuilder builder; const auto dom_root = builder.build( tokens ); - std::cout << "\n[=== Abstract Syntax Tree (DOM) ===]\n"; - print_dom_tree( dom_root ); + // std::cout << "\033[2J\033[1;1H"; + + const render::Renderer renderer; + renderer.render( dom_root ); return 0; } |
