summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Wiesner <sebastian@swsnr.de>2019-03-30 19:10:06 +0100
committerSebastian Wiesner <sebastian@swsnr.de>2019-03-30 19:10:06 +0100
commitd75218d57d89b3d7352d1ace353f2225dca447bd (patch)
tree6463b3bc3cb4160867a00952210b33be10ef40a0
parentf41dfc6a1c3753f59d2f099b1cdbfe491c380eb3 (diff)
Render strike through text
Closes GH-71
-rw-r--r--CHANGELOG.md4
-rw-r--r--sample/common-mark.md2
-rw-r--r--src/lib.rs7
-rw-r--r--src/main.rs1
-rw-r--r--tests/formatting.rs1
-rw-r--r--tests/formatting/inline_formatting.expected.html3
-rw-r--r--tests/formatting/inline_formatting.md2
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
diff --git a/src/lib.rs b/src/lib.rs
index 7d26707..d860b86 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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