1
0
Jonathan Kelley 4 жил өмнө
parent
commit
cd20d3c168

+ 9 - 20
packages/html-macro/src/parser/statement.rs

@@ -1,13 +1,10 @@
 use crate::parser::{HtmlParser, NodesToPush};
 use quote::quote;
-use syn::{Stmt, Expr, ExprIf};
+use syn::{Expr, ExprIf, Stmt};
 
 impl HtmlParser {
     /// Parse an incoming syn::Stmt node inside a block
-    pub(crate) fn parse_statement(
-        &mut self,
-        stmt: &Stmt,
-    ) {
+    pub(crate) fn parse_statement(&mut self, stmt: &Stmt) {
         // Here we handle a block being a descendant within some html! call.
         //
         // The descendant should implement Into<IterableNodes>
@@ -16,7 +13,7 @@ impl HtmlParser {
         match stmt {
             Stmt::Expr(expr) => {
                 self.parse_expr(stmt, expr);
-            },
+            }
             _ => {
                 self.push_iterable_nodes(NodesToPush::Stmt(stmt));
             }
@@ -24,15 +21,11 @@ impl HtmlParser {
     }
 
     /// Parse an incoming syn::Expr node inside a block
-    pub(crate) fn parse_expr(
-        &mut self,
-        stmt: &Stmt,
-        expr: &Expr
-    ) {
+    pub(crate) fn parse_expr(&mut self, stmt: &Stmt, expr: &Expr) {
         match expr {
             Expr::If(expr_if) => {
                 self.expand_if(stmt, expr_if);
-            },
+            }
             _ => {
                 self.push_iterable_nodes(NodesToPush::Stmt(stmt));
             }
@@ -42,9 +35,9 @@ impl HtmlParser {
     /// Expand an incoming Expr::If block
     /// This enables us to use JSX-style conditions inside of blocks such as
     /// the following example.
-    /// 
+    ///
     /// # Examples
-    /// 
+    ///
     /// ```rust,ignore
     /// html! {
     ///     <div>
@@ -54,16 +47,12 @@ impl HtmlParser {
     ///     </div>
     /// }
     /// ```
-    /// 
+    ///
     /// Traditionally this would be possible as an if statement in rust is an
     /// expression, so the then, and the else block have to return matching types.
     /// Here we identify whether the block is missing the else and fill it in with
     /// a blank VirtualNode::text("")
-    pub(crate) fn expand_if(
-        &mut self,
-        stmt: &Stmt,
-        expr_if: &ExprIf
-    ) {
+    pub(crate) fn expand_if(&mut self, stmt: &Stmt, expr_if: &ExprIf) {
         // Has else branch, we can parse the expression as normal.
         if let Some(_else_branch) = &expr_if.else_branch {
             self.push_iterable_nodes(NodesToPush::Stmt(stmt));

+ 1 - 1
packages/html-macro/src/tag.rs

@@ -120,7 +120,7 @@ fn parse_open_tag(input: &mut ParseStream, open_bracket_span: Span) -> Result<Ta
         attrs,
         open_bracket_span,
         closing_bracket_span,
-        is_self_closing
+        is_self_closing,
     })
 }
 

+ 113 - 10
packages/html-validation/src/valid_tags.rs

@@ -5,16 +5,119 @@ use super::svg_namespace::is_svg_namespace;
 
 lazy_static! {
     static ref VALID_TAGS: HashSet<&'static str> = [
-        "a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big",
-        "blockquote","body","br","button","canvas","caption","cite","code","col","colgroup",
-        "command", "data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed",
-        "fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head",
-        "header","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend",
-        "li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object",
-        "ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt",
-        "ruby","s","samp","script","section","select","small","source","span","strong","style",
-        "sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title",
-        "tr","track","u","ul","var","video","wbr",
+        "a",
+        "abbr",
+        "address",
+        "area",
+        "article",
+        "aside",
+        "audio",
+        "b",
+        "base",
+        "bdi",
+        "bdo",
+        "big",
+        "blockquote",
+        "body",
+        "br",
+        "button",
+        "canvas",
+        "caption",
+        "cite",
+        "code",
+        "col",
+        "colgroup",
+        "command",
+        "data",
+        "datalist",
+        "dd",
+        "del",
+        "details",
+        "dfn",
+        "dialog",
+        "div",
+        "dl",
+        "dt",
+        "em",
+        "embed",
+        "fieldset",
+        "figcaption",
+        "figure",
+        "footer",
+        "form",
+        "h1",
+        "h2",
+        "h3",
+        "h4",
+        "h5",
+        "h6",
+        "head",
+        "header",
+        "hr",
+        "html",
+        "i",
+        "iframe",
+        "img",
+        "input",
+        "ins",
+        "kbd",
+        "keygen",
+        "label",
+        "legend",
+        "li",
+        "link",
+        "main",
+        "map",
+        "mark",
+        "menu",
+        "menuitem",
+        "meta",
+        "meter",
+        "nav",
+        "noscript",
+        "object",
+        "ol",
+        "optgroup",
+        "option",
+        "output",
+        "p",
+        "param",
+        "picture",
+        "pre",
+        "progress",
+        "q",
+        "rp",
+        "rt",
+        "ruby",
+        "s",
+        "samp",
+        "script",
+        "section",
+        "select",
+        "small",
+        "source",
+        "span",
+        "strong",
+        "style",
+        "sub",
+        "summary",
+        "sup",
+        "table",
+        "tbody",
+        "td",
+        "textarea",
+        "tfoot",
+        "th",
+        "thead",
+        "time",
+        "title",
+        "tr",
+        "track",
+        "u",
+        "ul",
+        "var",
+        "video",
+        "wbr",
     ]
     .iter()
     .cloned()

+ 1 - 0
packages/macro/src/lib.rs

@@ -0,0 +1 @@
+

+ 9 - 9
packages/virtual-dom-rs/tests/events.rs

@@ -22,15 +22,15 @@ fn on_input() {
     let text_clone = Rc::clone(&text);
 
     let input = html! {
-     <input
-         // On input we'll set our Rc<RefCell<String>> value to the input elements value
-         oninput=move |event: Event| {
-            let input_elem = event.target().unwrap();
-            let input_elem = input_elem.dyn_into::<HtmlInputElement>().unwrap();
-            *text_clone.borrow_mut() = input_elem.value();
-         }
-         value="End Text"
-     >
+        <input
+            // On input we'll set our Rc<RefCell<String>> value to the input elements value
+            oninput=move |event: Event| {
+                let input_elem = event.target().unwrap();
+                let input_elem = input_elem.dyn_into::<HtmlInputElement>().unwrap();
+                *text_clone.borrow_mut() = input_elem.value();
+            }
+            value="End Text"
+        >
     };
 
     let input_event = InputEvent::new("input").unwrap();

+ 3 - 3
packages/virtual-node/src/lib.rs

@@ -454,19 +454,19 @@ impl From<Vec<VirtualNode>> for IterableNodes {
 
 impl<V: View> From<Vec<V>> for IterableNodes {
     fn from(other: Vec<V>) -> Self {
-      IterableNodes(other.into_iter().map(|it| it.render()).collect())
+        IterableNodes(other.into_iter().map(|it| it.render()).collect())
     }
 }
 
 impl<V: View> From<&Vec<V>> for IterableNodes {
     fn from(other: &Vec<V>) -> Self {
-      IterableNodes(other.iter().map(|it| it.render()).collect())
+        IterableNodes(other.iter().map(|it| it.render()).collect())
     }
 }
 
 impl<V: View> From<&[V]> for IterableNodes {
     fn from(other: &[V]) -> Self {
-      IterableNodes(other.iter().map(|it| it.render()).collect())
+        IterableNodes(other.iter().map(|it| it.render()).collect())
     }
 }