packages feed

pandoc-lua-engine 0.5.0.1 → 0.5.0.2

raw patch · 2 files changed

+15/−8 lines, 2 filesdep ~citeproc

Dependency ranges changed: citeproc

Files

pandoc-lua-engine.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 name:                pandoc-lua-engine-version:             0.5.0.1+version:             0.5.0.2 build-type:          Simple license:             GPL-2.0-or-later license-file:        COPYING.md@@ -111,7 +111,7 @@   build-depends:       aeson                      , bytestring            >= 0.9     && < 0.13                      , crypton               >= 0.30    && < 1.1-                     , citeproc              >= 0.8     && < 0.12+                     , citeproc              >= 0.8     && < 0.13                      , containers            >= 0.6.0.1 && < 0.9                      , data-default          >= 0.4     && < 0.9                      , doclayout             >= 0.5     && < 0.6
src/Text/Pandoc/Lua/Custom.hs view
@@ -148,12 +148,19 @@ writerField :: Name writerField = "Pandoc Writer function" --- | Runs a Lua action in a continueable environment.-inLua :: MonadIO m => GCManagedState -> LuaE PandocError a -> m a-inLua st = liftIO . withGCManagedState @PandocError st+-- | Runs a Lua action in a continuable environment and transfers the common+-- state after the Lua action has finished.+inLua :: (PandocMonad m, MonadIO m)+  => GCManagedState -> LuaE PandocError a -> m a+inLua st luaAction = do+  let inLua' = liftIO . withGCManagedState @PandocError st+  result <- inLua' luaAction+  cstate <- inLua' (unPandocLua PandocMonad.getCommonState)+  PandocMonad.putCommonState cstate+  return result  -- | Returns the ByteStringReader function-byteStringReader :: MonadIO m => GCManagedState -> Reader m+byteStringReader :: (PandocMonad m, MonadIO m) => GCManagedState -> Reader m byteStringReader st = ByteStringReader $ \ropts input -> inLua st $ do   getfield registryindex readerField   push input@@ -163,12 +170,12 @@     _ -> throwErrorAsException  -- | Returns the TextReader function-textReader :: MonadIO m => GCManagedState -> Reader m+textReader :: (PandocMonad m, MonadIO m) => GCManagedState -> Reader m textReader st = TextReader $ \ropts srcs -> inLua st $ do   let input = toSources srcs   getfield registryindex readerField   push input   push ropts   pcallTrace 2 1 >>= \case-    OK -> forcePeek $ peekPandoc top+    OK -> forcePeek (peekPandoc top)     _ -> throwErrorAsException