mirror of
https://github.com/zyllian/webdog.git
synced 2025-01-18 03:32:21 -08:00
add support for custom scripts on a page
This commit is contained in:
parent
4d1d5308d3
commit
831a1486ee
3 changed files with 9 additions and 0 deletions
|
@ -7,6 +7,9 @@
|
|||
<link rel="stylesheet" href="/styles/index.css">
|
||||
<title>{{title}}</title>
|
||||
{{{head}}}
|
||||
{{#each scripts}}
|
||||
<script src="{{this}}"></script>
|
||||
{{/each}}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
|
@ -21,6 +21,8 @@ struct TemplateData<'a, T> {
|
|||
pub page: &'a str,
|
||||
/// The page's title.
|
||||
pub title: &'a str,
|
||||
/// The page's custom scripts.
|
||||
pub scripts: &'a [String],
|
||||
/// Custom template data.
|
||||
#[serde(flatten)]
|
||||
pub extra_data: T,
|
||||
|
@ -213,6 +215,7 @@ impl<'a> SiteBuilder<'a> {
|
|||
&TemplateData {
|
||||
page: page_html,
|
||||
title: &title,
|
||||
scripts: &page_metadata.scripts,
|
||||
extra_data,
|
||||
},
|
||||
)?;
|
||||
|
|
|
@ -67,6 +67,9 @@ pub struct PageMetadata {
|
|||
pub title: Option<String>,
|
||||
/// The template to use for the page. If not specified, it defaults to "base".
|
||||
pub template: Option<String>,
|
||||
/// The page's custom scripts, if any.
|
||||
#[serde(default)]
|
||||
pub scripts: Vec<String>,
|
||||
/// The extra stuff to run for the page, if any.
|
||||
pub extra: Option<String>,
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue