@@ -89,7 +89,7 @@ nested p = do
8989 return res
9090
9191specialChars :: [Char]
92−specialChars = "'[]<=&*{}|"
92+specialChars = "'[]<=&*{}|\""
9393
9494spaceChars :: [Char]
9595spaceChars = " \n\t"
@@ -445,6 +445,7 @@ inline :: MWParser Inlines
445445inline = whitespace
446446 <|> url
447447 <|> str
448+ <|> doubleQuotes
448449 <|> strong
449450 <|> emph
450451 <|> image
@@ -540,7 +541,7 @@ internalLink = try $ do
540541 -- [[Help:Contents|] -> "Contents"
541542 <|> (return $ B.text $ drop 1 $ dropWhile (/=':') pagename) )
542543 sym "]]"
543− linktrail <- B.text <$> many (char '\'' <|> letter)
544+ linktrail <- B.text <$> many letter
544545 let link = B.link (addUnderscores pagename) "wikilink" (label <> linktrail)
545546 if "Category:" `isPrefixOf` pagename
546547 then do
@@ -582,3 +583,10 @@ strong = B.strong <$> nested (inlinesBetween start end)
582583 where start = sym "'''" >> lookAhead nonspaceChar
583584 end = try $ sym "'''"
584585
586+doubleQuotes :: MWParser Inlines
587+doubleQuotes = B.doubleQuoted . trimInlines . mconcat <$> try
588+ ((getState >>= guard . readerSmart . mwOptions) *>
589+ openDoubleQuote *> manyTill inline closeDoubleQuote )
590+ where openDoubleQuote = char '"' <* lookAhead alphaNum
591+ closeDoubleQuote = char '"' <* notFollowedBy alphaNum
592+