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:
Timothy DeHerrera
2026-01-31 22:18:49 -07:00
parent 759838e7f5
commit 922aeba834

View File

@@ -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");