packages feed

lucid2-0.0.20221012: CHANGELOG.md

## 0.0.20221012

* Fix `commuteHtmlT` in favor of newly added `commuteHtmlT2`

## 0.0.20220526

This release adds some extra functions for running different monad
stacks, prompted by Joe Vargas.

* Add `generalizeHtmlT`, `commuteHtmlT` and `hoistHtmlT`.
* Deprecate the accidentally exported `relaxHtmlT = undefined`.

## 0.0.20220509

* Use explicit imports for mtl, avoiding mtl-2.3 incompatibility.

## New in lucid2

lucid2 is a new package published to Hackage and maintained under `lucid2/` in this repository alongside `lucid1`. Releases are made under the [Immutable Publishing Policy](https://chrisdone.com/posts/ipp/), and users had asked for many breaking changes, therefore we needed a completely new namespace to work under, hence, "lucid2". Many things have also been dropped in the process, to simplify the codebase.

This upgrade is **entirely optional**.

People using `lucid` **will not have to do anything**. They can continue using that package indefinitely, it will be maintained alongside `lucid2`, to keep it building with GHCs and things. You can even use both packages in the same codebase with `-XPackageImports`.

Changed:

* All `on*` attributes and `style_` do not escape their values anymore. Be
  careful. Though you were probably being careful with these anyway,
  as they are inherently dangerous for XXS.
* The `Attribute` type has been replaced by `Attributes`, which is a `Monoid` instance. This makes it really easy to write code like `if X then class_ "foo" else mempty`.
* The `class_` and `style_` attributes combine with a space and `;` between them when there are duplicates, e.g. `[class_ "x",class_ "y"]` produces `class="x y"`. These are special cases, the rest of the attributes do not have special combining behavior and will be simple concatenation.

Renamed:

* makeAttribute is renamed to makeAttributes.
* Added makeAttributesRaw.

Dropped:

* Eq/Ord/Show instances for Attribute.
* Drop the `Lucid.Bootstrap` module entirely.
* Dropped the mmorph dependency (breaking changes often, not
  reliable), instead we provide a simple `hoist` function of the right
  type.
* Drop MonadError.
* Drop MonadWriter.
* Drop hashable.
* Drop XML elements.

Dependencies:

* We now only depend on blaze-builder, and the rest are libraries that
  come with GHC, which are held to a slightly higher standard of not
  breaking changes.