git.iko.soy/typeable/pandoc
on master help sign in
Muse writer: implement Default for WriterState
d0a7dbdAlexander Krotov
src/Text/Pandoc/Writers/Muse.hs+11−8
@@ -47,6 +47,7 @@ import Prelude
47import Control.Monad.Reader
47import Control.Monad.Reader
48import Control.Monad.State.Strict
48import Control.Monad.State.Strict
49import Data.Char (isSpace, isDigit, isAsciiUpper, isAsciiLower)
49import Data.Char (isSpace, isDigit, isAsciiUpper, isAsciiLower)
50+import Data.Default
50import Data.Text (Text)
51import Data.Text (Text)
51import Data.List (intersperse, transpose, isInfixOf)
52import Data.List (intersperse, transpose, isInfixOf)
52import System.FilePath (takeExtension)
53import System.FilePath (takeExtension)
@@ -76,6 +77,11 @@ data WriterState =
76 , stIds :: Set.Set String
77 , stIds :: Set.Set String
77 }
78 }
78
79
80+instance Default WriterState
81+ where def = WriterState { stNotes = []
82+ , stIds = Set.empty
83+ }
84+
79evalMuse :: PandocMonad m => Muse m a -> WriterEnv -> WriterState -> m a
85evalMuse :: PandocMonad m => Muse m a -> WriterEnv -> WriterState -> m a
80evalMuse document env st = evalStateT (runReaderT document env) st
86evalMuse document env st = evalStateT (runReaderT document env) st
81
87
@@ -85,14 +91,11 @@ writeMuse :: PandocMonad m
85 -> Pandoc
91 -> Pandoc
86 -> m Text
92 -> m Text
87writeMuse opts document =
93writeMuse opts document =
88− evalMuse (pandocToMuse document) env st
94+ evalMuse (pandocToMuse document) env def
89− where env = WriterEnv { envOptions = opts
95+ where env = WriterEnv { envOptions = opts
90− , envTopLevel = True
96+ , envTopLevel = True
91− , envInsideBlock = False
97+ , envInsideBlock = False
92− }
93− st = WriterState { stNotes = []
94− , stIds = Set.empty
95− }
98+ }
96
99
97-- | Return Muse representation of document.
100-- | Return Muse representation of document.
98pandocToMuse :: PandocMonad m
101pandocToMuse :: PandocMonad m