1use {
2 crossterm::style::{
3 Attribute::*,
4 Color::*,
5 },
6 minimad::Compound,
7 termimad::*,
8};
9
10pub fn make_skin(color: bool) -> MadSkin {
11 if color {
12 make_color_skin()
13 } else {
14 make_no_color_skin()
15 }
16}
17
18fn make_color_skin() -> MadSkin {
19 let mut skin = MadSkin::default();
20 skin.set_headers_fg(AnsiValue(178));
21 skin.headers[1].compound_style.remove_attr(Underlined);
22 skin.italic.remove_attr(Italic);
23 skin.bold.set_fg(White);
24 skin.inline_code = CompoundStyle::with_fg(Yellow);
25 skin.italic.set_fg(AnsiValue(204));
26 skin.special_chars.insert(
27 Compound::raw_str("U").code(),
28 StyledChar::from_fg_char(Green, '➚'),
29 );
30 skin.special_chars.insert(
31 Compound::raw_str("D").code(),
32 StyledChar::from_fg_char(Red, '➘'),
33 );
34 skin
35}
36
37fn make_no_color_skin() -> MadSkin {
38 let mut skin = MadSkin::no_style();
39 skin.special_chars
40 .insert(Compound::raw_str("U").code(), StyledChar::nude('➚'));
41 skin.special_chars
42 .insert(Compound::raw_str("D").code(), StyledChar::nude('➘'));
43 skin
44}