sova-meta 0.1.2

Document meta, OG/Twitter, JSON-LD, sitemap and robots for Sova
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! Template `meta()` helper (feature `templates`).

use crate::html::render_html;
use crate::resolve_meta;
use minijinja::Value;
use sova_core::Request;
use sova_templates::MiniJinjaTemplatesBuilder;

/// Attach per-request `meta` function that renders the HTML head fragment.
///
/// Prefer installing [`crate::Meta`] with feature `templates` — `meta` is
/// registered automatically. This wrapper remains for explicit builder chaining.
pub fn with_meta(builder: MiniJinjaTemplatesBuilder) -> MiniJinjaTemplatesBuilder {
    builder.per_request("meta", |req: &Request| {
        let html = render_html(&resolve_meta(req));
        Value::from_function(move || html.clone())
    })
}