Add a way to add extra HTML to the head and body at runtime.
This commit is contained in:
parent
ef19f53adb
commit
e41763a229
|
@ -110,6 +110,7 @@ pub async fn run() -> Result<()> {
|
||||||
groups,
|
groups,
|
||||||
user_count_group.as_ref().map(|group| group.subscribers),
|
user_count_group.as_ref().map(|group| group.subscribers),
|
||||||
)
|
)
|
||||||
|
.await
|
||||||
.render_to_file(&output)
|
.render_to_file(&output)
|
||||||
.await?;
|
.await?;
|
||||||
generate_css(&output).await?;
|
generate_css(&output).await?;
|
||||||
|
|
|
@ -10,10 +10,12 @@
|
||||||
<link rel="stylesheet" href="/css/modern-normalize.css">
|
<link rel="stylesheet" href="/css/modern-normalize.css">
|
||||||
<link rel="stylesheet" href="/css/common.css">
|
<link rel="stylesheet" href="/css/common.css">
|
||||||
{% block head %}{% endblock %}
|
{% block head %}{% endblock %}
|
||||||
|
{{ extra_head_html|safe }}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
{% block body %}{% endblock %}
|
{% block body %}{% endblock %}
|
||||||
|
{{ extra_body_html|safe }}
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,7 +2,10 @@
|
||||||
|
|
||||||
use {
|
use {
|
||||||
askama::Template,
|
askama::Template,
|
||||||
async_std::{fs::write, path::PathBuf},
|
async_std::{
|
||||||
|
fs::{read_to_string, write},
|
||||||
|
path::PathBuf,
|
||||||
|
},
|
||||||
chrono::NaiveDate,
|
chrono::NaiveDate,
|
||||||
color_eyre::Result,
|
color_eyre::Result,
|
||||||
};
|
};
|
||||||
|
@ -13,6 +16,12 @@ use crate::{group_data::GroupDataModel, utilities::today};
|
||||||
#[derive(Template)]
|
#[derive(Template)]
|
||||||
#[template(path = "index.html")]
|
#[template(path = "index.html")]
|
||||||
pub struct HomeTemplate {
|
pub struct HomeTemplate {
|
||||||
|
/// Extra HTML to insert in the body.
|
||||||
|
pub extra_body_html: String,
|
||||||
|
|
||||||
|
/// Extra HTML to insert in the head.
|
||||||
|
pub extra_head_html: String,
|
||||||
|
|
||||||
/// The groups to create the table with.
|
/// The groups to create the table with.
|
||||||
pub groups: Vec<GroupDataModel>,
|
pub groups: Vec<GroupDataModel>,
|
||||||
|
|
||||||
|
@ -28,8 +37,16 @@ pub struct HomeTemplate {
|
||||||
|
|
||||||
impl HomeTemplate {
|
impl HomeTemplate {
|
||||||
/// Create a new [`HomeTemplate`].
|
/// Create a new [`HomeTemplate`].
|
||||||
pub fn new(groups: Vec<GroupDataModel>, user_count: Option<i64>) -> Self {
|
pub async fn new(
|
||||||
|
groups: Vec<GroupDataModel>,
|
||||||
|
user_count: Option<i64>,
|
||||||
|
) -> Self {
|
||||||
|
let extra_body_html = read_to_string("extra-body.html").await;
|
||||||
|
let extra_head_html = read_to_string("extra-head.html").await;
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
|
extra_body_html: extra_body_html.unwrap_or_default(),
|
||||||
|
extra_head_html: extra_head_html.unwrap_or_default(),
|
||||||
groups,
|
groups,
|
||||||
page_title: "Tildes Statistics".to_string(),
|
page_title: "Tildes Statistics".to_string(),
|
||||||
today: today(),
|
today: today(),
|
||||||
|
|
Loading…
Reference in New Issue