summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hakyll.cabal1
-rw-r--r--src/Hakyll/Web/Pandoc/Biblio.hs8
-rw-r--r--src/Hakyll/Web/Pandoc/Binary.hs31
3 files changed, 38 insertions, 2 deletions
diff --git a/hakyll.cabal b/hakyll.cabal
index 3164a77..a834256 100644
--- a/hakyll.cabal
+++ b/hakyll.cabal
@@ -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:
diff --git a/src/Hakyll/Web/Pandoc/Biblio.hs b/src/Hakyll/Web/Pandoc/Biblio.hs
index 6c92f28..c8f075d 100644
--- a/src/Hakyll/Web/Pandoc/Biblio.hs
+++ b/src/Hakyll/Web/Pandoc/Biblio.hs
@@ -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
--------------------------------------------------------------------------------
diff --git a/src/Hakyll/Web/Pandoc/Binary.hs b/src/Hakyll/Web/Pandoc/Binary.hs
new file mode 100644
index 0000000..ec75f77
--- /dev/null
+++ b/src/Hakyll/Web/Pandoc/Binary.hs
@@ -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