citeproc 0.2 → 0.2.0.1
raw patch · 13 files changed
+39/−30 lines, 13 filesdep +base-compatPVP ok
version bump matches the API change (PVP)
Dependencies added: base-compat
API changes (from Hackage documentation)
Files
- CHANGELOG.md +9/−0
- citeproc.cabal +8/−4
- man/citeproc.1 +1/−1
- prelude/Prelude.hs +8/−0
- src/Citeproc.hs +0/−2
- src/Citeproc/CaseTransform.hs +0/−2
- src/Citeproc/CslJson.hs +0/−3
- src/Citeproc/Data.hs +1/−2
- src/Citeproc/Element.hs +0/−3
- src/Citeproc/Eval.hs +0/−1
- src/Citeproc/Style.hs +0/−3
- src/Citeproc/Types.hs +12/−8
- src/Citeproc/Unicode.hs +0/−1
CHANGELOG.md view
@@ -1,5 +1,14 @@ # citeproc changelog +## 0.2.0.1++ * FromJSON for Name: make straight quotes curly.+ Otherwise nothing will do this, when we are decoding+ JSON to (Reference a), a /= CslJson Text.+ * Remove redundant pragmas and imports (Albert Krewinkel).+ * Use custom prelude with GHC 8.6.* and older (Albert+ Krewinkel). This adds support for GHC 8.0.x.+ ## 0.2 * Remove `AfterOtherPunctuation` constructor from
citeproc.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: citeproc-version: 0.2+version: 0.2.0.1 synopsis: Generates citations and bibliography from CSL styles. description: citeproc parses CSL style files and uses them to generate a list of formatted citations and bibliography@@ -25,9 +25,9 @@ test/csl/*.txt test/extra/*.txt test/overrides/*.txt-tested-with: GHC == 8.2.2, GHC == 8.4.4,- GHC == 8.6.5, GHC == 8.8.1,- GHC == 8.10.1+tested-with: GHC == 8.0.2, GHC == 8.2.2,+ GHC == 8.4.4, GHC == 8.6.5,+ GHC == 8.8.3, GHC == 8.10.1 source-repository head type: git@@ -97,6 +97,10 @@ -Werror=missing-home-modules -fhide-source-paths + if impl(ghc < 8.8)+ build-depends: base-compat >= 0.10+ hs-source-dirs: prelude+ other-modules: Prelude default-language: Haskell2010
man/citeproc.1 view
@@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 2.11.2 .\"-.TH "citeproc" "1" "" "citeproc 0.2" ""+.TH "citeproc" "1" "" "citeproc 0.2.0.1" "" .hy .SH NAME .PP
+ prelude/Prelude.hs view
@@ -0,0 +1,8 @@+module Prelude (+ module Prelude.Compat+ , Semigroup (..)+)+where++import Prelude.Compat+import Data.Semigroup (Semigroup ((<>)))
src/Citeproc.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} -- | Process citations using the formatting instructions encoded -- in a CSL stylesheet. The library targets version 1.0.1 of the@@ -10,7 +9,6 @@ , citeproc , Result(..) ) where-import Data.Semigroup import qualified Data.Text as T import qualified Data.Set as Set import Citeproc.Types
src/Citeproc/CaseTransform.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE StrictData #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} -- | Provides functions that facilitate defining textcase transformations.@@ -18,7 +17,6 @@ where import Data.Ord ()-import Data.Semigroup import Data.Char (isUpper, isLower, isAscii) import Data.Text (Text) import qualified Data.Text as T
src/Citeproc/CslJson.hs view
@@ -2,8 +2,6 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveTraversable #-} -- | CSL JSON is the structured text format defined in -- <https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html>.@@ -34,7 +32,6 @@ import Citeproc.Types import Citeproc.CaseTransform import Data.Ord ()-import Data.Semigroup import Data.Char (isAlphaNum, isSpace, isAscii) import Data.Text (Text) import Data.Maybe (fromMaybe)
src/Citeproc/Data.hs view
@@ -2,9 +2,8 @@ module Citeproc.Data (localeFiles) where-import System.FilePath (FilePath) import Data.ByteString (ByteString)-import Data.FileEmbed+import Data.FileEmbed localeFiles :: [(FilePath, ByteString)] localeFiles = $(embedDir "locales")
src/Citeproc/Element.hs view
@@ -17,7 +17,6 @@ ) where import Citeproc.Types-import Data.Semigroup import Data.Maybe (fromMaybe) import Control.Monad (foldM) import qualified Data.Map as M@@ -27,8 +26,6 @@ import Control.Monad.Trans.Reader import Control.Monad.Trans.Except import Control.Monad.Trans.Class (lift)--import Debug.Trace newtype Attributes = Attributes (M.Map Text Text) deriving (Show, Semigroup, Monoid, Eq)
src/Citeproc/Eval.hs view
@@ -10,7 +10,6 @@ import Citeproc.Types import Citeproc.Style (mergeLocales) import qualified Citeproc.Unicode as Unicode-import Data.Semigroup import Control.Monad.Trans.RWS.CPS import Data.Containers.ListUtils (nubOrdOn, nubOrd) import Safe (headMay, headDef, lastMay, initSafe, tailSafe, maximumMay)
src/Citeproc/Style.hs view
@@ -15,13 +15,10 @@ import qualified Text.XML as X import qualified Data.Text as T import qualified Data.Map as M-import Data.Semigroup import Data.Maybe (fromMaybe, isNothing) import Data.Default (def) import qualified Data.Text.Lazy as TL import Control.Monad.Trans.Reader (local)--import Debug.Trace -- | Merge the locale specified by the first parameter, if any, -- with the default locale of the style and locale definitions
src/Citeproc/Types.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE StrictData #-} {-# LANGUAGE LambdaCase #-}-{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}@@ -108,7 +107,6 @@ import qualified Data.Text.Read as TR import qualified Data.Scientific as S import qualified Data.CaseInsensitive as CI-import Data.Semigroup import Control.Monad (foldM, guard, mzero) import Control.Applicative ((<|>)) import Data.Char (isLower, isDigit, isLetter, isSpace)@@ -1125,19 +1123,25 @@ maybe id (\x -> (("literal", toJSON x):)) (nameLiteral n) $ [] +fixApos :: Text -> Text+fixApos = T.map fixAposC+ where+ fixAposC '\'' = '\x2019'+ fixAposC c = c+ instance FromJSON Name where parseJSON (String t) = parseCheaterName t parseJSON x = extractParticles <$> (withObject "Name" $ \v -> Name- <$> v .:? "family"- <*> v .:? "given"- <*> v .:? "dropping-particle"- <*> v .:? "non-dropping-particle"- <*> v .:? "suffix"+ <$> (fmap fixApos <$> v .:? "family")+ <*> (fmap fixApos <$> v .:? "given")+ <*> (fmap fixApos <$> v .:? "dropping-particle")+ <*> (fmap fixApos <$> v .:? "non-dropping-particle")+ <*> (fmap fixApos <$> v .:? "suffix") <*> (v .:? "comma-suffix" >>= maybe (return False) asBool) <*> (v .:? "static-ordering" >>= maybe (return False) asBool)- <*> v .:? "literal"+ <*> (fmap fixApos <$> v .:? "literal") ) x -- "lowercase elements before the family name are treated as “non-dropping”
src/Citeproc/Unicode.hs view
@@ -17,7 +17,6 @@ import Data.Text (Text) import qualified Data.Text as T import Data.Aeson (FromJSON (..), ToJSON (..))-import Data.Semigroup -- | A parsed IETF language tag, with language and optional variant. -- For example, @Lang "en" (Just "US")@ corresponds to @en-US@.