mirror of
https://github.com/zyllian/webdog.git
synced 2025-05-10 02:26:42 -07:00
implement custom embeds for regular pages
This commit is contained in:
parent
9a0e8f4607
commit
6a395f2292
5 changed files with 28 additions and 6 deletions
|
@ -21,6 +21,8 @@ struct TemplateData<'a, T> {
|
|||
pub page: &'a str,
|
||||
/// The page's title.
|
||||
pub title: &'a str,
|
||||
/// Custom head data for the page.
|
||||
pub head: Option<String>,
|
||||
/// Custom template data.
|
||||
#[serde(flatten)]
|
||||
pub extra_data: T,
|
||||
|
@ -204,11 +206,17 @@ impl<'a> SiteBuilder<'a> {
|
|||
_ => self.site.config.title.clone(),
|
||||
};
|
||||
|
||||
let head = page_metadata.embed.map(|mut embed| {
|
||||
embed.site_name.clone_from(&self.site.config.title);
|
||||
embed.build()
|
||||
});
|
||||
|
||||
let out = self.reg.render(
|
||||
&page_metadata.template.unwrap_or_else(|| "base".to_string()),
|
||||
&TemplateData {
|
||||
page: page_html,
|
||||
title: &title,
|
||||
head,
|
||||
extra_data,
|
||||
},
|
||||
)?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue