- The Rust toolchain specified in
rust-toolchain.toml
. - Node.js and an
$ npm install
.
$ cargo run -- --help
- The website content is generated at build time, except for the calendars.
- The calendars are generated at runtime, except for the contents of the calendar event element.
-
All content is generated by components.
-
A component is a type that implements
maud::Render
. -
A component
Foo
and its implementations are in a modulecrate::components::foo
. -
The
crate::components
module re-exports all the components. -
Components are never imported directly into scope. Instead, the
crate::components
module is brought into scope. A componentFoo
is referred to ascomponents::Foo
. -
Component fields are
pub(crate)
. No constructor methods. An example of how a component is used:html! { (components::Foo { a: 1 }) }
-
Some types that implement
maud::Render
are not components. This is because they are used as HTML attribute values. Themaud::Render
trait is used for attribute values, as well.