diff --git a/crates/typst/src/visualize/image/mod.rs b/crates/typst/src/visualize/image/mod.rs index fbbedfb3e..5d952b1a3 100644 --- a/crates/typst/src/visualize/image/mod.rs +++ b/crates/typst/src/visualize/image/mod.rs @@ -196,7 +196,7 @@ fn layout_image( format, elem.alt(styles), engine.world, - &families(styles).map(|s| s.into()).collect::>(), + &families(styles).collect::>(), ) .at(span)?; @@ -360,7 +360,7 @@ impl Image { format: ImageFormat, alt: Option, world: Tracked, - families: &[String], + families: &[&str], ) -> StrResult { let kind = match format { ImageFormat::Raster(format) => { diff --git a/crates/typst/src/visualize/image/svg.rs b/crates/typst/src/visualize/image/svg.rs index 09319ccde..f7a498a83 100644 --- a/crates/typst/src/visualize/image/svg.rs +++ b/crates/typst/src/visualize/image/svg.rs @@ -40,7 +40,7 @@ impl SvgImage { pub fn with_fonts( data: Bytes, world: Tracked, - families: &[String], + families: &[&str], ) -> StrResult { let book = world.book(); let resolver = Mutex::new(FontResolver::new(world, book, families)); @@ -142,7 +142,7 @@ struct FontResolver<'a> { /// The world we use to load fonts. world: Tracked<'a, dyn World + 'a>, /// The active list of font families at the location of the SVG. - families: &'a [String], + families: &'a [&'a str], /// A mapping from Typst font indices to fontdb IDs. to_id: HashMap>, /// The reverse mapping. @@ -156,7 +156,7 @@ impl<'a> FontResolver<'a> { fn new( world: Tracked<'a, dyn World + 'a>, book: &'a FontBook, - families: &'a [String], + families: &'a [&'a str], ) -> Self { Self { book, @@ -191,11 +191,11 @@ impl FontResolver<'_> { font.families() .iter() .filter_map(|family| match family { - usvg::FontFamily::Named(named) => Some(named), + usvg::FontFamily::Named(named) => Some(named.as_str()), // We don't support generic families at the moment. _ => None, }) - .chain(self.families) + .chain(self.families.iter().copied()) .filter_map(|named| self.book.select(&named.to_lowercase(), variant)) .find_map(|index| self.get_or_load(index, db)) }