56 lines
1.1 KiB
Markdown
56 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!
|