refactor(main): use manifest.homepage in generate_homepage
Eliminate redundant Content::from_path call by using the pre-discovered manifest.homepage content. Also uses manifest.nav directly. - Removes dead_code warning on SiteManifest.homepage field - Reduces I/O by reusing discovered content - Simplifies function signature (4 args vs 5)
This commit is contained in:
19
src/main.rs
19
src/main.rs
@@ -185,7 +185,7 @@ fn run(config_path: &Path) -> Result<()> {
|
|||||||
process_pages(&content_dir, &output_dir, &config, &manifest.nav, &engine)?;
|
process_pages(&content_dir, &output_dir, &config, &manifest.nav, &engine)?;
|
||||||
|
|
||||||
// 4. Generate homepage
|
// 4. Generate homepage
|
||||||
generate_homepage(&content_dir, &output_dir, &config, &manifest.nav, &engine)?;
|
generate_homepage(&manifest, &output_dir, &config, &engine)?;
|
||||||
|
|
||||||
// 5. Generate sitemap
|
// 5. Generate sitemap
|
||||||
generate_sitemap_file(&output_dir, &manifest, &config, &content_dir)?;
|
generate_sitemap_file(&output_dir, &manifest, &config, &content_dir)?;
|
||||||
@@ -269,20 +269,23 @@ fn process_pages(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generate the homepage from content/_index.md
|
/// Generate the homepage from manifest.homepage
|
||||||
fn generate_homepage(
|
fn generate_homepage(
|
||||||
content_dir: &Path,
|
manifest: &content::SiteManifest,
|
||||||
output_dir: &Path,
|
output_dir: &Path,
|
||||||
config: &config::SiteConfig,
|
config: &config::SiteConfig,
|
||||||
nav: &[NavItem],
|
|
||||||
engine: &TemplateEngine,
|
engine: &TemplateEngine,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let index_path = content_dir.join("_index.md");
|
|
||||||
eprintln!("generating: homepage");
|
eprintln!("generating: homepage");
|
||||||
|
|
||||||
let content = Content::from_path(&index_path, ContentKind::Section)?;
|
let html_body = render::markdown_to_html(&manifest.homepage.body);
|
||||||
let html_body = render::markdown_to_html(&content.body);
|
let html = engine.render_page(
|
||||||
let html = engine.render_page(&content, &html_body, "/index.html", config, nav)?;
|
&manifest.homepage,
|
||||||
|
&html_body,
|
||||||
|
"/index.html",
|
||||||
|
config,
|
||||||
|
&manifest.nav,
|
||||||
|
)?;
|
||||||
|
|
||||||
let out_path = output_dir.join("index.html");
|
let out_path = output_dir.join("index.html");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user