Skip to main content

render_document

Function render_document 

Source
pub fn render_document(ast: &[Element], config: &RenderConfig<'_>) -> String
Expand description

Render a document to semantic HTML

ยงArguments

  • ast - The parsed AST elements
  • config - 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}