From ef102fcae932b2e1712c6ef398c3437283c0502d Mon Sep 17 00:00:00 2001 From: Josh Date: Mon, 6 Jan 2025 12:58:56 -0600 Subject: [PATCH] fix --- crates/djls-template-ast/src/parser.rs | 40 ++++++++++++-------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/crates/djls-template-ast/src/parser.rs b/crates/djls-template-ast/src/parser.rs index ef98e9d..7928861 100644 --- a/crates/djls-template-ast/src/parser.rs +++ b/crates/djls-template-ast/src/parser.rs @@ -228,31 +228,27 @@ impl Parser { let token = self.peek_previous()?; let start = token.start().unwrap_or(0); - let mut bits = Vec::new(); + let parts: Vec<&str> = content.split('|').collect(); + let bits: Vec = parts[0].split('.').map(|s| s.trim().to_string()).collect(); let mut filters = Vec::new(); - let parts: Vec<&str> = content.split('|').map(|s| s.trim()).collect(); - if !parts.is_empty() { - bits = parts[0].split('.').map(|s| s.trim().to_string()).collect(); + for filter_part in parts.iter().skip(1) { + let filter_parts: Vec<&str> = filter_part.split(':').collect(); + let name = filter_parts[0].trim(); + let args = if filter_parts.len() > 1 { + filter_parts[1] + .split(',') + .map(|s| s.trim().to_string()) + .collect() + } else { + Vec::new() + }; - for filter_part in parts.iter().skip(1) { - let filter_parts: Vec<&str> = filter_part.split(':').collect(); - let filter_name = filter_parts[0].trim(); - let filter_args = if filter_parts.len() > 1 { - filter_parts[1] - .split(',') - .map(|s| s.trim().to_string()) - .collect() - } else { - Vec::new() - }; - - filters.push(DjangoFilter { - name: filter_name.to_string(), - args: filter_args, - span: Span::new(start + 4, content.len() as u32), - }); - } + filters.push(DjangoFilter { + name: name.to_string(), + args, + span: Span::new(start + 4, content.len() as u32), + }); } Ok(Node::Variable {