16 lines
575 B
Rust
16 lines
575 B
Rust
|
use syntect::{highlighting::ThemeSet, parsing::SyntaxSet};
|
||
|
use tracing::error;
|
||
|
|
||
|
pub fn hilight(content: &str, lang: &str) -> color_eyre::Result<String> {
|
||
|
let ss = SyntaxSet::load_defaults_newlines();
|
||
|
let s = ss.find_syntax_by_extension(lang).unwrap_or_else(|| {
|
||
|
error!("Syntax not found for language: {}", lang);
|
||
|
ss.find_syntax_plain_text()
|
||
|
});
|
||
|
let ts = ThemeSet::load_defaults();
|
||
|
let theme = ts.themes.first_key_value().unwrap().1; // TODO
|
||
|
|
||
|
let res = syntect::html::highlighted_html_for_string(content, &ss, s, theme)?;
|
||
|
Ok(res)
|
||
|
}
|