Update the dependency manager file stack when rendering blog post pages.

This commit is contained in:
Tom Alexander 2025-02-08 18:01:59 -05:00
parent 3867f965d2
commit 4e0f66401d
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
2 changed files with 89 additions and 58 deletions

View File

@ -49,6 +49,12 @@ render!(
original, original,
render_context, render_context,
{ {
render_context
.dependency_manager
.lock()
.unwrap()
.push_file(&original.page.src)?;
let ret = (|| {
let css_files = vec![ let css_files = vec![
get_web_path( get_web_path(
render_context.config, render_context.config,
@ -69,7 +75,8 @@ render!(
render_context.output_file, render_context.output_file,
"blog_post.js", "blog_post.js",
)?]; )?];
let global_settings = GlobalSettings::new(original.page.title.clone(), css_files, js_files); let global_settings =
GlobalSettings::new(original.page.title.clone(), css_files, js_files);
let page_header = PageHeader::new( let page_header = PageHeader::new(
render_context.config.get_site_title().map(str::to_string), render_context.config.get_site_title().map(str::to_string),
Some(get_web_path( Some(get_web_path(
@ -120,5 +127,12 @@ render!(
footnotes, footnotes,
}; };
Ok(ret) Ok(ret)
})();
render_context
.dependency_manager
.lock()
.unwrap()
.pop_file()?;
ret
} }
); );

View File

@ -1,5 +1,7 @@
use std::path::PathBuf; use std::path::PathBuf;
use crate::error::CustomError;
pub(crate) type RefDependencyManager = std::sync::Arc<std::sync::Mutex<DependencyManager>>; pub(crate) type RefDependencyManager = std::sync::Arc<std::sync::Mutex<DependencyManager>>;
#[derive(Debug)] #[derive(Debug)]
@ -16,4 +18,19 @@ impl DependencyManager {
file_stack: Vec::new(), file_stack: Vec::new(),
} }
} }
pub(crate) fn push_file<P>(&mut self, path: P) -> Result<(), CustomError>
where
P: Into<PathBuf>,
{
self.file_stack.push(path.into());
Ok(())
}
pub(crate) fn pop_file(&mut self) -> Result<(), CustomError> {
self.file_stack
.pop()
.expect("Popped more files off the dependency manager file stack than exist.");
Ok(())
}
} }