1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
//! Prints highlighted HTML for a file to stdout.
//! Basically just wraps a body around `highlighted_html_for_file`
use syntect_no_panic::highlighting::{Color, ThemeSet};
use syntect_no_panic::html::highlighted_html_for_file;
use syntect_no_panic::parsing::SyntaxSet;
fn main() {
let ss = SyntaxSet::load_defaults_newlines();
let ts = ThemeSet::load_defaults();
let args: Vec<String> = std::env::args().collect();
if args.len() < 2 {
println!("Please pass in a file to highlight");
return;
}
let style = "
pre {
font-size:13px;
font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;
}";
println!(
"<head><title>{}</title><style>{}</style></head>",
&args[1], style
);
let theme = &ts.themes["base16-ocean.dark"];
let c = theme.settings.background.unwrap_or(Color::WHITE);
println!(
"<body style=\"background-color:#{:02x}{:02x}{:02x};\">\n",
c.r, c.g, c.b
);
let html = highlighted_html_for_file(&args[1], &ss, theme).unwrap();
println!("{}", html);
println!("</body>");
}
|