summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Israel Peña <jorgepblank@gmail.com>2013-09-16 23:25:45 -0700
committerJasper Van der Jeugt <m@jaspervdj.be>2013-09-18 22:38:54 +0200
commita590a9a57f2f74547670469db946407be02e2a11 (patch)
tree918843e032ac7af5aeebbaea63e5a429ff430fea
parent36f9a9cfeb9b408cb595d9652e0af8fa30551c75 (diff)
downloadhakyll-a590a9a57f2f74547670469db946407be02e2a11.tar.gz
updated to work with pandoc 1.12
Pandoc 1.12 decouples citeproc-hs from itself, so there is no longer a Text.Pandoc.Biblio module in Pandoc. Further, citeproc-hs depends on pandoc-types 1.10 but Pandoc 1.12 depends on pandoc-types 1.12. To alleviate these issues, pandoc-citeproc was created which includes a copy of the citeproc-hs source made to be compatible, since the developer of citeproc-hs is apparently MIA. pandoc-citeproc is a separate module that handles the mixture of citeproc-hs and Pandoc. It includes `processCites` in Text.CSL.Pandoc, which is the new name of what used to be `processBiblio` from Text.Pandoc.Biblio Most of these changes are seamless, consisting of simple name changes in both functions and modules. However, a more direct change in the Hakyll API itself is that `readPandocBiblio`'s second parameter, the CSL, is now mandatory, i.e. not of type Maybe. This is to reflect the same change in the underlying processing function from Text.CSL.Pandoc, `processCites`, where the Style argument is now mandatory, and the style is derived from the CSL. See the old function: processBiblio :: Maybe Style -> [Reference] -> Pandoc -> Pandoc Compared to the new one: processCites :: Style -> [Reference] -> Pandoc -> Pandoc Sources: * http://hackage.haskell.org/packages/archive/pandoc/1.11.1/doc/html/Text-Pandoc-Biblio.html * http://hackage.haskell.org/packages/archive/pandoc-citeproc/0.1/doc/html/Text-CSL-Pandoc.html Similarly, there is no longer a `readerReferences` field in the reader options structure.
-rw-r--r--hakyll.cabal112
-rw-r--r--src/Hakyll/Web/Pandoc/Biblio.hs15
2 files changed, 62 insertions, 65 deletions
diff --git a/hakyll.cabal b/hakyll.cabal
index 9cc627a..7ecdacd 100644
--- a/hakyll.cabal
+++ b/hakyll.cabal
@@ -141,33 +141,33 @@ Library
Paths_hakyll
Build-Depends:
- base >= 4 && < 5,
- binary >= 0.5 && < 0.8,
- blaze-html >= 0.5 && < 0.7,
- blaze-markup >= 0.5.1 && < 0.6,
- bytestring >= 0.9 && < 0.11,
- citeproc-hs >= 0.3.2 && < 0.4,
- cmdargs >= 0.10 && < 0.11,
- containers >= 0.3 && < 0.6,
- cryptohash >= 0.7 && < 0.11,
- data-default >= 0.4 && < 0.6,
- deepseq >= 1.3 && < 1.4,
- directory >= 1.0 && < 1.3,
- filepath >= 1.0 && < 1.4,
- lrucache >= 1.1.1 && < 1.2,
- mtl >= 1 && < 2.2,
- network >= 2.4 && < 2.5,
- old-locale >= 1.0 && < 1.1,
- old-time >= 1.0 && < 1.2,
- pandoc >= 1.10 && < 1.12,
- parsec >= 3.0 && < 3.2,
- process >= 1.0 && < 1.2,
- random >= 1.0 && < 1.1,
- regex-base >= 0.93 && < 0.94,
- regex-tdfa >= 1.1 && < 1.2,
- tagsoup >= 0.12.6 && < 0.13,
- text >= 0.11 && < 1.12,
- time >= 1.1 && < 1.5
+ base >= 4 && < 5,
+ binary >= 0.5 && < 0.8,
+ blaze-html >= 0.5 && < 0.7,
+ blaze-markup >= 0.5.1 && < 0.6,
+ bytestring >= 0.9 && < 0.11,
+ cmdargs >= 0.10 && < 0.11,
+ containers >= 0.3 && < 0.6,
+ cryptohash >= 0.7 && < 0.11,
+ data-default >= 0.4 && < 0.6,
+ deepseq >= 1.3 && < 1.4,
+ directory >= 1.0 && < 1.3,
+ filepath >= 1.0 && < 1.4,
+ lrucache >= 1.1.1 && < 1.2,
+ mtl >= 1 && < 2.2,
+ network >= 2.4 && < 2.5,
+ old-locale >= 1.0 && < 1.1,
+ old-time >= 1.0 && < 1.2,
+ pandoc >= 1.12 && < 1.14,
+ pandoc-citeproc >= 0.1 && < 0.2,
+ parsec >= 3.0 && < 3.2,
+ process >= 1.0 && < 1.2,
+ random >= 1.0 && < 1.1,
+ regex-base >= 0.93 && < 0.94,
+ regex-tdfa >= 1.1 && < 1.2,
+ tagsoup >= 0.12.6 && < 0.13,
+ text >= 0.11 && < 1.12,
+ time >= 1.1 && < 1.5
If flag(previewServer)
Build-depends:
@@ -224,36 +224,36 @@ Test-suite hakyll-tests
HUnit >= 1.2 && < 1.3,
QuickCheck >= 2.4 && < 2.7,
test-framework >= 0.4 && < 0.9,
- test-framework-hunit >= 0.2 && < 0.4,
- test-framework-quickcheck2 >= 0.2 && < 0.4,
+ test-framework-hunit >= 0.3 && < 0.4,
+ test-framework-quickcheck2 >= 0.3 && < 0.4,
-- Copy pasted from hakyll dependencies:
- base >= 4 && < 5,
- binary >= 0.5 && < 0.8,
- blaze-html >= 0.5 && < 0.7,
- blaze-markup >= 0.5.1 && < 0.6,
- bytestring >= 0.9 && < 0.11,
- citeproc-hs >= 0.3.2 && < 0.4,
- cmdargs >= 0.10 && < 0.11,
- containers >= 0.3 && < 0.6,
- cryptohash >= 0.7 && < 0.11,
- data-default >= 0.4 && < 0.6,
- deepseq >= 1.3 && < 1.4,
- directory >= 1.0 && < 1.3,
- filepath >= 1.0 && < 1.4,
- lrucache >= 1.1.1 && < 1.2,
- mtl >= 1 && < 2.2,
- network >= 2.4 && < 2.5,
- old-locale >= 1.0 && < 1.1,
- old-time >= 1.0 && < 1.2,
- pandoc >= 1.10 && < 1.12,
- parsec >= 3.0 && < 3.2,
- process >= 1.0 && < 1.2,
- random >= 1.0 && < 1.1,
- regex-base >= 0.93 && < 0.94,
- regex-tdfa >= 1.1 && < 1.2,
- tagsoup >= 0.12.6 && < 0.13,
- text >= 0.11 && < 1.12,
- time >= 1.1 && < 1.5
+ base >= 4 && < 5,
+ binary >= 0.5 && < 0.8,
+ blaze-html >= 0.5 && < 0.7,
+ blaze-markup >= 0.5.1 && < 0.6,
+ bytestring >= 0.9 && < 0.11,
+ cmdargs >= 0.10 && < 0.11,
+ containers >= 0.3 && < 0.6,
+ cryptohash >= 0.7 && < 0.11,
+ data-default >= 0.4 && < 0.6,
+ deepseq >= 1.3 && < 1.4,
+ directory >= 1.0 && < 1.3,
+ filepath >= 1.0 && < 1.4,
+ lrucache >= 1.1.1 && < 1.2,
+ mtl >= 1 && < 2.2,
+ network >= 2.4 && < 2.5,
+ old-locale >= 1.0 && < 1.1,
+ old-time >= 1.0 && < 1.2,
+ pandoc >= 1.12 && < 1.14,
+ pandoc-citeproc >= 0.1 && < 0.2,
+ parsec >= 3.0 && < 3.2,
+ process >= 1.0 && < 1.2,
+ random >= 1.0 && < 1.1,
+ regex-base >= 0.93 && < 0.94,
+ regex-tdfa >= 1.1 && < 1.2,
+ tagsoup >= 0.12.6 && < 0.13,
+ text >= 0.11 && < 1.12,
+ time >= 1.1 && < 1.5
If flag(previewServer)
Build-depends:
diff --git a/src/Hakyll/Web/Pandoc/Biblio.hs b/src/Hakyll/Web/Pandoc/Biblio.hs
index 9c4b0bf..db022bc 100644
--- a/src/Hakyll/Web/Pandoc/Biblio.hs
+++ b/src/Hakyll/Web/Pandoc/Biblio.hs
@@ -22,12 +22,10 @@ module Hakyll.Web.Pandoc.Biblio
--------------------------------------------------------------------------------
import Control.Applicative ((<$>))
import Data.Binary (Binary (..))
-import Data.Traversable (traverse)
import Data.Typeable (Typeable)
import qualified Text.CSL as CSL
+import Text.CSL.Pandoc (processCites)
import Text.Pandoc (Pandoc, ReaderOptions (..))
-import Text.Pandoc.Biblio (processBiblio)
-
--------------------------------------------------------------------------------
import Hakyll.Core.Compiler
@@ -86,21 +84,20 @@ biblioCompiler = do
--------------------------------------------------------------------------------
readPandocBiblio :: ReaderOptions
- -> Maybe (Item CSL)
+ -> Item CSL
-> Item Biblio
-> (Item String)
-> Compiler (Item Pandoc)
readPandocBiblio ropt csl biblio item = do
-- Parse CSL file, if given
- style <- unsafeCompiler $
- traverse (CSL.readCSLFile . toFilePath . itemIdentifier) csl
+ style <- unsafeCompiler $ CSL.readCSLFile . toFilePath . itemIdentifier $ csl
-- We need to know the citation keys, add then *before* actually parsing the
-- actual page. If we don't do this, pandoc won't even consider them
-- citations!
let Biblio refs = itemBody biblio
- ropt' = ropt {readerReferences = readerReferences ropt ++ refs}
- pandoc = itemBody $ readPandocWith ropt' item
- pandoc' = processBiblio style refs pandoc
+ pandoc = itemBody $ readPandocWith ropt item
+ pandoc' = processCites style refs pandoc
return $ fmap (const pandoc') item
+