diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-09-13 09:44:39 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-09-13 09:44:39 +0000 |
commit | a06ef1f46c8603b8b5e5a44e6521b10238331891 (patch) | |
tree | 995392da4d56597be9ac71bba4669df299506ea7 /src/metadata.rs | |
parent | 217d920d72d9bf56174e0694329ef9c558160b69 (diff) | |
parent | 66bedaf70e7b652f791dd0e2fcbd39db3cbec6f9 (diff) | |
download | subplot-a06ef1f46c8603b8b5e5a44e6521b10238331891.tar.gz |
Merge branch 'multi-lang-docs' into 'main'
Implement polyglot bindings
See merge request subplot/subplot!210
Diffstat (limited to 'src/metadata.rs')
-rw-r--r-- | src/metadata.rs | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/src/metadata.rs b/src/metadata.rs index 27b07b4..0ee0b1a 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -1,4 +1,4 @@ -use crate::{resource, Result}; +use crate::Result; use crate::{Bindings, TemplateSpec}; use std::fmt::Debug; @@ -33,8 +33,8 @@ impl Metadata { { let title = get_title(&doc.meta); let date = get_date(&doc.meta); - let bindings_filenames = get_bindings_filenames(basedir.as_ref(), &doc.meta); - let functions_filenames = get_functions_filenames(basedir.as_ref(), &doc.meta); + let bindings_filenames = get_bindings_filenames(&doc.meta); + let functions_filenames = get_functions_filenames(&doc.meta); let bibliographies = get_bibliographies(basedir.as_ref(), &doc.meta); let classes = get_classes(&doc.meta); event!( @@ -48,7 +48,6 @@ impl Metadata { "Loaded basic metadata" ); let (template, spec) = if let Some((template, spec)) = get_template_spec(&doc.meta)? { - resource::set_template(&template); (Some(template), Some(spec)) } else { (None, None) @@ -56,7 +55,7 @@ impl Metadata { event!(Level::TRACE, ?template, ?spec, "Loaded template spec"); let mut bindings = Bindings::new(); - get_bindings(&bindings_filenames, &mut bindings)?; + get_bindings(&bindings_filenames, &mut bindings, template.as_deref())?; event!(Level::TRACE, "Loaded all metadata successfully"); Ok(Metadata { title, @@ -129,18 +128,12 @@ fn get_date(map: &Mapp) -> Option<String> { get_string(map, "date") } -fn get_bindings_filenames<P>(basedir: P, map: &Mapp) -> Vec<PathBuf> -where - P: AsRef<Path>, -{ - get_paths(basedir, map, "bindings") +fn get_bindings_filenames(map: &Mapp) -> Vec<PathBuf> { + get_paths("", map, "bindings") } -fn get_functions_filenames<P>(basedir: P, map: &Mapp) -> Vec<PathBuf> -where - P: AsRef<Path>, -{ - get_paths(basedir, map, "functions") +fn get_functions_filenames(map: &Mapp) -> Vec<PathBuf> { + get_paths("", map, "functions") } fn get_template_spec(map: &Mapp) -> Result<Option<(String, TemplateSpec)>> { @@ -295,12 +288,12 @@ mod test_join { } } -fn get_bindings<P>(filenames: &[P], bindings: &mut Bindings) -> Result<()> +fn get_bindings<P>(filenames: &[P], bindings: &mut Bindings, template: Option<&str>) -> Result<()> where P: AsRef<Path> + Debug, { for filename in filenames { - bindings.add_from_file(filename)?; + bindings.add_from_file(filename, template)?; } Ok(()) } |