documents: export and measuring choose fonts as gpui draws: a missing family falls to sans-serif, then any face
CI / platforms (windows-latest) (push) Failing after 11s
CI / site (push) Successful in 26s
CI / crate (push) Failing after 11m39s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s

This commit is contained in:
ZacharyZhang-NY committed 2026-10-12 12:23:55 -04:00
1 parent 50a59d2620
commit a0011772ae
2 files changed
+21 -2

No files matched your search

+18 -1
View File
@@ -107,10 +107,27 @@ pub fn diagram_svg(source: &str) -> Result<String, SharedString> {
flatten(&svg(&chart)?)
}
/// usvg reading with the system's fonts.
/// usvg reading with the system's fonts, chosen as gpui draws.
pub(crate) fn options() -> usvg::Options<'static> {
let named = usvg::FontResolver::default_font_selector();
let select_font = Box::new(
move |font: &usvg::Font, db: &mut Arc<usvg::fontdb::Database>| {
// A missing family falls to sans-serif, then any face.
let sans = usvg::fontdb::Query {
families: &[usvg::fontdb::Family::SansSerif],
..Default::default()
};
named(font, db)
.or_else(|| db.query(&sans))
.or_else(|| db.faces().next().map(|face| face.id))
},
);
usvg::Options {
fontdb: fonts(),
font_resolver: usvg::FontResolver {
select_font,
select_fallback: usvg::FontResolver::default_fallback_selector(),
},
..usvg::Options::default()
}
}