summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-07-04 15:49:02 +0200
committerLaurenz <laurmaedje@gmail.com>2023-07-04 15:49:07 +0200
commit22052f4b597fa70fd2d338aab6de7a7f471e8665 (patch)
tree2e9b65f07756f02de11f95ec42f087d357788227
parent615b1eacc7fbb7c5f5d9c8e5beddd7a2bdd8c932 (diff)
Adapt docs infrastructure
-rw-r--r--crates/typst-docs/src/contribs.rs6
-rw-r--r--crates/typst-docs/src/html.rs3
-rw-r--r--crates/typst-docs/src/lib.rs4
3 files changed, 7 insertions, 6 deletions
diff --git a/crates/typst-docs/src/contribs.rs b/crates/typst-docs/src/contribs.rs
index 901b5f69..cbd87dc6 100644
--- a/crates/typst-docs/src/contribs.rs
+++ b/crates/typst-docs/src/contribs.rs
@@ -2,7 +2,7 @@ use std::cmp::Reverse;
use std::collections::HashMap;
use std::fmt::Write;
-use serde::Deserialize;
+use serde::{Deserialize, Serialize};
use super::{Html, Resolver};
@@ -73,13 +73,13 @@ struct Contributor {
}
/// A commit on the `typst` repository.
-#[derive(Debug, Deserialize)]
+#[derive(Debug, Serialize, Deserialize)]
pub struct Commit {
author: Author,
}
/// A commit author.
-#[derive(Debug, Deserialize)]
+#[derive(Debug, Serialize, Deserialize)]
pub struct Author {
login: String,
avatar_url: String,
diff --git a/crates/typst-docs/src/html.rs b/crates/typst-docs/src/html.rs
index 0d40f46b..4cbf5661 100644
--- a/crates/typst-docs/src/html.rs
+++ b/crates/typst-docs/src/html.rs
@@ -446,7 +446,8 @@ fn code_block(resolver: &dyn Resolver, lang: &str, text: &str) -> Html {
frames.truncate(1);
}
- resolver.example(highlighted, &frames)
+ let hash = typst::util::hash128(text);
+ resolver.example(hash, highlighted, &frames)
}
/// Extract an attribute value from an HTML element.
diff --git a/crates/typst-docs/src/lib.rs b/crates/typst-docs/src/lib.rs
index 1aabebf0..4f2c72b7 100644
--- a/crates/typst-docs/src/lib.rs
+++ b/crates/typst-docs/src/lib.rs
@@ -73,7 +73,7 @@ pub trait Resolver {
fn image(&self, filename: &str, data: &[u8]) -> String;
/// Produce HTML for an example.
- fn example(&self, source: Html, frames: &[Frame]) -> Html;
+ fn example(&self, hash: u128, source: Html, frames: &[Frame]) -> Html;
/// Determine the commits between two tags.
fn commits(&self, from: &str, to: &str) -> Vec<Commit>;
@@ -988,7 +988,7 @@ mod tests {
None
}
- fn example(&self, _: Html, _: &[Frame]) -> Html {
+ fn example(&self, _: u128, _: Html, _: &[Frame]) -> Html {
Html::new(String::new())
}