@@ -1,3 +1,4 @@
1+{-# LANGUAGE FlexibleContexts #-}
2 Copyright (C) 2017 Alexander Krotov <ilabdsf@gmail.com>
3 Copyright (C) 2017 Alexander Krotov <ilabdsf@gmail.com>
@@ -100,6 +101,9 @@ parseBlocks = do
100-- utility functions
101-- utility functions
104+eol :: Stream s m Char => ParserT s st m ()
105+eol = void newline <|> eof
103nested :: PandocMonad m => MuseParser m a -> MuseParser m a
107nested :: PandocMonad m => MuseParser m a -> MuseParser m a
104nested p = do
108nested p = do
105 nestlevel <- stateMaxNestingLevel <$> getState
109 nestlevel <- stateMaxNestingLevel <$> getState
@@ -195,7 +199,7 @@ comment = try $ do
197 many $ noneOf "\n"
201 many $ noneOf "\n"
198− void newline <|> eof
202+ eol
199 return mempty
203 return mempty
201separator :: PandocMonad m => MuseParser m (F Blocks)
205separator :: PandocMonad m => MuseParser m (F Blocks)
@@ -203,7 +207,7 @@ separator = try $ do
203 string "----"
207 string "----"
204 many $ char '-'
208 many $ char '-'
205 many spaceChar
209 many spaceChar
206− void newline <|> eof
210+ eol
207 return $ return B.horizontalRule
211 return $ return B.horizontalRule
209header :: PandocMonad m => MuseParser m (F Blocks)
213header :: PandocMonad m => MuseParser m (F Blocks)
@@ -214,7 +218,7 @@ header = try $ do
214 level <- liftM length $ many1 $ char '*'
218 level <- liftM length $ many1 $ char '*'
215 guard $ level <= 5
219 guard $ level <= 5
216 spaceChar
220 spaceChar
217− content <- trimInlinesF . mconcat <$> manyTill inline newline
221+ content <- trimInlinesF . mconcat <$> manyTill inline eol
218 attr <- registerHeader ("", [], []) (runF content defaultParserState)
222 attr <- registerHeader ("", [], []) (runF content defaultParserState)
219 return $ B.headerWith attr level <$> content
223 return $ B.headerWith attr level <$> content
@@ -464,10 +468,10 @@ museAppendElement tbl element =
465tableCell :: PandocMonad m => MuseParser m (F Blocks)
469tableCell :: PandocMonad m => MuseParser m (F Blocks)
466tableCell = try $ liftM B.plain . trimInlinesF . mconcat <$> manyTill inline (lookAhead cellEnd)
470tableCell = try $ liftM B.plain . trimInlinesF . mconcat <$> manyTill inline (lookAhead cellEnd)
467− where cellEnd = try $ void (many1 spaceChar >> char '|') <|> void newline <|> eof
471+ where cellEnd = try $ void (many1 spaceChar >> char '|') <|> eol
469tableElements :: PandocMonad m => MuseParser m [MuseTableElement]
473tableElements :: PandocMonad m => MuseParser m [MuseTableElement]
470−tableElements = tableParseElement `sepEndBy1` (void newline <|> eof)
474+tableElements = tableParseElement `sepEndBy1` eol
472elementsToTable :: [MuseTableElement] -> F MuseTable
476elementsToTable :: [MuseTableElement] -> F MuseTable
473elementsToTable = foldM museAppendElement emptyTable
477elementsToTable = foldM museAppendElement emptyTable