diff options
author | Sebastian Wiesner <sebastian@swsnr.de> | 2019-03-30 19:10:06 +0100 |
---|---|---|
committer | Sebastian Wiesner <sebastian@swsnr.de> | 2019-03-30 19:10:06 +0100 |
commit | d75218d57d89b3d7352d1ace353f2225dca447bd (patch) | |
tree | 6463b3bc3cb4160867a00952210b33be10ef40a0 | |
parent | f41dfc6a1c3753f59d2f099b1cdbfe491c380eb3 (diff) |
Render strike through text
Closes GH-71
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | sample/common-mark.md | 2 | ||||
-rw-r--r-- | src/lib.rs | 7 | ||||
-rw-r--r-- | src/main.rs | 1 | ||||
-rw-r--r-- | tests/formatting.rs | 1 | ||||
-rw-r--r-- | tests/formatting/inline_formatting.expected.html | 3 | ||||
-rw-r--r-- | tests/formatting/inline_formatting.md | 2 |
7 files changed, 14 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c9f453f..afdae0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,11 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html ## [Unreleased] ### Added -- Render task lists nicely (see [GH-72]) +- Render task lists nicely (see [GH-72]). +- Render strike-through text (see [GH-71]). [GH-72]: https://github.com/lunaryorn/mdcat/issues/72 +[GH-71]: https://github.com/lunaryorn/mdcat/issues/71 ## [0.12.1] – 2018-12-24 ### Fixed diff --git a/sample/common-mark.md b/sample/common-mark.md index 132f049..9d26171 100644 --- a/sample/common-mark.md +++ b/sample/common-mark.md @@ -2,7 +2,7 @@ ## Basic inline formatting -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam **nonumy +Lorem ~~ipsum dolor sit~~ amet, consetetur sadipscing elitr, sed diam **nonumy eirmod tempor invidunt** ut labore et *dolore magna aliquyam erat*, sed diam voluptua. `At vero eos et` accusam et @@ -589,7 +589,10 @@ fn start_tag<'io, 'c, 'l, W: Write>( } FootnoteDefinition(_) => panic!("mdcat does not support footnotes"), Table(_) | TableHead | TableRow | TableCell => panic!("mdcat does not support tables"), - Strikethrough => panic!("mdcat does not support strikethrough"), + Strikethrough => { + let style = ctx.style.current.strikethrough(); + ctx.set_style(style) + } Emphasis => ctx.enable_emphasis(), Strong => { let style = ctx.style.current.bold(); @@ -709,7 +712,7 @@ fn end_tag<'io, 'c, 'l, W: Write>( ctx.end_inline_text_with_margin()? } FootnoteDefinition(_) | Table(_) | TableHead | TableRow | TableCell => {} - Strikethrough => panic!("mdcat does not support strikethrough"), + Strikethrough => ctx.drop_style(), Emphasis => { ctx.drop_style(); ctx.style.emphasis_level -= 1; diff --git a/src/main.rs b/src/main.rs index 582cf1f..6d306b3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -60,6 +60,7 @@ fn process_arguments(size: TerminalSize, args: Arguments) -> Result<(), Box<dyn let (base_dir, input) = read_input(&args.filename)?; let mut options = Options::empty(); options.insert(Options::ENABLE_TASKLISTS); + options.insert(Options::ENABLE_STRIKETHROUGH); let parser = Parser::new_ext(&input, options); if args.dump_events { diff --git a/tests/formatting.rs b/tests/formatting.rs index 9b35a82..84f9dd2 100644 --- a/tests/formatting.rs +++ b/tests/formatting.rs @@ -45,6 +45,7 @@ fn format_ansi_to_html(markdown: &str) -> String { let wd = std::env::current_dir().expect("No working directory"); let mut options = Options::empty(); options.insert(Options::ENABLE_TASKLISTS); + options.insert(Options::ENABLE_STRIKETHROUGH); let parser = Parser::new_ext(markdown, options); mdcat::push_tty( &mut child.stdin.unwrap(), diff --git a/tests/formatting/inline_formatting.expected.html b/tests/formatting/inline_formatting.expected.html index ab7897d..be6ebf8 100644 --- a/tests/formatting/inline_formatting.expected.html +++ b/tests/formatting/inline_formatting.expected.html @@ -12,12 +12,13 @@ .inv_background { background-color: #AAAAAA; } .ansi1 { font-weight: bold; } .ansi3 { font-style: italic; } +.ansi9 { text-decoration: line-through; } .ansi33 { color: #aa5500; } </style> </head> <body class="body_foreground body_background" style="font-size: normal;" > <pre class="ansi2html-content"> -<span id="line-0">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam <span class="ansi1">nonumy</span></span> +<span id="line-0">Lorem <span class="ansi9">ipsum dolor sit amet</span>, consetetur sadipscing elitr, sed diam <span class="ansi1">nonumy</span></span> <span id="line-1"><span class="ansi1">eirmod tempor invidunt</span> ut labore et <span class="ansi3">dolore magna aliquyam erat</span>, sed diam</span> <span id="line-2">voluptua. <span class="ansi33">At vero eos et</span> accusam et</span> <span id="line-3"></span> diff --git a/tests/formatting/inline_formatting.md b/tests/formatting/inline_formatting.md index 06e6667..0ae059b 100644 --- a/tests/formatting/inline_formatting.md +++ b/tests/formatting/inline_formatting.md @@ -1,3 +1,3 @@ -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam **nonumy +Lorem ~~ipsum dolor sit amet~~, consetetur sadipscing elitr, sed diam **nonumy eirmod tempor invidunt** ut labore et *dolore magna aliquyam erat*, sed diam voluptua. `At vero eos et` accusam et |