@@ -146,6 +146,8 @@ data WriterState = WriterState { stLinkIds :: M.Map Int (M.Map Int (URL, String)
146 , stMediaIds :: M.Map Int [MediaInfo]
146 , stMediaIds :: M.Map Int [MediaInfo]
147 , stMediaGlobalIds :: M.Map FilePath Int
147 , stMediaGlobalIds :: M.Map FilePath Int
148 , stNoteIds :: M.Map Int [Block]
148 , stNoteIds :: M.Map Int [Block]
149+ -- anchors in the current slide
150+ , stCurSlideAnchors :: M.Map String Int
149 } deriving (Show, Eq)
151 } deriving (Show, Eq)
151instance Default WriterState where
153instance Default WriterState where
@@ -153,6 +155,7 @@ instance Default WriterState where
153 , stMediaIds = mempty
155 , stMediaIds = mempty
154 , stMediaGlobalIds = mempty
156 , stMediaGlobalIds = mempty
155 , stNoteIds = mempty
157 , stNoteIds = mempty
158+ , stCurSlideAnchors = mempty
158type P m = ReaderT WriterEnv (StateT WriterState m)
161type P m = ReaderT WriterEnv (StateT WriterState m)
@@ -606,6 +609,8 @@ blocksToSlide blks = do
606 slideLevel <- asks envSlideLevel
609 slideLevel <- asks envSlideLevel
607 blocksToSlide' slideLevel blks
610 blocksToSlide' slideLevel blks
609makeNoteEntry :: Int -> [Block] -> [Block]
614makeNoteEntry :: Int -> [Block] -> [Block]
610makeNoteEntry n blks =
615makeNoteEntry n blks =
611 let enum = Str (show n ++ ".")
616 let enum = Str (show n ++ ".")
@@ -662,8 +667,11 @@ getMetaSlide = do
662blocksToPresentation :: PandocMonad m => [Block] -> P m Presentation
667blocksToPresentation :: PandocMonad m => [Block] -> P m Presentation
663blocksToPresentation blks = do
668blocksToPresentation blks = do
664 blksLst <- splitBlocks blks
669 blksLst <- splitBlocks blks
665− slides <- mapM blocksToSlide blksLst
670+ slides <- mapM
671+ (\(bs, n) -> local (\st -> st{envCurSlideId = n}) (blocksToSlide bs))
673+ let noteSlidesNum = length blksLst + 1
666− noteSlides <- makeNotesSlides
674+ noteSlides <- local (\st -> st {envCurSlideId = noteSlidesNum}) makeNotesSlides
667 let slides' = slides ++ noteSlides
675 let slides' = slides ++ noteSlides
668 metadataslide <- getMetaSlide
676 metadataslide <- getMetaSlide
669 presSize <- asks envPresentationSize
677 presSize <- asks envPresentationSize