git.iko.soy/typeable/pandoc
on master help sign in
RST Reader: Warn about skipped directives

move `addWarning` to Parsing.hs, so it can be used by Markdown & RST readers.

commit87e536b43805fc0a9f49c2fc8de9af88a241dc00 authorDaniel Bergey <bergey@alum.mit.edu> dateFri 5 Dec 2014, 21:03 (12 years ago) parent1a130fa
3 files changed+12−7
src/Text/Pandoc/Parsing.hs+8 src/Text/Pandoc/Readers/Markdown.hs−6 src/Text/Pandoc/Readers/RST.hs+4−1
src/Text/Pandoc/Parsing.hs+8
@@ -162,6 +162,7 @@ module Text.Pandoc.Parsing ( anyLine,
162162 setSourceColumn,
163163 setSourceLine,
164164 newPos,
165+ addWarning
165166 )
166167where
167168
@@ -1245,3 +1246,10 @@ applyMacros' target = do
12451246 then do macros <- extractMacros <$> getState
12461247 return $ applyMacros macros target
12471248 else return target
1249+
1250+-- | Append a warning to the log.
1251+addWarning :: Maybe SourcePos -> String -> Parser [Char] ParserState ()
1252+addWarning mbpos msg =
1253+ updateState $ \st -> st{
1254+ stateWarnings = (msg ++ maybe "" (\pos -> " " ++ show pos) mbpos) :
1255+ stateWarnings st }
src/Text/Pandoc/Readers/Markdown.hs−6
@@ -343,12 +343,6 @@ parseMarkdown = do
343343 let Pandoc _ bs = B.doc $ runF blocks st
344344 return $ Pandoc meta bs
345345
346−addWarning :: Maybe SourcePos -> String -> MarkdownParser ()
347−addWarning mbpos msg =
348− updateState $ \st -> st{
349− stateWarnings = (msg ++ maybe "" (\pos -> " " ++ show pos) mbpos) :
350− stateWarnings st }
351−
352346referenceKey :: MarkdownParser (F Blocks)
353347referenceKey = try $ do
354348 pos <- getPosition
src/Text/Pandoc/Readers/RST.hs+4−1
@@ -608,7 +608,10 @@ directive' = do
608608 "" -> block
609609 _ -> parseFromString parseBlocks body'
610610 return $ B.divWith attrs children
611− _ -> return mempty
611+ other -> do
612+ pos <- getPosition
613+ addWarning (Just pos) $ "ignoring unknown directive: " ++ other
614+ return mempty
612615
613616-- TODO:
614617-- - Silently ignores illegal fields