@@ -862,24 +862,29 @@ macro = try $ do
862862
863863smart :: PandocMonad m => OrgParser m (F Inlines)
864864smart = do
865− guardEnabled Ext_smart
866865 doubleQuoted <|> singleQuoted <|>
867866 choice (map (return <$>) [orgApostrophe, orgDash, orgEllipses])
868867 where
869868 orgDash = do
870− guard =<< getExportSetting exportSpecialStrings
869+ guardOrSmartEnabled =<< getExportSetting exportSpecialStrings
871870 dash <* updatePositions '-'
872871 orgEllipses = do
873− guard =<< getExportSetting exportSpecialStrings
872+ guardOrSmartEnabled =<< getExportSetting exportSpecialStrings
874873 ellipses <* updatePositions '.'
875− orgApostrophe =
876− (char '\'' <|> char '\8217') <* updateLastPreCharPos
877− <* updateLastForbiddenCharPos
878− *> return (B.str "\x2019")
874+ orgApostrophe = do
875+ guardEnabled Ext_smart
876+ (char '\'' <|> char '\8217') <* updateLastPreCharPos
877+ <* updateLastForbiddenCharPos
878+ return (B.str "\x2019")
879+
880+guardOrSmartEnabled :: PandocMonad m => Bool -> OrgParser m ()
881+guardOrSmartEnabled b = do
882+ smartExtension <- extensionEnabled Ext_smart <$> getOption readerExtensions
883+ guard (b || smartExtension)
879884
880885singleQuoted :: PandocMonad m => OrgParser m (F Inlines)
881886singleQuoted = try $ do
882− guard =<< getExportSetting exportSmartQuotes
887+ guardOrSmartEnabled =<< getExportSetting exportSmartQuotes
883888 singleQuoteStart
884889 updatePositions '\''
885890 withQuoteContext InSingleQuote $
@@ -891,7 +896,7 @@ singleQuoted = try $ do
891896-- in the same paragraph.
892897doubleQuoted :: PandocMonad m => OrgParser m (F Inlines)
893898doubleQuoted = try $ do
894− guard =<< getExportSetting exportSmartQuotes
899+ guardOrSmartEnabled =<< getExportSetting exportSmartQuotes
895900 doubleQuoteStart
896901 updatePositions '"'
897902 contents <- mconcat <$> many (try $ notFollowedBy doubleQuoteEnd >> inline)