pandoc-types 1.17.0.4 → 1.17.0.5
raw patch · 3 files changed
+49/−5 lines, 3 filesdep ~HUnitdep ~QuickCheckdep ~aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: HUnit, QuickCheck, aeson, syb
API changes (from Hackage documentation)
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Alignment
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Block
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Citation
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.CitationMode
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Format
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Inline
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.ListNumberDelim
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.ListNumberStyle
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.MathType
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Meta
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.MetaValue
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.Pandoc
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.FromJSON Text.Pandoc.Definition.QuoteType
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Alignment
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Block
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Citation
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.CitationMode
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Format
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Inline
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.ListNumberDelim
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.ListNumberStyle
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.MathType
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Meta
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.MetaValue
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.Pandoc
- Text.Pandoc.Definition: instance Data.Aeson.Types.Class.ToJSON Text.Pandoc.Definition.QuoteType
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Alignment
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Block
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Citation
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.CitationMode
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Format
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Inline
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.ListNumberDelim
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.ListNumberStyle
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.MathType
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Meta
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.MetaValue
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.Pandoc
+ Text.Pandoc.Definition: instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Definition.QuoteType
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Alignment
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Block
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Citation
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.CitationMode
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Format
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Inline
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.ListNumberDelim
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.ListNumberStyle
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.MathType
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Meta
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.MetaValue
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.Pandoc
+ Text.Pandoc.Definition: instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Definition.QuoteType
Files
- changelog +6/−0
- pandoc-types.cabal +4/−3
- test/test-pandoc-types.hs +39/−2
changelog view
@@ -1,3 +1,9 @@+[1.17.0.5]++ * Allow aeson 1.1.+ * Added tests for Walk (originally from pandoc).+ * Renamed README -> README.md, fix link (Kolen Cheung).+ [1.17.0.4] * Re-add Functor constraint to walkM, needed for ghc 7.8.
pandoc-types.cabal view
@@ -1,5 +1,5 @@ Name: pandoc-types-Version: 1.17.0.4+Version: 1.17.0.5 Synopsis: Types for representing a structured document Description: @Text.Pandoc.Definition@ defines the 'Pandoc' data structure, which is used by pandoc to represent@@ -51,7 +51,7 @@ syb >= 0.1 && < 0.7, ghc-prim >= 0.2, bytestring >= 0.9 && < 0.11,- aeson >= 0.6.2 && < 1.1,+ aeson >= 0.6.2 && < 1.2, QuickCheck >= 2 if impl(ghc < 7.10) Build-depends: deepseq-generics >= 0.1 && < 0.2@@ -64,7 +64,8 @@ main-is: test-pandoc-types.hs build-depends: base, pandoc-types,- aeson >= 0.6.2 && < 1.1,+ syb,+ aeson >= 0.6.2 && < 1.2, containers >= 0.3, bytestring >= 0.9 && < 0.11, test-framework >= 0.3 && < 0.9,
test/test-pandoc-types.hs view
@@ -1,8 +1,12 @@-{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings, QuasiQuotes, FlexibleContexts #-} import Text.Pandoc.Definition+import Text.Pandoc.Walk+import Text.Pandoc.Arbitrary()+import Data.Generics import Test.HUnit (Assertion, assertEqual, assertFailure) import Text.Pandoc.Arbitrary ()+import Data.Char (toUpper) import Data.Aeson (FromJSON, ToJSON, encode, decode) import Test.Framework import Test.Framework.Providers.QuickCheck2 (testProperty)@@ -11,6 +15,33 @@ import Data.String.QQ import Data.ByteString.Lazy (ByteString) +p_walk :: (Typeable a, Walkable a Pandoc)+ => (a -> a) -> Pandoc -> Bool+p_walk f d = everywhere (mkT f) d == walk f d++p_query :: (Eq a, Typeable a1, Monoid a, Walkable a1 Pandoc)+ => (a1 -> a) -> Pandoc -> Bool+p_query f d = everything mappend (mempty `mkQ` f) d == query f d++inlineTrans :: Inline -> Inline+inlineTrans (Str xs) = Str $ map toUpper xs+inlineTrans (Emph xs) = Strong xs+inlineTrans x = x++blockTrans :: Block -> Block+blockTrans (Plain xs) = Para xs+blockTrans (BlockQuote xs) = Div ("",["special"],[]) xs+blockTrans x = x++inlineQuery :: Inline -> String+inlineQuery (Str xs) = xs+inlineQuery _ = ""++blockQuery :: Block -> [Int]+blockQuery (Header lev _ _) = [lev]+blockQuery _ = []++ prop_roundtrip :: Pandoc -> Bool prop_roundtrip doc = case decode $ encode doc :: (Maybe Pandoc) of Just doc' -> doc == doc'@@ -296,7 +327,13 @@ tests :: [Test] tests =- [ testGroup "JSON"+ [ testGroup "Walk"+ [ testProperty "p_walk inlineTrans" (p_walk inlineTrans)+ , testProperty "p_walk blockTrans" (p_walk blockTrans)+ , testProperty "p_query inlineQuery" (p_query inlineQuery)+ , testProperty "p_query blockQuery" (p_query blockQuery)+ ]+ , testGroup "JSON" [ testGroup "encoding/decoding properties" [ testProperty "round-trip" prop_roundtrip ]