--------------------------------------------------------------------------------
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE LambdaCase   #-}
module Text.Pandoc.Extended
    ( module Text.Pandoc

    , plainToPara
    , newlineToSpace
    ) where


--------------------------------------------------------------------------------
import           Data.Data.Extended (grecT)
import           Text.Pandoc
import           Prelude


--------------------------------------------------------------------------------
plainToPara :: [Block] -> [Block]
plainToPara :: [Block] -> [Block]
plainToPara = (Block -> Block) -> [Block] -> [Block]
forall a b. (a -> b) -> [a] -> [b]
map ((Block -> Block) -> [Block] -> [Block])
-> (Block -> Block) -> [Block] -> [Block]
forall a b. (a -> b) -> a -> b
$ \case
    Plain inlines :: [Inline]
inlines -> [Inline] -> Block
Para [Inline]
inlines
    block :: Block
block         -> Block
block


--------------------------------------------------------------------------------
newlineToSpace :: [Inline] -> [Inline]
newlineToSpace :: [Inline] -> [Inline]
newlineToSpace = (Inline -> Inline) -> [Inline] -> [Inline]
forall a b. (Data a, Data b) => (a -> a) -> b -> b
grecT ((Inline -> Inline) -> [Inline] -> [Inline])
-> (Inline -> Inline) -> [Inline] -> [Inline]
forall a b. (a -> b) -> a -> b
$ \case
    SoftBreak -> Inline
Space
    LineBreak -> Inline
Space
    inline :: Inline
inline    -> Inline
inline