loop_newlines/
loop_newlines.rs

1use net_shell::template::TemplateEngine;
2use serde_json::json;
3
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5    println!("=== 测试循环换行符控制 ===");
6    
7    // 测试默认保留换行符
8    let mut engine = TemplateEngine::new();
9    engine.set_variable("items", json!(["apple", "banana", "cherry"]));
10    
11    let template = r#"
12{% for item in items %}
13- {{ item }}
14{% endfor %}"#;
15    
16    let result = engine.render_string(template)?;
17    println!("保留换行符的结果:{}", result);
18    
19    // 测试去除换行符
20    engine.set_preserve_loop_newlines(false);
21    let result = engine.render_string(template)?;
22    println!("去除换行符的结果:{}", result);
23    
24    // 测试更复杂的模板
25    let template2 = r#"
26<ul>
27{% for item in items %}
28    <li>{{ item }}</li>
29{% endfor %}
30</ul>"#;
31    
32    let mut engine2 = TemplateEngine::new();
33    engine2.set_variable("items", json!(["red", "green", "blue"]));
34    
35    let result = engine2.render_string(template2)?;
36    println!("保留换行符的复杂模板:{}", result);
37    
38    engine2.set_preserve_loop_newlines(false);
39    let result = engine2.render_string(template2)?;
40    println!("去除换行符的复杂模板:{}", result);
41    
42    println!("=== 测试完成 ===");
43    Ok(())
44}