aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2012-09-14 10:55:16 -0400
committerJohn MacFarlane <jgm@berkeley.edu>2012-09-14 10:55:16 -0400
commitce509be57a1209367d71a4cd5959f0478a5b2294 (patch)
treee558b1a0146f3f7314377c7c0c7afdc69c198dde /src/Text
parent6e9351bac4f2ed54286d568adeb6454407bbff81 (diff)
downloadpandoc-ce509be57a1209367d71a4cd5959f0478a5b2294.tar.gz
MediaWiki reader: Table improvements, added simple table tests.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Readers/MediaWiki.hs13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/MediaWiki.hs b/src/Text/Pandoc/Readers/MediaWiki.hs
index 85001904c..9f78146f8 100644
--- a/src/Text/Pandoc/Readers/MediaWiki.hs
+++ b/src/Text/Pandoc/Readers/MediaWiki.hs
@@ -171,7 +171,7 @@ table = do
rows' <- many $ try $ rowsep *> tableRow
tableEnd
-- TODO handle cellspecs from styles and aligns...
- let cols = length $ head rows'
+ let cols = length hdr
let (headers,rows) = if hasheader
then (hdr, rows')
else (replicate cols mempty, hdr:rows')
@@ -197,11 +197,12 @@ tableCaption = try $ guardColumnOne *> sym "|+" *> skipMany spaceChar *>
(trimInlines . mconcat <$> (many inline)) <* skipMany blankline
tableRow :: MWParser [Blocks]
-tableRow = try $ many tableCell <* skipMany blankline
+tableRow = try $ many tableCell
tableCell :: MWParser Blocks
tableCell =
- try $ cellsep *> skipMany spaceChar *> (mconcat <$> (many block))
+ try $ cellsep *> skipMany spaceChar *>
+ (mconcat <$> (many $ notFollowedBy (cellsep <|> rowsep <|> tableEnd) *> block))
template :: MWParser Blocks
template = B.rawBlock "mediawiki" <$> doublebrackets
@@ -405,7 +406,9 @@ inlineTag = do
special :: MWParser Inlines
special = B.str <$> count 1 (notFollowedBy' (htmlTag isBlockTag') *>
- notFollowedBy (char '|') *> oneOf specialChars)
+-- notFollowedBy (tableStart <|> tableEnd
+-- <|> cellsep <|> rowsep) *>
+ oneOf specialChars)
inlineHtml :: MWParser Inlines
inlineHtml = B.rawInline "html" . snd <$> htmlTag isInlineTag
@@ -418,8 +421,10 @@ endline = () <$ try (newline <*
notFollowedBy blankline <*
notFollowedBy' hrule <*
notFollowedBy tableStart <*
+ notFollowedBy tableEnd <*
notFollowedBy' template <*
notFollowedBy cellsep <*
+ notFollowedBy rowsep <*
notFollowedBy anyListStart)
image :: MWParser Inlines