{-# LANGUAGE TemplateHaskell #-} module Slides.Common ( Eagerness(..), Presentation(..), Slide(..), ContentNode(..), Style(..) , Selector(..), ElementStyle(..), emptyPresentation, emptyStyle, emptyElementStyle ) where import Diagrams (Diagram) import Diagrams.Backend.SVG (SVG(..)) import qualified Diagrams as Diag import qualified Diagrams.Backend.SVG as SVG import Data.Colour (Colour) import Data.FileEmbed -- | Describes the behavior of the presentation element. data Eagerness -- | The element won't be displayed until there's an explicit signal from the user (pressing the arrow key, etc.) = Delay -- | The element will be displayed as soon as it's encountered. | Immediate deriving (Eq, Show) -- | The outmost type. Holds slides and styling. data Presentation = Presentation { slides :: [Slide] , style :: Style -- | A plain string that will be put into the
before everything else. , baseHead :: String } -- | The outmost type of a single slide. Holds content nodes. newtype Slide = Slide { nodes :: [ContentNode] } -- | The main type in the presentaion. Describes all the possible kinds of content. data ContentNode -- | Generates a