macro_rules! item_template {
    (
        $(#[$meta:meta])*
        struct $name:ident<'a, 'cx> {
            cx: RefCell<&'a mut Context<'cx>>,
            it: &'a clean::Item,
            $($field_name:ident: $field_ty:ty),*,
        },
        methods = [$($methods:tt),* $(,)?]
    ) => { ... };
}
Expand description

Generates an Askama template struct for rendering items with common methods.

Usage:

item_template!(
    #[template(path = "<template.html>", /* additional values */)]
    /* additional meta items */
    struct MyItem<'a, 'cx> {
        cx: RefCell<&'a mut Context<'cx>>,
        it: &'a clean::Item,
        /* additional fields */
    },
    methods = [ /* method names (comma separated; refer to macro definition of `item_template_methods!()`) */ ]
)
Run

NOTE: ensure that the generic lifetimes ('a, 'cx) and required fields (cx, it) are identical (in terms of order and definition).