@@ -49,22 +49,37 @@ fn print_markdown(md: &str) {
4949
5050 let mut skin = MadSkin :: default ( ) ;
5151
52+ let color = |s : & str | {
53+ let rgb = s
54+ . trim_start_matches ( '#' )
55+ . as_bytes ( )
56+ . chunks ( 1 )
57+ . map ( |char| u8:: from_str_radix ( std:: str:: from_utf8 ( char) . unwrap ( ) , 16 ) . unwrap ( ) * 17 )
58+ . collect :: < Vec < u8 > > ( ) ;
59+ return Color :: Rgb {
60+ r : rgb[ 0 ] ,
61+ g : rgb[ 1 ] ,
62+ b : rgb[ 2 ] ,
63+ } ;
64+ } ;
65+
5266 // Configure header level 1
53- skin. headers . get_mut ( 0 ) . unwrap ( ) . set_fg ( Color :: Yellow ) ;
67+ skin. headers . get_mut ( 0 ) . unwrap ( ) . set_fg ( color ( "#D33" ) ) ;
5468
5569 // Configure header level 2
5670 let h2 = skin. headers . get_mut ( 1 ) . unwrap ( ) ;
57- h2. set_fg ( Color :: Yellow ) ;
71+ h2. set_fg ( color ( "#D63" ) ) ;
5872 h2. compound_style . add_attr ( Attribute :: Bold ) ;
59- h2. compound_style . remove_attr ( Attribute :: Underlined ) ;
73+ h2. compound_style . style_char ( '#' ) ;
6074
6175 // Configure header level 3
62- skin. headers . get_mut ( 2 ) . unwrap ( ) . set_fg ( Color :: White ) ;
76+ skin. headers . get_mut ( 2 ) . unwrap ( ) . set_fg ( color ( "#DD8" ) ) ;
6377
6478 // Set the other text styles
65- skin. bold . set_fg ( Color :: White ) ;
66- skin. italic . set_fg ( Color :: White ) ;
67- skin. inline_code . set_fg ( Color :: Green ) ;
79+ skin. bold . set_fg ( color ( "#FFF" ) ) ;
80+ skin. italic . set_fg ( color ( "#FFF" ) ) ;
81+ skin. inline_code . set_fgbg ( color ( "#DDF" ) , color ( "#002" ) ) ;
82+ skin. code_block . set_fgbg ( color ( "#DDF" ) , color ( "#002" ) ) ;
6883
6984 // Ensure minimum dimensions for the area
7085 let mut area = Area :: full_screen ( ) ;
0 commit comments