mirror of
https://github.com/typst/typst
synced 2025-05-15 01:25:28 +08:00
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",
|
"pulldown-cmark",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_yaml",
|
"serde_yaml",
|
||||||
|
"syntect",
|
||||||
"typed-arena",
|
"typed-arena",
|
||||||
"typst",
|
"typst",
|
||||||
"typst-library",
|
"typst-library",
|
||||||
|
@ -20,6 +20,7 @@ once_cell = "1"
|
|||||||
pulldown-cmark = "0.9"
|
pulldown-cmark = "0.9"
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_yaml = "0.8"
|
serde_yaml = "0.8"
|
||||||
|
syntect = { version = "5", default-features = false, features = ["parsing", "html", "regex-fancy"] }
|
||||||
typed-arena = "2"
|
typed-arena = "2"
|
||||||
unicode_names2 = "0.6.0"
|
unicode_names2 = "0.6.0"
|
||||||
unscanny = "0.1"
|
unscanny = "0.1"
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
use std::ops::Range;
|
use std::ops::Range;
|
||||||
|
|
||||||
use comemo::Prehashed;
|
use comemo::Prehashed;
|
||||||
use md::escape::escape_html;
|
|
||||||
use pulldown_cmark as md;
|
use pulldown_cmark as md;
|
||||||
use typed_arena::Arena;
|
use typed_arena::Arena;
|
||||||
use typst::diag::FileResult;
|
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>");
|
let mut buf = String::from("<pre>");
|
||||||
escape_html(&mut buf, &display).unwrap();
|
md::escape::escape_html(&mut buf, &display).unwrap();
|
||||||
buf.push_str("</pre>");
|
buf.push_str("</pre>");
|
||||||
return Html::new(buf);
|
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);
|
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/VimHelp.sublime-syntax
|
||||||
/// syntaxes/02_Extra/cmd-help/syntaxes/cmd-help.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")));
|
Lazy::new(|| syntect::dumps::from_binary(include_bytes!("../../assets/syntect.bin")));
|
||||||
|
|
||||||
/// The default theme used for syntax highlighting.
|
/// The default theme used for syntax highlighting.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user