summaryrefslogtreecommitdiff
path: root/crates/typst-docs/src
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-10-25 16:17:30 +0200
committerLaurenz <laurmaedje@gmail.com>2023-10-25 16:20:08 +0200
commit38f59c2a279b0c4f39763a99f04e9c3f3179c285 (patch)
treed816c9965b7e4549fe17318851b47cc8e00a3075 /crates/typst-docs/src
parenta7fbe5151e3feed933a6f66ed946e8e9ed30795a (diff)
Improve color and gradient docs
Diffstat (limited to 'crates/typst-docs/src')
-rw-r--r--crates/typst-docs/src/html.rs14
-rw-r--r--crates/typst-docs/src/lib.rs4
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())
}