summaryrefslogtreecommitdiff
path: root/src/main.rs
blob: d045db66db474cfe3bb98a1959fba5852742b3a9 (plain)
use std::io::Read;
use std::path::PathBuf;

use arborium::{detect_language, Highlighter};

fn main() {
	let filename = std::env::args().nth(1).map(PathBuf::from);
	let mut file = String::new();
	let _ = std::io::stdin().read_to_string(&mut file);

	let language = filename.and_then(|filename| detect_language(&filename.to_string_lossy()));
	let Some(language) = language else {
		print!("{file}");
		return;
	};

	let mut highlighter = Highlighter::with_config(arborium::Config {
		html_format: arborium::HtmlFormat::ClassNames,
		..Default::default()
	});
	let highlighted_file = highlighter.highlight(language, &file).unwrap_or(file);
	println!("{highlighted_file}");
}