tidy_ex

TidyEx corrects and cleans up HTML content by fixing markup errors. Elixir binding to the granddaddy of HTML tools (http://www.html-tidy.org/). Binding implemented as a C-Node based on the excellent example of Lukas Rieder's nodex.


Keywords
elixir, html-par, html-ren, html-repair, html5
License
Other

Documentation

Under development...

Build status ModestEx version Hex.pm

Broom by faisalovers from the Noun Project

TidyEx

TidyEx corrects and cleans up HTML content by fixing markup errors.

Elixir/Erlang bindings for htacg's tidy-html5

The granddaddy of HTML tools, with support for modern standards http://www.html-tidy.org

All tidy related features are implemeted in C using my wrapper library tidy_html.

The binding is implemented as a C-Node following the excellent example in Overbryd's package nodex. If you want to learn how to set up bindings to C/C++, you should definitely check it out.

  • nodex
    • distributed Elixir
    • save binding with C-Nodes

C-Nodes are external os-processes that communicate with the Erlang VM through erlang messaging. That way you can implement native code and call into it from Elixir in a safe predictable way. The Erlang VM stays unaffected by crashes of the external process.

Example

Installation

Not yet published

Target dependencies

cmake 3.x
erlang-dev
erlang-xmerl
erlang-parsetools

Compile and test

mix deps.get
mix compile
mix test

Cloning

git clone git@github.com:f34nk/tidy_ex.git
cd tidy_ex

All binding targets are added as submodules in the target/ folder.

git submodule update --init --recursive --remote
mix deps.get
mix compile
mix test
mix test.target

Cleanup

mix clean

Roadmap

See CHANGELOG.

  • Bindings
    • Call as C-Node
    • Call as dirty-nif
  • Tests
    • Call as C-Node
    • Call as dirty-nif
    • Target tests
    • Feature tests
    • Package test
  • Features
    • Serialize any string with valid or broken html
    • Pretty print html
    • Clean and repair
    • Run diagnostics
    • Transform html string by list of actions
  • Documentation
  • Publish as hex package

Icon Credit

Broom by faisalovers from the Noun Project