Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
## v0.7.0
* Enhancements
* It's now easy to provide conversions for custom data types by using the new `Eml.Data` protocol
* Better separation of concerns by removing all data conversions from parsing
* Bug fixes
* Some type fixes in the Eml.Language behaviour
* Backwards incompatible changes
* Renamed `Eml.Language.Html` to `Eml.Language.HTML` in order to be compliant with Elixir's naming conventions
* The undocumented `Eml.parse/4` function is now replaced by `Eml.to_content/3`
* The `Eml.Parsable` protocol is replaced by `Eml.Data`, which is now strictly used for converting various
data types into valid Eml nodes.
* `Eml.parse/2` now always returns a list again, because the type
conversions are now done by `Eml.to_content/3` and consequently you can't force
`Eml.parse/2` to return a list anymore, which would make it dangerous to
use when parsing html partials where you don't know the nummer of nodes.
* `Eml.parse/2`, `Eml.render/3` and `Eml.compile/3` now always raise an exception on error.
Removed `Eml.parse!/2`, `Eml.render!/3` and `Eml.compile!/3`. Reason is that it was hard
to guarantee that those functions never raised an error and it simplifies Eml's API
* Removed `Eml.render_to_eex/3`, `Eml.render_to_eex!/3`, `Eml.compile_to_eex/3` and `Eml.compile_to_eex!/3`,
as they didn't provide much usefulness
## v0.6.0
* Enhancements
* Introduced `use Eml.Language.Html` as prefered way of defininf markup
* Restructured README.md and added new content about precompiling
* It's now possible to pass content as the first argument of an element macro, ie. `div "Hello world!"`
* Added `Eml.compile_to_eex/3` and `Eml.render_to_eex/3`
* Bug fixes
* Documentation corrections.
* Removed duplicate code in `Eml.defhtml/2`
* Type specification fixes
* `Eml.parse/2` in some cases returned weird results when the input is a list
* Template bindings were not correctly parsed
* Backwards incompatible changes
* Removed `Eml.eml/2` in favor of `use Eml.Language.Html`
* `Eml.parse/2` now returns results in the form of `{ :ok, res }`, in order to be consistent with render and compile functions
* Unless the input of `Eml.parse/2` is a list, if the result is a single element, `Eml.parse/2` now just returns the single element
instead of always wrapping the result in a list
## v0.5.0
* Enhancements
* Added documentation for all public modules
* Added some meta data to mix.exs for ex_doc
* Added `Eml.compile!/3`
* Bug fixes
* Lots of documentation corrections
* Some type fixes
* Backwards incompatible changes
* Renamed all read function to parse
* Renamed all write functions to render
* Removed `Eml.write_file` and `Eml.write_file!`
* Removed `Eml.read_file` and `Eml.read_file!`
* Parameters with the same name just reuse the same bounded value, instead of popping a list of bounded values
* Renamed the module `Eml.Markup` to `Eml.Element` and the module `Eml.Language.Html.Markup` to `Eml.Language.Html.Elements`
* `Eml.compile` now returns { :ok, template } on success instead of just the template in order to be consistent with Eml's
render and parse functions