@@ -36,7 +36,7 @@ Markdown: <http://daringfireball.net/projects/markdown/>
3636module Text.Pandoc.Writers.Markdown (writeMarkdown, writePlain) where
3737import Control.Monad.Reader
3838import Control.Monad.State.Strict
39−import Data.Char (chr, isPunctuation, isSpace, ord)
39+import Data.Char (chr, isPunctuation, isSpace, ord, isAlphaNum)
4040import Data.Default
4141import qualified Data.HashMap.Strict as H
4242import Data.List (find, group, intersperse, sortBy, stripPrefix, transpose)
@@ -286,6 +286,12 @@ escapeString opts (c:cs) =
286286 '>' | isEnabled Ext_all_symbols_escapable opts ->
287287 '\\' : '>' : escapeString opts cs
288288 | otherwise -> ">" ++ escapeString opts cs
289+ '@' | isEnabled Ext_citations opts ->
290+ case cs of
291+ (d:_)
292+ | isAlphaNum d || d == '_'
293+ -> '\\':'@':escapeString opts cs
294+ _ -> '@':escapeString opts cs
289295 _ | c `elem` ['\\','`','*','_','[',']','#'] ->
290296 '\\':c:escapeString opts cs
291297 '|' | isEnabled Ext_pipe_tables opts -> '\\':'|':escapeString opts cs