blob: 50bc5a9fc00854c2ac2f041ecbbb876afaa97cbb (
plain)
use std::io::Read;
use std::path::PathBuf;
use syntect::highlighting::ThemeSet;
use syntect::html::highlighted_html_for_string;
use syntect::parsing::SyntaxSet;
fn main() {
let syntax_set = SyntaxSet::load_defaults_newlines();
let theme_set = ThemeSet::load_defaults();
let mut theme = theme_set.themes["InspiredGitHub"].clone();
theme.settings.background = None;
let filename = std::env::args().nth(1).map(PathBuf::from);
let extension = filename
.as_ref()
.and_then(|p| p.extension())
.and_then(|s| s.to_str());
let syntax = extension.and_then(|extension| syntax_set.find_syntax_by_extension(extension));
let mut file = String::new();
let _ = std::io::stdin().read_to_string(&mut file);
let Some(syntax) = syntax else {
print!("{file}");
return;
};
let highlighted_file =
highlighted_html_for_string(&file, &syntax_set, syntax, &theme).unwrap_or(file);
println!("{highlighted_file}");
}
|