From b81c4a10f0a07d3a5ffa38ecc26f86be227922f0 Mon Sep 17 00:00:00 2001 From: Ernestas Poskus <ernestas.poskus@gmail.com> Date: Mon, 5 Dec 2016 19:17:57 +0200 Subject: [PATCH] Add Javascript element Drop type=text/javascript from Javascript fn Rename Javascript fn to Js --- maud_extras/lib.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/maud_extras/lib.rs b/maud_extras/lib.rs index bbff757..93e3db2 100644 --- a/maud_extras/lib.rs +++ b/maud_extras/lib.rs @@ -30,3 +30,29 @@ impl<T: AsRef<str>> Render for Css<T> { } } } + +/// Links to an external javascript. +/// +/// # Example +/// +/// ```rust +/// # #![feature(plugin)] +/// # #![plugin(maud_macros)] +/// # extern crate maud; +/// # extern crate maud_extras; +/// # use maud_extras::*; +/// # fn main() { +/// let markup = html! { (Js("app.js")) }; +/// assert_eq!(markup.into_string(), +/// r#"<script src="app.js"></script>"#); +/// # } +/// ``` +pub struct Js<T: AsRef<str>>(pub T); + +impl<T: AsRef<str>> Render for Js<T> { + fn render(&self) -> Markup { + html! { + script src=(self.0.as_ref()) {} + } + } +}