diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-10-25 16:17:30 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-10-25 16:20:08 +0200 |
| commit | 38f59c2a279b0c4f39763a99f04e9c3f3179c285 (patch) | |
| tree | d816c9965b7e4549fe17318851b47cc8e00a3075 /crates/typst-docs | |
| parent | a7fbe5151e3feed933a6f66ed946e8e9ed30795a (diff) | |
Improve color and gradient docs
Diffstat (limited to 'crates/typst-docs')
| -rw-r--r-- | crates/typst-docs/src/html.rs | 14 | ||||
| -rw-r--r-- | crates/typst-docs/src/lib.rs | 4 |
2 files changed, 11 insertions, 7 deletions
diff --git a/crates/typst-docs/src/html.rs b/crates/typst-docs/src/html.rs index ea81fa5c..c79f07cb 100644 --- a/crates/typst-docs/src/html.rs +++ b/crates/typst-docs/src/html.rs @@ -356,7 +356,7 @@ fn code_block(resolver: &dyn Resolver, lang: &str, text: &str) -> Html { md::escape::escape_html(&mut buf, &display).unwrap(); buf.push_str("</pre>"); return Html::new(buf); - } else if !matches!(lang, "example" | "typ") { + } else if !matches!(lang, "example" | "typ" | "preview") { let set = &*typst_library::text::SYNTAXES; let buf = syntect::html::highlighted_html_for_string( &display, @@ -369,10 +369,14 @@ fn code_block(resolver: &dyn Resolver, lang: &str, text: &str) -> Html { return Html::new(buf); } - let root = typst::syntax::parse(&display); - let highlighted = Html::new(typst::syntax::highlight_html(&root)); - if lang == "typ" { - return Html::new(format!("<pre>{}</pre>", highlighted.as_str())); + let mut highlighted = None; + if matches!(lang, "example" | "typ") { + let root = typst::syntax::parse(&display); + let html = Html::new(typst::syntax::highlight_html(&root)); + if lang == "typ" { + return Html::new(format!("<pre>{}</pre>", html.as_str())); + } + highlighted = Some(html); } let id = FileId::new(None, VirtualPath::new("main.typ")); diff --git a/crates/typst-docs/src/lib.rs b/crates/typst-docs/src/lib.rs index 30ba4ebb..d32b5d66 100644 --- a/crates/typst-docs/src/lib.rs +++ b/crates/typst-docs/src/lib.rs @@ -77,7 +77,7 @@ pub trait Resolver { fn image(&self, filename: &str, data: &[u8]) -> String; /// Produce HTML for an example. - fn example(&self, hash: u128, source: Html, frames: &[Frame]) -> Html; + fn example(&self, hash: u128, source: Option<Html>, frames: &[Frame]) -> Html; /// Determine the commits between two tags. fn commits(&self, from: &str, to: &str) -> Vec<Commit>; @@ -780,7 +780,7 @@ mod tests { None } - fn example(&self, _: u128, _: Html, _: &[Frame]) -> Html { + fn example(&self, _: u128, _: Option<Html>, _: &[Frame]) -> Html { Html::new(String::new()) } |
