Non-Typst highlighting in documentation
This commit is contained in:
parent
5b4f4c164b
commit
d1a7a6dbab
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -2495,6 +2495,7 @@ dependencies = [
|
||||
"pulldown-cmark",
|
||||
"serde",
|
||||
"serde_yaml",
|
||||
"syntect",
|
||||
"typed-arena",
|
||||
"typst",
|
||||
"typst-library",
|
||||
|
@ -20,6 +20,7 @@ once_cell = "1"
|
||||
pulldown-cmark = "0.9"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_yaml = "0.8"
|
||||
syntect = { version = "5", default-features = false, features = ["parsing", "html", "regex-fancy"] }
|
||||
typed-arena = "2"
|
||||
unicode_names2 = "0.6.0"
|
||||
unscanny = "0.1"
|
||||
|
@ -1,7 +1,6 @@
|
||||
use std::ops::Range;
|
||||
|
||||
use comemo::Prehashed;
|
||||
use md::escape::escape_html;
|
||||
use pulldown_cmark as md;
|
||||
use typed_arena::Arena;
|
||||
use typst::diag::FileResult;
|
||||
@ -402,11 +401,22 @@ fn code_block(resolver: &dyn Resolver, lang: &str, text: &str) -> Html {
|
||||
}
|
||||
}
|
||||
|
||||
if !matches!(lang, "example" | "typ") {
|
||||
if lang.is_empty() {
|
||||
let mut buf = String::from("<pre>");
|
||||
escape_html(&mut buf, &display).unwrap();
|
||||
md::escape::escape_html(&mut buf, &display).unwrap();
|
||||
buf.push_str("</pre>");
|
||||
return Html::new(buf);
|
||||
} else if !matches!(lang, "example" | "typ") {
|
||||
let set = &*typst_library::text::SYNTAXES;
|
||||
let buf = syntect::html::highlighted_html_for_string(
|
||||
&display,
|
||||
set,
|
||||
set.find_syntax_by_token(lang)
|
||||
.unwrap_or_else(|| panic!("unsupported highlighting language: {lang}")),
|
||||
&typst_library::text::THEME,
|
||||
)
|
||||
.expect("failed to highlight code");
|
||||
return Html::new(buf);
|
||||
}
|
||||
|
||||
let root = typst::syntax::parse(&display);
|
||||
|
@ -343,7 +343,7 @@ fn to_syn(RgbaColor { r, g, b, a }: RgbaColor) -> synt::Color {
|
||||
/// syntaxes/02_Extra/VimHelp.sublime-syntax
|
||||
/// syntaxes/02_Extra/cmd-help/syntaxes/cmd-help.sublime-syntax
|
||||
/// ```
|
||||
static SYNTAXES: Lazy<syntect::parsing::SyntaxSet> =
|
||||
pub static SYNTAXES: Lazy<syntect::parsing::SyntaxSet> =
|
||||
Lazy::new(|| syntect::dumps::from_binary(include_bytes!("../../assets/syntect.bin")));
|
||||
|
||||
/// The default theme used for syntax highlighting.
|
||||
|
Loading…
Reference in New Issue
Block a user