@@ -93,7 +93,6 @@ module Text.Pandoc.Parsing ( takeWhileP,
93 reportLogMessages,
93 reportLogMessages,
94 ParserState (..),
94 ParserState (..),
95 HasReaderOptions (..),
95 HasReaderOptions (..),
97 HasIdentifierList (..),
96 HasIdentifierList (..),
98 HasMacros (..),
97 HasMacros (..),
99 HasLogMessages (..),
98 HasLogMessages (..),
@@ -1079,7 +1078,6 @@ data ParserState = ParserState
1079 stateMeta' :: F Meta, -- ^ Document metadata
1078 stateMeta' :: F Meta, -- ^ Document metadata
1080 stateCitations :: M.Map String String, -- ^ RST-style citations
1079 stateCitations :: M.Map String String, -- ^ RST-style citations
1081 stateHeaderTable :: [HeaderType], -- ^ Ordered list of header types used
1080 stateHeaderTable :: [HeaderType], -- ^ Ordered list of header types used
1082− stateHeaders :: M.Map Inlines String, -- ^ List of headers and ids (used for implicit ref links)
1083 stateIdentifiers :: Set.Set String, -- ^ Header identifiers used
1081 stateIdentifiers :: Set.Set String, -- ^ Header identifiers used
1084 stateNextExample :: Int, -- ^ Number of next example
1082 stateNextExample :: Int, -- ^ Number of next example
1085 stateExamples :: M.Map String Int, -- ^ Map from example labels to numbers
1083 stateExamples :: M.Map String Int, -- ^ Map from example labels to numbers
@@ -1129,15 +1127,6 @@ instance Monad m => HasQuoteContext ParserState m where
1129 setState newState { stateQuoteContext = oldQuoteContext }
1127 setState newState { stateQuoteContext = oldQuoteContext }
1130 return result
1128 return result
1132−class HasHeaderMap st where
1133− extractHeaderMap :: st -> M.Map Inlines String
1134− updateHeaderMap :: (M.Map Inlines String -> M.Map Inlines String) ->
1137−instance HasHeaderMap ParserState where
1138− extractHeaderMap = stateHeaders
1139− updateHeaderMap f st = st{ stateHeaders = f $ stateHeaders st }
1141class HasIdentifierList st where
1130class HasIdentifierList st where
1142 extractIdentifierList :: st -> Set.Set String
1131 extractIdentifierList :: st -> Set.Set String
1143 updateIdentifierList :: (Set.Set String -> Set.Set String) -> st -> st
1132 updateIdentifierList :: (Set.Set String -> Set.Set String) -> st -> st
@@ -1198,7 +1187,6 @@ defaultParserState =
1198 stateMeta' = return nullMeta,
1187 stateMeta' = return nullMeta,
1199 stateCitations = M.empty,
1188 stateCitations = M.empty,
1200 stateHeaderTable = [],
1189 stateHeaderTable = [],
1201− stateHeaders = M.empty,
1202 stateIdentifiers = Set.empty,
1190 stateIdentifiers = Set.empty,
1203 stateNextExample = 1,
1191 stateNextExample = 1,
1204 stateExamples = M.empty,
1192 stateExamples = M.empty,
@@ -1283,12 +1271,11 @@ type SubstTable = M.Map Key Inlines
1283-- is encountered that duplicates an earlier identifier
1271-- is encountered that duplicates an earlier identifier
1284-- (explicit or automatically generated).
1272-- (explicit or automatically generated).
1285registerHeader :: (Stream s m a, HasReaderOptions st,
1273registerHeader :: (Stream s m a, HasReaderOptions st,
1286− HasHeaderMap st, HasLogMessages st, HasIdentifierList st)
1274+ HasLogMessages st, HasIdentifierList st)
1287 => Attr -> Inlines -> ParserT s st m Attr
1275 => Attr -> Inlines -> ParserT s st m Attr
1288registerHeader (ident,classes,kvs) header' = do
1276registerHeader (ident,classes,kvs) header' = do
1289 ids <- extractIdentifierList <$> getState
1277 ids <- extractIdentifierList <$> getState
1290 exts <- getOption readerExtensions
1278 exts <- getOption readerExtensions
1291− let insert' = M.insertWith (\_new old -> old)
1292 if null ident && Ext_auto_identifiers `extensionEnabled` exts
1279 if null ident && Ext_auto_identifiers `extensionEnabled` exts
1294 let id' = uniqueIdent exts (B.toList header') ids
1281 let id' = uniqueIdent exts (B.toList header') ids
@@ -1297,7 +1284,6 @@ registerHeader (ident,classes,kvs) header' = do
1297 else id'
1284 else id'
1298 updateState $ updateIdentifierList $ Set.insert id'
1285 updateState $ updateIdentifierList $ Set.insert id'
1299 updateState $ updateIdentifierList $ Set.insert id''
1286 updateState $ updateIdentifierList $ Set.insert id''
1300− updateState $ updateHeaderMap $ insert' header' id'
1301 return (id'',classes,kvs)
1287 return (id'',classes,kvs)
1303 unless (null ident) $ do
1289 unless (null ident) $ do
@@ -1305,7 +1291,6 @@ registerHeader (ident,classes,kvs) header' = do
1305 pos <- getPosition
1291 pos <- getPosition
1306 logMessage $ DuplicateIdentifier ident pos
1292 logMessage $ DuplicateIdentifier ident pos
1307 updateState $ updateIdentifierList $ Set.insert ident
1293 updateState $ updateIdentifierList $ Set.insert ident
1308− updateState $ updateHeaderMap $ insert' header' ident
1309 return (ident,classes,kvs)
1294 return (ident,classes,kvs)
1311smartPunctuation :: (HasReaderOptions st, HasLastStrPosition st, HasQuoteContext st m, Stream s m Char)
1296smartPunctuation :: (HasReaderOptions st, HasLastStrPosition st, HasQuoteContext st m, Stream s m Char)