summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-11-04 10:35:52 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2017-11-04 10:35:52 -0700
commit8e53489cbca3f230eed94294af3810d2447db2af (patch)
treef0e172cf3775ba48ff0bc7b0fc4a70d07aa19edd
parentd31a04dfb223fc807341a168693628864202b4de (diff)
Fix strikethrough in gfm writer.
Previously we got a crash, because we were trying to print a native cmark STRIKETHROUGH node, and the commonmark writer in cmark-github doesn't support this. Work around this by using a raw node to add the strikethrough delimiters. Closes #4038.
-rw-r--r--src/Text/Pandoc/Writers/CommonMark.hs2
-rw-r--r--test/command/4038.md6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/CommonMark.hs b/src/Text/Pandoc/Writers/CommonMark.hs
index e6d297291..8677dd840 100644
--- a/src/Text/Pandoc/Writers/CommonMark.hs
+++ b/src/Text/Pandoc/Writers/CommonMark.hs
@@ -242,7 +242,7 @@ inlineToNodes opts (Emph xs) = (node EMPH (inlinesToNodes opts xs) :)
inlineToNodes opts (Strong xs) = (node STRONG (inlinesToNodes opts xs) :)
inlineToNodes opts (Strikeout xs) =
if isEnabled Ext_strikeout opts
- then (node STRIKETHROUGH (inlinesToNodes opts xs) :)
+ then (node (CUSTOM_INLINE "~~" "~~") (inlinesToNodes opts xs) :)
else ((node (HTML_INLINE (T.pack "<s>")) [] : inlinesToNodes opts xs ++
[node (HTML_INLINE (T.pack "</s>")) []]) ++ )
inlineToNodes opts (Superscript xs) =
diff --git a/test/command/4038.md b/test/command/4038.md
new file mode 100644
index 000000000..121760540
--- /dev/null
+++ b/test/command/4038.md
@@ -0,0 +1,6 @@
+```
+% pandoc -f gfm -t gfm
+# ~~Header~~
+^D
+# ~~Header~~
+```