added binary instances for csl and pandoc, fix #174

This commit is contained in:
Jan-Philip Loos 2014-09-08 16:04:30 +02:00
parent f1c21c79f5
commit 3008142e03
3 changed files with 38 additions and 2 deletions

View File

@ -137,6 +137,7 @@ Library
Hakyll.Core.Util.File
Hakyll.Core.Util.Parser
Hakyll.Web.Template.Internal
Hakyll.Web.Pandoc.Binary
Paths_hakyll
Build-Depends:

View File

@ -21,6 +21,7 @@ module Hakyll.Web.Pandoc.Biblio
--------------------------------------------------------------------------------
import Control.Applicative ((<$>))
import Control.Monad (replicateM)
import Data.Binary (Binary (..))
import Data.Typeable (Typeable)
import qualified Text.CSL as CSL
@ -33,6 +34,7 @@ import Hakyll.Core.Identifier
import Hakyll.Core.Item
import Hakyll.Core.Writable
import Hakyll.Web.Pandoc
import Hakyll.Web.Pandoc.Binary ()
--------------------------------------------------------------------------------
@ -65,8 +67,10 @@ newtype Biblio = Biblio [CSL.Reference]
--------------------------------------------------------------------------------
instance Binary Biblio where
-- Ugly.
get = Biblio . read <$> get
put (Biblio rs) = put $ show rs
get = do
len <- get
Biblio <$> replicateM len get
put (Biblio rs) = put (length rs) >> mapM_ put rs
--------------------------------------------------------------------------------

View File

@ -0,0 +1,31 @@
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE DeriveGeneric #-}
module Hakyll.Web.Pandoc.Binary where
import Data.Binary (Binary (..))
import qualified Text.CSL as CSL
import qualified Text.CSL.Reference as REF
import qualified Text.CSL.Style as STY
import Text.Pandoc
--------------------------------------------------------------------------------
-- orphans
instance Binary REF.CNum
instance Binary REF.Literal
instance Binary REF.RefDate
instance Binary REF.RefType
instance Binary STY.Agent
instance Binary STY.Formatted
instance Binary Inline
instance Binary Block
instance Binary Citation
instance Binary MathType
instance Binary Alignment
instance Binary CitationMode
instance Binary QuoteType
instance Binary Format
instance Binary ListNumberDelim
instance Binary ListNumberStyle
instance Binary CSL.Reference