Dynamically register which CSS files are needed.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
use super::footnote_definition::RenderRealFootnoteDefinition;
|
||||
use super::macros::render;
|
||||
use super::render_context::RenderContext;
|
||||
@@ -30,33 +32,6 @@ pub(crate) struct RenderPage {
|
||||
|
||||
render!(RenderPage, IPage, original, render_context, {
|
||||
push_file!(render_context, &original.src, {
|
||||
let css_files = vec![
|
||||
get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"stylesheet/reset.css",
|
||||
)?,
|
||||
get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"stylesheet/main.css",
|
||||
)?,
|
||||
get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"stylesheet/language_nix.css",
|
||||
)?,
|
||||
];
|
||||
let js_files = vec![get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"blog_post.js",
|
||||
)?];
|
||||
let global_settings = GlobalSettings::new(original.title.clone(), css_files, js_files);
|
||||
let page_header = PageHeader::new(
|
||||
render_context.config.get_site_title().map(str::to_string),
|
||||
Some(get_web_path(
|
||||
@@ -98,6 +73,45 @@ render!(RenderPage, IPage, original, render_context, {
|
||||
ret
|
||||
};
|
||||
|
||||
let mut css_files = vec![
|
||||
get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"stylesheet/reset.css",
|
||||
)?,
|
||||
get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"stylesheet/main.css",
|
||||
)?,
|
||||
];
|
||||
let additional_css_files = render_context
|
||||
.dependency_manager
|
||||
.lock()
|
||||
.unwrap()
|
||||
.list_css()?
|
||||
.map(|css_name| {
|
||||
get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
format!("stylesheet/{}", css_name),
|
||||
)
|
||||
})
|
||||
.collect::<Result<HashSet<_>, _>>()?;
|
||||
css_files.extend(additional_css_files.into_iter());
|
||||
|
||||
let js_files = vec![get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
"blog_post.js",
|
||||
)?];
|
||||
|
||||
let global_settings = GlobalSettings::new(original.title.clone(), css_files, js_files);
|
||||
|
||||
let ret = RenderPage {
|
||||
global_settings,
|
||||
page_header: Some(page_header),
|
||||
|
||||
Reference in New Issue
Block a user