The html field
The html field in the invocation of the statue::initialize_elements macro like this one:
#![allow(unused)] fn main() { initialize_elements!( html: "../index.html", elements: { let header = Single("h1"); let name_input = Single("#name-input"); } ); }
is always a string literal like "../index.html".
It cannot be a constant or a variable because procedural macros have access only to the tokens they receive as input and not to the compile-time or, moreover, runtime information.
The path in the html field is resolved relative to the CARGO_MANIFEST_DIR. This is the case because proc_macro::Span::source_file is not available on stable Rust.
TODO: Document the interaction of the workspaces and the resolution of the path.