@@ -66,7 +66,8 @@ import Text.Pandoc.Logging
6666import Text.Pandoc.Parsing (HasHeaderMap (..), HasIdentifierList (..),
6767 HasLogMessages (..),
6868 HasLastStrPosition (..), HasQuoteContext (..),
69− HasReaderOptions (..), ParserContext (..),
69+ HasReaderOptions (..), HasIncludeFiles (..),
70+ ParserContext (..),
7071 QuoteContext (..), SourcePos, Future,
7172 askF, asksF, returnF, runF, trimInlinesF)
7273
@@ -106,6 +107,7 @@ data OrgParserState = OrgParserState
106107 , orgStateExportSettings :: ExportSettings
107108 , orgStateHeaderMap :: M.Map Inlines String
108109 , orgStateIdentifiers :: Set.Set String
110+ , orgStateIncludeFiles :: [String]
109111 , orgStateLastForbiddenCharPos :: Maybe SourcePos
110112 , orgStateLastPreCharPos :: Maybe SourcePos
111113 , orgStateLastStrPos :: Maybe SourcePos
@@ -148,6 +150,12 @@ instance HasLogMessages OrgParserState where
148150 addLogMessage msg st = st{ orgLogMessages = msg : orgLogMessages st }
149151 getLogMessages st = reverse $ orgLogMessages st
150152
153+instance HasIncludeFiles OrgParserState where
154+ getIncludeFiles = orgStateIncludeFiles
155+ addIncludeFile f st = st { orgStateIncludeFiles = f : orgStateIncludeFiles st }
156+ dropLatestIncludeFile st =
157+ st { orgStateIncludeFiles = drop 1 $ orgStateIncludeFiles st }
158+
151159instance Default OrgParserState where
152160 def = defaultOrgParserState
153161
@@ -159,6 +167,7 @@ defaultOrgParserState = OrgParserState
159167 , orgStateExportSettings = def
160168 , orgStateHeaderMap = M.empty
161169 , orgStateIdentifiers = Set.empty
170+ , orgStateIncludeFiles = []
162171 , orgStateLastForbiddenCharPos = Nothing
163172 , orgStateLastPreCharPos = Nothing
164173 , orgStateLastStrPos = Nothing