57 lines
1.1 KiB
Markdown
57 lines
1.1 KiB
Markdown
|
# Getting started
|
|||
|
|
|||
|
## Install nightly Rust
|
|||
|
|
|||
|
Maud requires the nightly version of Rust.
|
|||
|
If you're using `rustup`,
|
|||
|
see the [documentation][rustup]
|
|||
|
for how to install this version.
|
|||
|
|
|||
|
[rustup]: https://github.com/rust-lang/rustup.rs/blob/master/README.md#working-with-nightly-rust
|
|||
|
|
|||
|
## Add Maud to your project
|
|||
|
|
|||
|
Once Rust is set up,
|
|||
|
create a new project with Cargo:
|
|||
|
|
|||
|
```sh
|
|||
|
cargo new --bin pony-greeter
|
|||
|
cd pony-greeter
|
|||
|
```
|
|||
|
|
|||
|
Add `maud` to your `Cargo.toml`:
|
|||
|
|
|||
|
```toml
|
|||
|
[dependencies]
|
|||
|
maud = "*"
|
|||
|
```
|
|||
|
|
|||
|
Then save the following to `src/main.rs`:
|
|||
|
|
|||
|
```rust
|
|||
|
#![feature(proc_macro_hygiene)]
|
|||
|
|
|||
|
extern crate maud;
|
|||
|
use maud::html;
|
|||
|
|
|||
|
fn main() {
|
|||
|
let name = "Lyra";
|
|||
|
let markup = html! {
|
|||
|
p { "Hi, " (name) "!" }
|
|||
|
};
|
|||
|
println!("{}", markup.into_string());
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
`html!` takes a single argument: a template using Maud's custom syntax. This call expands to an expression of type [`Markup`][Markup], which can then be converted to a `String` using `.into_string()`.
|
|||
|
|
|||
|
[Markup]: https://docs.rs/maud/*/maud/type.Markup.html
|
|||
|
|
|||
|
Run this program with `cargo run`, and you should get the following:
|
|||
|
|
|||
|
```
|
|||
|
<p>Hi, Lyra!</p>
|
|||
|
```
|
|||
|
|
|||
|
Congrats – you've written your first Maud program!
|