on master help sign in
Merge pull request #296 from MaxDaten/feature/binary-pandoc-csl

added binary instances, fix #174

commit5553fe2a4d1fe1b71592b00ab959ac94c216d96c authorJasper Van der Jeugt <jaspervdj@gmail.com> dateMon 8 Sep 2014, 19:18 (12 years ago) parentf1c21c73008142
3 files changed+38−2
hakyll.cabal+1 src/Hakyll/Web/Pandoc/Biblio.hs+6−2 src/Hakyll/Web/Pandoc/Binary.hs+31
hakyll.cabal+1
@@ -137,6 +137,7 @@ Library
137137 Hakyll.Core.Util.File
138138 Hakyll.Core.Util.Parser
139139 Hakyll.Web.Template.Internal
140+ Hakyll.Web.Pandoc.Binary
140141 Paths_hakyll
141142
142143 Build-Depends:
src/Hakyll/Web/Pandoc/Biblio.hs+6−2
@@ -21,6 +21,7 @@ module Hakyll.Web.Pandoc.Biblio
2121
2222--------------------------------------------------------------------------------
2323import Control.Applicative ((<$>))
24+import Control.Monad (replicateM)
2425import Data.Binary (Binary (..))
2526import Data.Typeable (Typeable)
2627import qualified Text.CSL as CSL
@@ -33,6 +34,7 @@ import Hakyll.Core.Identifier
3334import Hakyll.Core.Item
3435import Hakyll.Core.Writable
3536import Hakyll.Web.Pandoc
37+import Hakyll.Web.Pandoc.Binary ()
3638
3739
3840--------------------------------------------------------------------------------
@@ -65,8 +67,10 @@ newtype Biblio = Biblio [CSL.Reference]
6567--------------------------------------------------------------------------------
6668instance Binary Biblio where
6769 -- Ugly.
68− get = Biblio . read <$> get
69− put (Biblio rs) = put $ show rs
70+ get = do
71+ len <- get
72+ Biblio <$> replicateM len get
73+ put (Biblio rs) = put (length rs) >> mapM_ put rs
7074
7175
7276--------------------------------------------------------------------------------
src/Hakyll/Web/Pandoc/Binary.hsnew file+31
@@ -0,0 +1,31 @@
1+{-# OPTIONS_GHC -fno-warn-orphans #-}
2+{-# LANGUAGE DeriveGeneric #-}
3+module Hakyll.Web.Pandoc.Binary where
4+
5+import Data.Binary (Binary (..))
6+
7+import qualified Text.CSL as CSL
8+import qualified Text.CSL.Reference as REF
9+import qualified Text.CSL.Style as STY
10+import Text.Pandoc
11+
12+--------------------------------------------------------------------------------
13+-- orphans
14+
15+instance Binary REF.CNum
16+instance Binary REF.Literal
17+instance Binary REF.RefDate
18+instance Binary REF.RefType
19+instance Binary STY.Agent
20+instance Binary STY.Formatted
21+instance Binary Inline
22+instance Binary Block
23+instance Binary Citation
24+instance Binary MathType
25+instance Binary Alignment
26+instance Binary CitationMode
27+instance Binary QuoteType
28+instance Binary Format
29+instance Binary ListNumberDelim
30+instance Binary ListNumberStyle
31+instance Binary CSL.Reference