@@ -30,8 +30,6 @@ Conversion of mediawiki text to 'Pandoc' document.
33−_ support internal links http://www.mediawiki.org/wiki/Help:Links
34−_ support external links (partially implemented)
35_ support images http://www.mediawiki.org/wiki/Help:Images
33_ support images http://www.mediawiki.org/wiki/Help:Images
36_ support tables http://www.mediawiki.org/wiki/Help:Tables
34_ support tables http://www.mediawiki.org/wiki/Help:Tables
37- footnotes?
35- footnotes?
@@ -51,7 +49,7 @@ import Text.Pandoc.Shared ( stripTrailingNewlines, safeRead )
51import Data.Monoid (mconcat, mempty)
49import Data.Monoid (mconcat, mempty)
52import Control.Applicative ((<$>), (<*), (*>), (<$))
50import Control.Applicative ((<$>), (<*), (*>), (<$))
53import Control.Monad
51import Control.Monad
54−import Data.List (intersperse)
52+import Data.List (intersperse, intercalate )
55import Text.HTML.TagSoup
53import Text.HTML.TagSoup
56import Data.Sequence (viewl, ViewL(..), (<|))
54import Data.Sequence (viewl, ViewL(..), (<|))
@@ -379,6 +377,8 @@ endline = () <$ try (newline <*
379internalLink :: MWParser Inlines
377internalLink :: MWParser Inlines
380internalLink = try $ do
378internalLink = try $ do
381 string "[["
379 string "[["
380+ let addUnderscores x = let (pref,suff) = break (=='#') x
381+ in pref ++ intercalate "_" (words suff)
382 pagename <- unwords . words <$> many (noneOf "|]")
382 pagename <- unwords . words <$> many (noneOf "|]")
383 label <- option (B.text pagename) $ char '|' *>
383 label <- option (B.text pagename) $ char '|' *>
384 ( (mconcat <$> many1 (notFollowedBy (char ']') *> inline))
384 ( (mconcat <$> many1 (notFollowedBy (char ']') *> inline))
@@ -387,7 +387,7 @@ internalLink = try $ do
387 <|> (return $ B.text $ drop 1 $ dropWhile (/=':') pagename) )
387 <|> (return $ B.text $ drop 1 $ dropWhile (/=':') pagename) )
388 string "]]"
388 string "]]"
389 linktrail <- B.text <$> many (char '\'' <|> letter)
389 linktrail <- B.text <$> many (char '\'' <|> letter)
390− return $ B.link pagename "wikilink" (label <> linktrail)
390+ return $ B.link (addUnderscores pagename) "wikilink" (label <> linktrail)
392externalLink :: MWParser Inlines
392externalLink :: MWParser Inlines
393externalLink = try $ do
393externalLink = try $ do