mellie

Values

pub fn attr(
  el: element.ElementTree,
  key: String,
) -> Result(String, Nil)
pub fn attribute(name: a, value: b) -> #(a, b)
pub fn attrs(
  tree: element.ElementTree,
) -> List(#(String, String))

Gets attributes of the given element. TextNodes will return []

pub fn children(
  tree: element.ElementTree,
) -> List(element.ElementTree)

Gets the children of an element. TextNodes will return []

pub fn data_attr(
  el: element.ElementTree,
  data_key: String,
) -> Result(String, Nil)
pub fn element(
  tag: String,
  attributes: List(#(String, String)),
  children: List(element.ElementTree),
) -> element.ElementTree
pub fn element_to_string(el: element.ElementTree) -> String
pub fn element_to_string_pretty(
  el: element.ElementTree,
) -> String

This is useful for tests but is not context dependant and may be incorrect in cases where internal HTML depends on formatting (e.g. pre > span). Uses presentable_soup under the hood

pub fn element_to_xml_document_string(
  el: element.ElementTree,
) -> String
pub fn element_to_xml_string(el: element.ElementTree) -> String
pub fn elements_to_string(
  el: List(element.ElementTree),
) -> String
pub fn elements_to_string_pretty(
  el: List(element.ElementTree),
) -> String

This is useful for tests but is not context dependant and may be incorrect in cases where internal HTML depends on formatting (e.g. pre > span). Uses presentable_soup under the hood

pub fn find_all(
  from in: a,
  with fun: fn(a) -> List(a),
) -> List(a)

Runs the given function recursively over the result until it no longer results in items. Returns the found nodes from every level

pub fn find_leaf(
  from in: a,
  with fun: fn(a) -> List(a),
) -> List(a)

Runs the given function recursively over the result until it no longer returns items. Returns only the deepest matching nodes

pub fn get_child_by_tag(
  tree: element.ElementTree,
  tag: String,
) -> Result(element.ElementTree, Nil)
pub fn get_children_by_tag(
  tree: element.ElementTree,
  tag: String,
) -> List(element.ElementTree)

Gets children with the given tag up to one level of results. Use with find_all to recurse further into returned elements

pub fn has_tag(tree: element.ElementTree, tag: String) -> Bool
pub fn inner_text(el: element.ElementTree) -> String

Recursively get all text from given element

pub fn parse(
  html str: String,
) -> Result(element.ElementTree, String)
pub fn remove_attribute(
  el: element.ElementTree,
  attr: String,
) -> element.ElementTree

Removes attribute on an ElementNode, does not modify a TextNode

pub fn remove_attributes(
  el: element.ElementTree,
  attrs: List(String),
) -> element.ElementTree

Removes attributes on an ElementNode, does not modify a TextNode

pub fn set_attribute(
  el: element.ElementTree,
  attr: #(String, String),
) -> element.ElementTree

Sets attributes on an ElementNode, does not modify a TextNode

pub fn set_attributes(
  el: element.ElementTree,
  attr: List(#(String, String)),
) -> element.ElementTree

Sets attributes on an ElementNode, does not modify a TextNode

pub fn tag(tree: element.ElementTree) -> option.Option(String)

Gets tag of the given element. TextNodes will return None

pub fn text(text: String) -> element.ElementTree
pub fn to_document_string(el: element.ElementTree) -> String
pub fn transform_tree(
  tree: element.ElementTree,
  elem: fn(String, List(#(String, String)), List(a)) -> a,
  text: fn(String) -> a,
) -> a

Transforms a tree recursively using the given element and text conversion functions

pub fn update_where(
  from in: element.ElementTree,
  where should_visit: fn(element.ElementTree) -> Bool,
  with update: fn(element.ElementTree) -> element.ElementTree,
) -> element.ElementTree
pub fn update_where_tag(
  from in: element.ElementTree,
  tag tag: String,
  with update: fn(element.ElementTree) -> element.ElementTree,
) -> element.ElementTree
Search Document