Meta attributes on definitions should be extended in a way, that functions do not get evaluated until the end. Only after the body got rendered, the provided functions get evaluated - receiving the top level let bindings as input.
page BlogPost(
label: "Blog Post",
displayName: fun (title) -> "Blog - " ++ title,
) {
let title = #String(label: "Title");
}