summaryrefslogtreecommitdiff
path: root/src/Hakyll/Web/Pandoc
diff options
context:
space:
mode:
authorJan-Philip Loos <maxdaten@gmail.com>2014-09-08 16:04:30 +0200
committerJan-Philip Loos <maxdaten@gmail.com>2014-09-08 16:04:30 +0200
commit3008142e03a0fb4f2cfa82ad9d81990d54d35e01 (patch)
tree73c61ecf6d5c8989ffb4a3e326da4ac31e679b99 /src/Hakyll/Web/Pandoc
parentf1c21c79f5f40cb41c227f788ecce007001c2890 (diff)
downloadhakyll-3008142e03a0fb4f2cfa82ad9d81990d54d35e01.tar.gz
added binary instances for csl and pandoc, fix #174
Diffstat (limited to 'src/Hakyll/Web/Pandoc')
-rw-r--r--src/Hakyll/Web/Pandoc/Biblio.hs8
-rw-r--r--src/Hakyll/Web/Pandoc/Binary.hs31
2 files changed, 37 insertions, 2 deletions
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