Packages
floki
0.35.4
0.38.4
0.38.3
0.38.2
0.38.1
0.38.0
0.37.1
0.37.0
0.36.3
0.36.2
0.36.1
0.36.0
0.35.4
0.35.3
0.35.2
0.35.1
0.35.0
0.34.3
0.34.2
0.34.1
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.1
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Floki is a simple HTML parser that enables search for nodes using CSS selectors.
Current section
Files
Jump to
Current section
Files
lib/floki/html_parser/fast_html.ex
defmodule Floki.HTMLParser.FastHtml do
@behaviour Floki.HTMLParser
@moduledoc false
@impl true
def parse_document(html, args) do
execute_with_module(fn module -> module.decode(IO.chardata_to_string(html), args) end)
end
@impl true
def parse_fragment(html, args) do
execute_with_module(fn module -> module.decode_fragment(IO.chardata_to_string(html), args) end)
end
@impl true
def parse_document_with_attributes_as_maps(_html, _args) do
raise "parsing with attributes as maps is not supported yet for FastHTML"
end
@impl true
def parse_fragment_with_attributes_as_maps(_html, _args) do
raise "parsing with attributes as maps is not supported yet for FastHTML"
end
defp execute_with_module(fun) do
case Code.ensure_loaded(:fast_html) do
{:module, module} ->
case fun.(module) do
{:ok, result} ->
{:ok, result}
{:error, _message} = error ->
error
end
{:error, _reason} ->
raise "Expected module :fast_html to be available."
end
end
end