From e16d3f5a67a31154797b4d56cdc6ed142ee2a7cf Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 28 Feb 2024 11:06:54 +0100 Subject: Externalize assets (#3515) --- crates/typst-docs/src/html.rs | 17 +++++++++-------- crates/typst-docs/src/lib.rs | 9 ++++----- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'crates/typst-docs/src') diff --git a/crates/typst-docs/src/html.rs b/crates/typst-docs/src/html.rs index 0ec0ddf0..6c47b8df 100644 --- a/crates/typst-docs/src/html.rs +++ b/crates/typst-docs/src/html.rs @@ -17,7 +17,7 @@ use typst::{Library, World}; use unscanny::Scanner; use yaml_front_matter::YamlFrontMatter; -use crate::{contributors, OutlineItem, Resolver, FILE_DIR, FONTS, LIBRARY}; +use crate::{contributors, OutlineItem, Resolver, FONTS, LIBRARY}; /// HTML documentation. #[derive(Serialize)] @@ -250,8 +250,8 @@ impl<'a> Handler<'a> { } fn handle_image(&self, link: &str) -> String { - if let Some(file) = FILE_DIR.get_file(link) { - self.resolver.image(link, file.contents()) + if let Some(data) = typst_dev_assets::get(link) { + self.resolver.image(link, data) } else if let Some(url) = self.resolver.link(link) { url } else { @@ -451,11 +451,12 @@ impl World for DocWorld { fn file(&self, id: FileId) -> FileResult { assert!(id.package().is_none()); - Ok(FILE_DIR - .get_file(id.vpath().as_rootless_path()) - .unwrap_or_else(|| panic!("failed to load {:?}", id.vpath())) - .contents() - .into()) + Ok(Bytes::from_static( + typst_dev_assets::get_by_name( + &id.vpath().as_rootless_path().to_string_lossy(), + ) + .unwrap_or_else(|| panic!("failed to load {:?}", id.vpath())), + )) } fn font(&self, index: usize) -> Option { diff --git a/crates/typst-docs/src/lib.rs b/crates/typst-docs/src/lib.rs index 0a69523e..5439ad1b 100644 --- a/crates/typst-docs/src/lib.rs +++ b/crates/typst-docs/src/lib.rs @@ -20,6 +20,7 @@ use serde::de::DeserializeOwned; use serde::Deserialize; use serde_yaml as yaml; use typst::diag::{bail, StrResult}; +use typst::foundations::Bytes; use typst::foundations::{ CastInfo, Category, Func, Module, ParamInfo, Repr, Scope, Smart, Type, Value, FOUNDATIONS, @@ -36,8 +37,6 @@ use typst::visualize::VISUALIZE; use typst::Library; static DOCS_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/../../docs"); -static FILE_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/../../assets/files"); -static FONT_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/../../assets/fonts"); static GROUPS: Lazy> = Lazy::new(|| { let mut groups: Vec = yaml("reference/groups.yml"); @@ -67,9 +66,9 @@ static LIBRARY: Lazy> = Lazy::new(|| { }); static FONTS: Lazy<(Prehashed, Vec)> = Lazy::new(|| { - let fonts: Vec<_> = FONT_DIR - .files() - .flat_map(|file| Font::iter(file.contents().into())) + let fonts: Vec<_> = typst_assets::fonts() + .chain(typst_dev_assets::fonts()) + .flat_map(|data| Font::iter(Bytes::from_static(data))) .collect(); let book = FontBook::from_fonts(&fonts); (Prehashed::new(book), fonts) -- cgit v1.2.3