1use std::fmt::Write;
2
3use super::{Level, color};
4use crate::Result;
5
6pub fn html<S>(out: &mut S, level: &Level, span: &str, msg: &str) -> Result
7where
8 S: Write + ?Sized,
9{
10 let color = color::code_tag(level);
11 let level = level.as_str().to_uppercase();
12 write!(
13 out,
14 "<font data-mx-color=\"{color}\"><code>{level:>5}</code></font> <code>{span:^12}</code> \
15 <code>{msg}</code><br>"
16 )?;
17
18 Ok(())
19}
20
21pub fn markdown<S>(out: &mut S, level: &Level, span: &str, msg: &str) -> Result
22where
23 S: Write + ?Sized,
24{
25 let level = level.as_str().to_uppercase();
26 writeln!(out, "`{level:>5}` `{span:^12}` `{msg}`")?;
27
28 Ok(())
29}
30
31pub fn markdown_table<S>(out: &mut S, level: &Level, span: &str, msg: &str) -> Result
32where
33 S: Write + ?Sized,
34{
35 let level = level.as_str().to_uppercase();
36 writeln!(out, "| {level:>5} | {span:^12} | {msg} |")?;
37
38 Ok(())
39}
40
41pub fn markdown_table_head<S>(out: &mut S) -> Result
42where
43 S: Write + ?Sized,
44{
45 write!(out, "| level | span | message |\n| ------: | :-----: | :------- |\n")?;
46
47 Ok(())
48}