pub fn render_document(ast: &[Element], config: &RenderConfig<'_>) -> StringExpand description
Render a document to semantic HTML
ยงArguments
ast- The parsed AST elementsconfig- Render configuration
Examples found in repository?
examples/render.rs (line 27)
6fn main() {
7 let input_content = fs::read_to_string("ToParse.txt").expect("ToParse.txt file not found");
8 let document_len = input_content.len();
9
10 println!("Input ({} bytes):\n{}\n", document_len, "=".repeat(50));
11
12 // Parse
13 let parse_start = Instant::now();
14 let ast = parse_document(&input_content);
15 let parse_duration = parse_start.elapsed();
16 println!("Parsed {} elements in {:?}", ast.len(), parse_duration);
17
18 // Render
19 let render_start = Instant::now();
20 let config = RenderConfig {
21 edit_url: Some("/edit/TestDocument"),
22 file_base_url: Some("https://cdn.example.com/"),
23 document_base_url: Some("/Document/"),
24 category_base_url: Some("/Category/"),
25 user_base_url: Some("/User/"),
26 };
27 let html = render_document(&ast, &config);
28 let render_duration = render_start.elapsed();
29 println!("Rendered {} bytes in {:?}", html.len(), render_duration);
30
31 // Save
32 fs::write("RenderResult.html", &html).ok();
33 println!("\nResult saved to RenderResult.html");
34
35 // Performance
36 let total_duration = parse_duration + render_duration;
37 println!(
38 "Total: {:?} ({:.2} KB/s)",
39 total_duration,
40 document_len as f64 / 1024.0 / total_duration.as_secs_f64()
41 );
42}