use std::io::{self, BufRead, Write};
use streamdown_parser::Parser;
use streamdown_render::Renderer;
fn main() -> io::Result<()> {
let stdin = io::stdin();
let mut stdout = io::stdout();
let mut parser = Parser::new();
let width = terminal_size::terminal_size()
.map(|(w, _)| w.0 as usize)
.unwrap_or(80);
let lines: Vec<String> = stdin.lock().lines().collect::<Result<_, _>>()?;
{
let mut renderer = Renderer::new(&mut stdout, width);
for line in &lines {
let events = parser.parse_line(line);
for event in events {
renderer.render_event(&event)?;
}
}
}
stdout.flush()?;
Ok(())
}