diff options
author | Sebastian Wiesner <sebastian@swsnr.de> | 2019-03-30 17:01:43 +0100 |
---|---|---|
committer | Sebastian Wiesner <sebastian@swsnr.de> | 2019-03-30 17:01:43 +0100 |
commit | f41dfc6a1c3753f59d2f099b1cdbfe491c380eb3 (patch) | |
tree | c9d2467f465647e98ab829a1e9a3b70117f71a03 /src | |
parent | 53fb49e2d3a08edd524b581f278f63456ec1bd55 (diff) |
Render task lists nicely
Closes GH-72
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 6 | ||||
-rw-r--r-- | src/main.rs | 6 |
2 files changed, 9 insertions, 3 deletions
@@ -485,7 +485,11 @@ fn write_event<'io, 'c, 'l, W: Write>( } Ok(ctx) } - TaskListMarker(_) => panic!("mdcat does not support task lists"), + TaskListMarker(checked) => { + let marker = if checked { "\u{2611} " } else { "\u{2610} " }; + ctx.write_highlighted(CowStr::Borrowed(marker))?; + Ok(ctx) + } Start(tag) => start_tag(ctx, tag), End(tag) => end_tag(ctx, tag), Html(content) => { diff --git a/src/main.rs b/src/main.rs index e16307e..582cf1f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,7 +19,7 @@ use mdcat; use clap::value_t; -use pulldown_cmark::Parser; +use pulldown_cmark::{Options, Parser}; use std::error::Error; use std::fs::File; use std::io::prelude::*; @@ -58,7 +58,9 @@ fn process_arguments(size: TerminalSize, args: Arguments) -> Result<(), Box<dyn Ok(()) } else { let (base_dir, input) = read_input(&args.filename)?; - let parser = Parser::new(&input); + let mut options = Options::empty(); + options.insert(Options::ENABLE_TASKLISTS); + let parser = Parser::new_ext(&input, options); if args.dump_events { mdcat::dump_events(&mut std::io::stdout(), parser)?; |