summaryrefslogtreecommitdiff
path: root/src/metadata.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-09-13 09:44:39 +0000
committerLars Wirzenius <liw@liw.fi>2021-09-13 09:44:39 +0000
commita06ef1f46c8603b8b5e5a44e6521b10238331891 (patch)
tree995392da4d56597be9ac71bba4669df299506ea7 /src/metadata.rs
parent217d920d72d9bf56174e0694329ef9c558160b69 (diff)
parent66bedaf70e7b652f791dd0e2fcbd39db3cbec6f9 (diff)
downloadsubplot-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.rs27
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(())
}