lucid 2.9.12 → 2.9.12.1
raw patch · 3 files changed
+53/−25 lines, 3 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Lucid.Base: instance (GHC.Base.Applicative m, f Data.Type.Equality.~ Lucid.Base.HtmlT m a) => Lucid.Base.Term [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
- Lucid.Base: instance (GHC.Base.Monad m, Lucid.Base.ToHtml f, a Data.Type.Equality.~ ()) => Lucid.Base.TermRaw [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
- Lucid.Base: instance (GHC.Base.Monad m, a Data.Type.Equality.~ ()) => Data.String.IsString (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (GHC.Base.Monad m, a Data.Type.Equality.~ ()) => Lucid.Base.TermRaw Data.Text.Internal.Text (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (a Data.Type.Equality.~ (), GHC.Base.Applicative m) => GHC.Base.Monoid (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (a Data.Type.Equality.~ (), GHC.Base.Applicative m) => GHC.Base.Semigroup (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (a Data.Type.Equality.~ (), m Data.Type.Equality.~ Data.Functor.Identity.Identity) => Lucid.Base.ToHtml (Lucid.Base.HtmlT m a)
- Lucid.Base: instance (m Data.Type.Equality.~ Data.Functor.Identity.Identity) => GHC.Show.Show (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Applicative m, f GHC.Types.~ Lucid.Base.HtmlT m a) => Lucid.Base.Term [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Monad m, Lucid.Base.ToHtml f, a GHC.Types.~ ()) => Lucid.Base.TermRaw [Lucid.Base.Attribute] (f -> Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Monad m, a GHC.Types.~ ()) => Data.String.IsString (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (GHC.Base.Monad m, a GHC.Types.~ ()) => Lucid.Base.TermRaw Data.Text.Internal.Text (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (a GHC.Types.~ (), GHC.Base.Applicative m) => GHC.Base.Monoid (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (a GHC.Types.~ (), GHC.Base.Applicative m) => GHC.Base.Semigroup (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (a GHC.Types.~ (), m GHC.Types.~ Data.Functor.Identity.Identity) => Lucid.Base.ToHtml (Lucid.Base.HtmlT m a)
+ Lucid.Base: instance (m GHC.Types.~ Data.Functor.Identity.Identity) => GHC.Show.Show (Lucid.Base.HtmlT m a)
Files
- CHANGELOG.md +4/−0
- lucid.cabal +12/−4
- test/Main.hs +37/−21
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 2.9.12.1++* Allow different orderings of attributes in test-suite + ## 2.9.12 * Add MonadFix instance
lucid.cabal view
@@ -1,5 +1,5 @@ name: lucid-version: 2.9.12+version: 2.9.12.1 synopsis: Clear to write, read and edit DSL for HTML description: Clear to write, read and edit DSL for HTML.@@ -19,11 +19,12 @@ copyright: 2014-2017 Chris Done category: Web build-type: Simple-cabal-version: >=1.8+cabal-version: >=1.10 extra-source-files: README.md, CHANGELOG.md-tested-with: GHC==7.10.3,GHC==8.0.2,GHC==8.2.2,GHC==8.4.4,GHC==8.6.5, GHC==8.8.1+tested-with: GHC==7.10.3,GHC==8.0.2,GHC==8.2.2,GHC==8.4.4,GHC==8.6.5,GHC==8.8.4,GHC==8.10.4,GHC==9.0.1 library+ default-language: Haskell2010 hs-source-dirs: src/ ghc-options: -Wall -O2 exposed-modules: Lucid@@ -32,7 +33,7 @@ Lucid.Bootstrap -- GHC boot libraries- build-depends: base >=4.8 && <4.14+ build-depends: base >=4.8 && <4.16 , bytestring >=0.10.6.0 , containers >=0.5.6.2 , transformers >=0.4.2.0@@ -51,7 +52,12 @@ , mmorph >=1.0.3 , unordered-containers >=0.2.5.1 +source-repository head+ type: git+ location: https://github.com/chrisdone/lucid.git+ test-suite test+ default-language: Haskell2010 type: exitcode-stdio-1.0 main-is: Main.hs hs-source-dirs: test@@ -66,6 +72,7 @@ mtl benchmark bench+ default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: benchmarks main-is: Main.hs@@ -80,6 +87,7 @@ ghc-options: -O2 benchmark bench-io+ default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: benchmarks main-is: IO.hs
test/Main.hs view
@@ -38,6 +38,10 @@ describe "commuteHtmlT" testCommuteHtmlT describe "monadFix" testMonadFix +(==?*) :: (Eq a, Show a) => a -> [a] -> Assertion+x ==?* xs | x `elem` xs = return ()+ | otherwise = assertFailure $ show x ++ " is not equal to any of " ++ show xs+ -- | Test text/unicode. testText :: Spec testText =@@ -103,18 +107,22 @@ (p_ [class_ "foo"] (p_ "")) == "<p class=\"foo\"><p></p></p>")- it "mixed"- (renderText+ it "mixed" $+ renderText (p_ [class_ "foo",style_ "attrib"] (do style_ ""- style_ "")) ==- "<p style=\"attrib\" class=\"foo\"><style></style><style></style></p>")+ style_ "")) ==?*+ [ "<p style=\"attrib\" class=\"foo\"><style></style><style></style></p>"+ , "<p class=\"foo\" style=\"attrib\"><style></style><style></style></p>"+ ] it "no closing" (renderText (p_ [class_ "foo"] (input_ [])) == "<p class=\"foo\"><input></p>")- it "multiple"- (renderText (p_ [class_ "foo",id_ "zot"] "foo") ==- "<p id=\"zot\" class=\"foo\">foo</p>")+ it "multiple" $+ renderText (p_ [class_ "foo",id_ "zot"] "foo") ==?*+ [ "<p id=\"zot\" class=\"foo\">foo</p>"+ , "<p class=\"foo\" id=\"zot\">foo</p>"+ ] it "encoded" (renderText (p_ [class_ "foo<>"] "foo") == "<p class=\"foo<>\">foo</p>")@@ -152,24 +160,30 @@ [class_ "foo"] (p_ "")) == "<p class=\"foo\"><p></p></p>")- it "mixed"- (renderText+ it "mixed" $+ renderText (with p_ [class_ "foo",style_ "attrib"]- (style_ "")) ==- "<p style=\"attrib\" class=\"foo\"><style></style></p>")- it "no closing"- (renderText (with p_ [class_ "foo"] (with (input_ [type_ "text"]) [class_ "zot"])) ==- "<p class=\"foo\"><input type=\"text\" class=\"zot\"></p>")- it "multiple"- (renderText (with p_ [class_ "foo",id_ "zot"] "foo") ==- "<p id=\"zot\" class=\"foo\">foo</p>")+ (style_ "")) ==?*+ [ "<p style=\"attrib\" class=\"foo\"><style></style></p>"+ , "<pclass=\"foo\" style=\"attrib\"><style></style></p>"+ ]+ it "no closing" $+ renderText (with p_ [class_ "foo"] (with (input_ [type_ "text"]) [class_ "zot"])) ==?*+ [ "<p class=\"foo\"><input type=\"text\" class=\"zot\"></p>"+ , "<p class=\"foo\"><input class=\"zot\" type=\"text\"></p>"+ ]+ it "multiple" $+ renderText (with p_ [class_ "foo",id_ "zot"] "foo") ==?*+ [ "<p id=\"zot\" class=\"foo\">foo</p>"+ , "<p class=\"foo\" id=\"zot\">foo</p>"+ ] it "encoded" (renderText (with p_ [class_ "foo<>"] "foo") == "<p class=\"foo<>\">foo</p>") it "nesting attributes" (renderText (with (with p_ [class_ "foo"]) [class_ "bar"] "foo") ==- "<p class=\"foobar\">foo</p>")+ "<p class=\"foobar\">foo</p>") -- | Test that one can use elements with extensible attributes. testExtension :: Spec@@ -177,9 +191,11 @@ do it "bootstrap" (renderText (container_ "Foo!") == "<div class=\" container \">Foo!</div>")- it "bootstrap-attributes-extended"- (renderText (container_ [class_ "bar",id_ "zot"] "Foo!") ==- "<div id=\"zot\" class=\" container bar\">Foo!</div>")+ it "bootstrap-attributes-extended" $+ renderText (container_ [class_ "bar",id_ "zot"] "Foo!") ==?*+ [ "<div id=\"zot\" class=\" container bar\">Foo!</div>"+ , "<div class=\" container bar\" id=\"zot\">Foo!</div>"+ ] -- | Test special elements that do something different to normal -- elements.