diff options
| author | Laurenz <laurmaedje@gmail.com> | 2024-02-28 11:06:54 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-28 10:06:54 +0000 |
| commit | e16d3f5a67a31154797b4d56cdc6ed142ee2a7cf (patch) | |
| tree | 31dcd2243c2b51bac62fe19e7e60efe5f6289281 /crates/typst-docs/src | |
| parent | 5036c5acebebe12cbf14338f5413514251d83d1e (diff) | |
Externalize assets (#3515)
Diffstat (limited to 'crates/typst-docs/src')
| -rw-r--r-- | crates/typst-docs/src/html.rs | 17 | ||||
| -rw-r--r-- | crates/typst-docs/src/lib.rs | 9 |
2 files changed, 13 insertions, 13 deletions
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<Bytes> { 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<Font> { 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<Vec<GroupData>> = Lazy::new(|| { let mut groups: Vec<GroupData> = yaml("reference/groups.yml"); @@ -67,9 +66,9 @@ static LIBRARY: Lazy<Prehashed<Library>> = Lazy::new(|| { }); static FONTS: Lazy<(Prehashed<FontBook>, Vec<Font>)> = 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) |
