Premailex v0.3.7 Premailex.Util View Source
Module that contains utility functions.
Link to this section Summary
Functions
Traverses tree searching for needle, and will call provided function on any occurances.
Traverse all trees in array searching for needle, and will call function with element and number times needle has been found so far.
Traverses tree until first match for needle.
Link to this section Types
Link to this type
html_tree()
View Source
html_tree()
View Source
html_tree() :: Premailex.HTMLParser.html_tree()
html_tree() :: Premailex.HTMLParser.html_tree()
Link to this type
needle() View Source
Link to this section Functions
Link to this function
traverse(html, needles, fun) View Source
Traverses tree searching for needle, and will call provided function on any occurances.
If the function returns {:halt, any}, traverse will stop, and result will be {:halt, html_tree}.
Examples
iex> Premailex.Util.traverse({"div", [], [{"p", [], ["First paragraph"]}, {"p", [], ["Second paragraph"]}]}, "p", fn {name, attrs, _children} -> {name, attrs, ["Updated"]} end)
{"div", [], [{"p", [], ["Updated"]}, {"p", [], ["Updated"]}]}
iex> Premailex.Util.traverse({"div", [], [{"p", [], ["First paragraph"]}, {"p", [], ["Second paragraph"]}]}, {"p", [], ["Second paragraph"]}, fn {name, attrs, _children} -> {name, attrs, ["Updated"]} end)
{"div", [], [{"p", [], ["First paragraph"]}, {"p", [], ["Updated"]}]}
Link to this function
traverse_reduce(children, needle, fun) View Source
Traverse all trees in array searching for needle, and will call function with element and number times needle has been found so far.
Examples
iex> Premailex.Util.traverse_reduce([{"p", [], ["First paragraph"]}, {"p", [], ["Second paragraph"]}], "p", fn({name, attrs, _children}, acc) -> {name, attrs, ["Updated " <> to_string(acc)]} end)
{[{"p", [], ["Updated 0"]}, {"p", [], ["Updated 1"]}], 2}
Link to this function
traverse_until_first(html, needle, fun) View Source
Traverses tree until first match for needle.
Examples
iex> Premailex.Util.traverse_until_first({"div", [], [{"p", [], ["First paragraph"]}, {"p", [], ["Second paragraph"]}]}, "p", fn {name, attrs, _children} -> {name, attrs, ["Updated"]} end)
{"div", [], [{"p", [], ["Updated"]}, {"p", [], ["Second paragraph"]}]}