git.iko.soy/typeable/pandoc
on master help sign in
Org reader: drop unused field from parser state
729fca3Albert Krewinkel
src/Text/Pandoc/Readers/Org/Blocks.hs+5−6
@@ -69,7 +69,7 @@ blockList = do
69meta :: OrgParser Meta
69meta :: OrgParser Meta
70meta = do
70meta = do
71 st <- getState
71 st <- getState
72− return $ runF (orgStateMeta' st) st
72+ return $ runF (orgStateMeta st) st
73
73
74blocks :: OrgParser (F Blocks)
74blocks :: OrgParser (F Blocks)
75blocks = mconcat <$> manyTill block eof
75blocks = mconcat <$> manyTill block eof
@@ -462,12 +462,11 @@ commentLine = commentLineStart *> anyLine *> pure mempty
462
462
463declarationLine :: OrgParser ()
463declarationLine :: OrgParser ()
464declarationLine = try $ do
464declarationLine = try $ do
465− key <- metaKey
465+ key <- metaKey
466− inlinesF <- metaInlines
466+ value <- metaInlines
467 updateState $ \st ->
467 updateState $ \st ->
468− let meta' = B.setMeta <$> pure key <*> inlinesF <*> pure nullMeta
468+ let meta' = B.setMeta key <$> value <*> pure nullMeta
469− in st { orgStateMeta' = orgStateMeta' st <> meta' }
469+ in st { orgStateMeta = orgStateMeta st <> meta' }
470− return ()
471
470
472metaInlines :: OrgParser (F MetaValue)
471metaInlines :: OrgParser (F MetaValue)
473metaInlines = fmap (MetaInlines . B.toList) <$> inlinesTillNewline
472metaInlines = fmap (MetaInlines . B.toList) <$> inlinesTillNewline
src/Text/Pandoc/Readers/Org/ParserState.hs+3−12
@@ -54,8 +54,7 @@ import Data.Default (Default(..))
54import qualified Data.Map as M
54import qualified Data.Map as M
55import qualified Data.Set as Set
55import qualified Data.Set as Set
56
56
57−import Text.Pandoc.Builder ( Inlines, Blocks, HasMeta(..),
57+import Text.Pandoc.Builder ( Inlines, Blocks, trimInlines )
58− trimInlines )
59import Text.Pandoc.Definition ( Meta(..), nullMeta )
58import Text.Pandoc.Definition ( Meta(..), nullMeta )
60import Text.Pandoc.Options ( ReaderOptions(..) )
59import Text.Pandoc.Options ( ReaderOptions(..) )
61import Text.Pandoc.Parsing ( HasHeaderMap(..)
60import Text.Pandoc.Parsing ( HasHeaderMap(..)
@@ -96,8 +95,7 @@ data OrgParserState = OrgParserState
96 , orgStateLastPreCharPos :: Maybe SourcePos
95 , orgStateLastPreCharPos :: Maybe SourcePos
97 , orgStateLastStrPos :: Maybe SourcePos
96 , orgStateLastStrPos :: Maybe SourcePos
98 , orgStateLinkFormatters :: OrgLinkFormatters
97 , orgStateLinkFormatters :: OrgLinkFormatters
99− , orgStateMeta :: Meta
98+ , orgStateMeta :: F Meta
100− , orgStateMeta' :: F Meta
101 , orgStateNotes' :: OrgNoteTable
99 , orgStateNotes' :: OrgNoteTable
102 , orgStateParserContext :: ParserContext
100 , orgStateParserContext :: ParserContext
103 , orgStateIdentifiers :: Set.Set String
101 , orgStateIdentifiers :: Set.Set String
@@ -112,12 +110,6 @@ instance Default OrgParserLocal where
112instance HasReaderOptions OrgParserState where
110instance HasReaderOptions OrgParserState where
113 extractReaderOptions = orgStateOptions
111 extractReaderOptions = orgStateOptions
114
112
115−instance HasMeta OrgParserState where
116− setMeta field val st =
117− st{ orgStateMeta = setMeta field val $ orgStateMeta st }
118− deleteMeta field st =
119− st{ orgStateMeta = deleteMeta field $ orgStateMeta st }
120−
121instance HasLastStrPosition OrgParserState where
113instance HasLastStrPosition OrgParserState where
122 getLastStrPos = orgStateLastStrPos
114 getLastStrPos = orgStateLastStrPos
123 setLastStrPos pos st = st{ orgStateLastStrPos = Just pos }
115 setLastStrPos pos st = st{ orgStateLastStrPos = Just pos }
@@ -151,8 +143,7 @@ defaultOrgParserState = OrgParserState
151 , orgStateLastPreCharPos = Nothing
143 , orgStateLastPreCharPos = Nothing
152 , orgStateLastStrPos = Nothing
144 , orgStateLastStrPos = Nothing
153 , orgStateLinkFormatters = M.empty
145 , orgStateLinkFormatters = M.empty
154− , orgStateMeta = nullMeta
155− , orgStateMeta' = return nullMeta
146+ , orgStateMeta = return nullMeta
156 , orgStateNotes' = []
147 , orgStateNotes' = []
157 , orgStateParserContext = NullState
148 , orgStateParserContext = NullState
158 , orgStateIdentifiers = Set.empty
149 , orgStateIdentifiers = Set.empty