diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-11-04 10:35:52 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-11-04 10:35:52 -0700 |
commit | 8e53489cbca3f230eed94294af3810d2447db2af (patch) | |
tree | f0e172cf3775ba48ff0bc7b0fc4a70d07aa19edd | |
parent | d31a04dfb223fc807341a168693628864202b4de (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.hs | 2 | ||||
-rw-r--r-- | test/command/4038.md | 6 |
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~~ +``` |