mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-14 19:56:49 +00:00
30 lines
1.0 KiB
Rust
30 lines
1.0 KiB
Rust
//! Prints highlighted HTML for a file to stdout.
|
|
//! Basically just wraps a body around `highlighted_html_for_file`
|
|
use syntect::parsing::SyntaxSet;
|
|
use syntect::highlighting::{Color, ThemeSet};
|
|
use syntect::html::highlighted_html_for_file;
|
|
|
|
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>");
|
|
}
|