From 5affa30e8ad8b5c6ce31240ecd271fd4cccab219 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 5 May 2019 21:47:15 -0700 Subject: Asciidoc writer: use proper smart quotes with asciidoctor. Asciidoctor has a different format for smart quotes. Closes #5487. --- src/Text/Pandoc/Writers/AsciiDoc.hs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/Text/Pandoc') diff --git a/src/Text/Pandoc/Writers/AsciiDoc.hs b/src/Text/Pandoc/Writers/AsciiDoc.hs index 472fb6a91..47738e69d 100644 --- a/src/Text/Pandoc/Writers/AsciiDoc.hs +++ b/src/Text/Pandoc/Writers/AsciiDoc.hs @@ -425,10 +425,16 @@ inlineToAsciiDoc opts (Subscript lst) = do contents <- inlineListToAsciiDoc opts lst return $ "~" <> contents <> "~" inlineToAsciiDoc opts (SmallCaps lst) = inlineListToAsciiDoc opts lst -inlineToAsciiDoc opts (Quoted SingleQuote lst) = - inlineListToAsciiDoc opts (Str "`" : lst ++ [Str "'"]) -inlineToAsciiDoc opts (Quoted DoubleQuote lst) = - inlineListToAsciiDoc opts (Str "``" : lst ++ [Str "''"]) +inlineToAsciiDoc opts (Quoted qt lst) = do + isAsciidoctor <- gets asciidoctorVariant + inlineListToAsciiDoc opts $ + case qt of + SingleQuote + | isAsciidoctor -> [Str "'`"] ++ lst ++ [Str "`'"] + | otherwise -> [Str "`"] ++ lst ++ [Str "'"] + DoubleQuote + | isAsciidoctor -> [Str "\"`"] ++ lst ++ [Str "`\""] + | otherwise -> [Str "``"] ++ lst ++ [Str "''"] inlineToAsciiDoc _ (Code _ str) = return $ text "`" <> text (escapeStringUsing (backslashEscapes "`") str) <> "`" inlineToAsciiDoc _ (Str str) = return $ text $ escapeString str -- cgit v1.2.3