diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-01-06 12:41:42 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-01-06 12:41:42 +0100 |
| commit | 2ee5810fecb96a8d4e0d078faecc8c91096d6881 (patch) | |
| tree | 702c746a3021f5034e1b31cd07e8fadba0e4dd7a /src/library/mod.rs | |
| parent | bd384a2a633e21cd7deff7ed2a29a9c03a63a20e (diff) | |
Asyncify font loading 🪐
Diffstat (limited to 'src/library/mod.rs')
| -rw-r--r-- | src/library/mod.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs index ac1ac338..513590eb 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -55,19 +55,25 @@ function! { #[derive(Debug, PartialEq)] pub struct FontFamilyFunc { body: Option<SyntaxTree>, - family: String, + list: Vec<String>, } parse(args, body, ctx, meta) { FontFamilyFunc { body: parse!(optional: body, ctx), - family: args.get_pos::<String>()?, + list: { + args.pos().map(|arg| match arg.v { + Expression::Str(s) | + Expression::Ident(Ident(s)) => Ok(s.to_lowercase()), + _ => error!("expected identifier or string"), + }).collect::<LayoutResult<Vec<_>>>()? + } } } layout(self, ctx) { let mut style = ctx.style.text.clone(); - style.fallback.list = vec![self.family.clone()]; + style.fallback.list = self.list.clone(); styled(&self.body, &ctx, style) } } |
