From ef70385545513fc66ca237027e5f75a747d04457 Mon Sep 17 00:00:00 2001 From: Florian Dieminger Date: Thu, 7 Nov 2024 15:14:49 +0100 Subject: [PATCH] fix(templ): escape closing curly braces --- crates/diff-test/src/main.rs | 8 +++++--- crates/rari-doc/src/helpers/css_info.rs | 2 +- crates/rari-doc/src/templ/render.rs | 18 ++++++++++++++++-- crates/rari-doc/src/templ/templs/cssinfo.rs | 14 +++++--------- .../src/templ/templs/embeds/livesample.rs | 6 +++--- 5 files changed, 30 insertions(+), 18 deletions(-) diff --git a/crates/diff-test/src/main.rs b/crates/diff-test/src/main.rs index c01753d9..445e68c9 100644 --- a/crates/diff-test/src/main.rs +++ b/crates/diff-test/src/main.rs @@ -488,6 +488,10 @@ fn pre_diff_element_massaging_handlers<'a>( el.remove_attribute("data-flaw"); Ok(()) }), + element!("*.page-not-created", |el| { + el.remove_attribute("class"); + Ok(()) + }), // remove ids from notecards, example-headers, code-examples element!("div.notecard, div.example-header, div.code-example", |el| { el.remove_attribute("id"); @@ -734,15 +738,13 @@ fn main() -> Result<(), anyhow::Error> { .as_ref() .map(|(l, r)| (l.as_str(), r.as_str())) .unwrap_or((left, right)); - let broken_link = r#" class="page-not-created" title="This is a link to an unwritten page""#; - let left = left.replace(broken_link, ""); if left == right { println!("only broken links differ"); same.fetch_add(1, Relaxed); return None; } if arg.inline { - println!("{}", diff_words(&left, right)); + println!("{}", diff_words(left, right)); } Some((k.clone(), format!( r#"
  • {k}
    {}
    {}
  • "#, diff --git a/crates/rari-doc/src/helpers/css_info.rs b/crates/rari-doc/src/helpers/css_info.rs index 37cfd792..3d5b0226 100644 --- a/crates/rari-doc/src/helpers/css_info.rs +++ b/crates/rari-doc/src/helpers/css_info.rs @@ -338,7 +338,7 @@ pub fn css_inital(locale: Locale) -> Result { ) } -fn write_missing(out: &mut String, locale: Locale) -> Result<(), DocError> { +pub fn write_missing(out: &mut String, locale: Locale) -> Result<(), DocError> { let missing = l10n_json_data("CSS", "missing", locale)?; Ok(write!(out, "{missing}")?) } diff --git a/crates/rari-doc/src/templ/render.rs b/crates/rari-doc/src/templ/render.rs index 24ea2004..a3307ac1 100644 --- a/crates/rari-doc/src/templ/render.rs +++ b/crates/rari-doc/src/templ/render.rs @@ -124,9 +124,7 @@ pub(crate) fn decode_ref(input: &str, templs: &[String]) -> Result Result Result<(), DocError> { let env = RariEnv { diff --git a/crates/rari-doc/src/templ/templs/cssinfo.rs b/crates/rari-doc/src/templ/templs/cssinfo.rs index 8148be3e..e1801d53 100644 --- a/crates/rari-doc/src/templ/templs/cssinfo.rs +++ b/crates/rari-doc/src/templ/templs/cssinfo.rs @@ -1,12 +1,11 @@ use std::fmt::Write; use rari_templ_func::rari_f; -use rari_utils::concat_strs; use serde_json::Value; use crate::error::DocError; use crate::helpers::css_info::{ - css_info_properties, get_css_l10n_for_locale, mdn_data_files, write_computed_output, + css_info_properties, mdn_data_files, write_computed_output, write_missing, }; #[rari_f] @@ -32,15 +31,12 @@ pub fn cssinfo() -> Result { }; let props = css_info_properties(at_rule, env.locale, css_info_data)?; + let mut out = String::new(); + if props.is_empty() { - return Ok(concat_strs!( - "", - get_css_l10n_for_locale("missing", env.locale), - "" - )); + write_missing(&mut out, env.locale)?; + return Ok(out); } - - let mut out = String::new(); out.push_str(r#""#); for (name, label) in props { write!(&mut out, r#"
    {label}"#)?; diff --git a/crates/rari-doc/src/templ/templs/embeds/livesample.rs b/crates/rari-doc/src/templ/templs/embeds/livesample.rs index 19fc5753..a2246ef0 100644 --- a/crates/rari-doc/src/templ/templs/embeds/livesample.rs +++ b/crates/rari-doc/src/templ/templs/embeds/livesample.rs @@ -41,9 +41,6 @@ pub fn live_sample( } } } - if let Some(allowed_features) = allowed_features { - write!(&mut out, r#"allow="{}" "#, allowed_features)?; - } write!( &mut out, r#"src="{}{}{}runner.html?id={}" "#, @@ -52,6 +49,9 @@ pub fn live_sample( if env.url.ends_with('/') { "" } else { "/" }, id )?; + if let Some(allowed_features) = allowed_features { + write!(&mut out, r#"allow="{}" "#, allowed_features)?; + } out.push_str(r#"sandbox="allow-same-origin allow-scripts" "#); out.push_str(r#"loading="lazy">"#); Ok(out)