Remove line trimming for shortcode bodies

Can't remember why it was doing that even
with the comment and the test added in the
commit still pass so...

Fix #462
This commit is contained in:
Vincent Prouillet 2018-10-10 15:26:31 +02:00
parent 44a33c020c
commit 7ecdc47b91

View file

@ -100,9 +100,7 @@ fn render_shortcode(name: &str, args: &Map<String, Value>, context: &RenderConte
.render(&tpl_name, &tera_context) .render(&tpl_name, &tera_context)
.chain_err(|| format!("Failed to render {} shortcode", name))?; .chain_err(|| format!("Failed to render {} shortcode", name))?;
// We trim left every single line of a shortcode to avoid the accidental Ok(res)
// shortcode counted as code block because of 4 spaces left padding
Ok(res.lines().map(|s| s.trim_left()).collect())
} }
pub fn render_shortcodes(content: &str, context: &RenderContext) -> Result<String> { pub fn render_shortcodes(content: &str, context: &RenderContext) -> Result<String> {
@ -387,4 +385,13 @@ Some body {{ hello() }}{%/* end */%}"#, &Tera::default());
let res = render_shortcodes("Body\n {% youtube() %}Hey!{% end %}", &tera); let res = render_shortcodes("Body\n {% youtube() %}Hey!{% end %}", &tera);
assert_eq!(res, "Body\n Hey!"); assert_eq!(res, "Body\n Hey!");
} }
// https://github.com/Keats/gutenberg/issues/462
#[test]
fn shortcodes_with_body_do_not_eat_newlines() {
let mut tera = Tera::default();
tera.add_raw_template("shortcodes/youtube.html", "{{body | safe}}").unwrap();
let res = render_shortcodes("Body\n {% youtube() %}\nHello \n World{% end %}", &tera);
assert_eq!(res, "Body\n Hello \n World");
}
} }