Skip to main content

CHANGELOG.md

# Changelog

## 1.5.1

- Fix compatibility & compiler warnings with Elixir 1.20.0-rc.5
- Add justify keyword to CSS scrubber

## 1.5.0


### New API for Custom Scrubbers

Instead of importing and requiring `HtmlSanitizeEx.Scrubber.Meta`, just use `HtmlSanitizeEx`:

```elixir
defmodule MyScrubber do
  use HtmlSanitizeEx

  allow_tag_with_these_attributes("p", ["title"])
end
```

Using `HtmlSanitizeEx` also creates a `sanitize/1` function in the module, so you can just call `MyScrubber.sanitize(html)`.


`allow_tag_with_these_attributes/3` is taking a `do` block, which allows specific handling of `attribute`/`value` pairs:

```elixir
defmodule MyScrubber do
  use HtmlSanitizeEx

  allow_tag_with_these_attributes("p", ["title"]) do
    {"class", value} when value in ["red", "green", "blue"] ->
      {"class", value}
  end
end
```

The handler either returns a `{attribute, value}` pair or `nil` to scrub the value.


### Extending existing Scrubbers

`HtmlSanitizeEx` can also be used for extending existing scrubbers:

```elixir
defmodule MyScrubber do
  use HtmlSanitizeEx, extend: :basic_html

  allow_tag_with_these_attributes("p", ["title"])
end
```

You can extend `:basic_html`, `:html5`, `:markdown_html` and `:strip_tags`.

You can also extend any custom scrubber you created:

```elixir
defmodule MyOtherScrubber do
  use HtmlSanitizeEx, extend: MyScrubber

  allow_tag_with_these_attributes("p", ["class"])
end
```

The result is a scrubber that works like the built-in BasicHTML scrubber, but also allows `class` and `title` attributes on `<p>` tags.

## 1.4.4

- Fix compatibility & compiler warnings with Elixir 1.19
- Update `mochiweb` to version 3.2.2 in `mix.lock` for OTP 27 compatibility
- Add missing `<details>` tag to `HTML5` scrubber

## 1.4.3

- Allow `mochiweb` dep to be `~> 2.15 or ~> 3.1`

## 1.4.2

- Fix regression when parsing schemes from URIs
- Fix compiler warnings
- Add missing `<body>` tag to `HTML5` scrubber

## 1.4.1

- Add missing `<h6>` tag to `BasicHTML` and `MarkdownHTML` scrubbers

## 1.4.0

- Add more missing HTML5 attributes
- Add "middle" to valid CSS keywords

## 1.3.0

- Add valid scheme for links: `mailto`
- Update white-space handling in order to keep more of it untouched

## 1.2.0

- Update `mochiweb` version requirement
- Fix missing elements in HTML5: div, caption

## 1.1.1

- Fix missing element in HTML5: blockquote

## 1.1.0

- Add new scrubber: MarkdownHTML

  It is meant to scrub HTML that resulted from converting Markdown to HTML. It
  supports GitHub flavored Markdown (GFM).

## 1.0.1

- Fix Elixir 1.3 compiler warnings

## 1.0.0

- First release