ModestEx v0.0.7-dev ModestEx

This module exposes features to do pipeable transformations on html strings with CSS selectors, e.g. find(), prepend(), append(), replace() etc.

Credits:

The package implements bindings to Alexander Borisov’s Modest. The binding is implemented as a C-Node based on the excellent example of Lukas Rieder’s cnodex and myhtmlex.

Example

iex> ModestEx.find(“

Hello World

”, “p a”) [“Hello”]

Link to this section Summary

Functions

Append new html as a child at the end of selected node. Returns updated html string

Find nodes with a CSS selector. Returns the outer html of each node as a list of strings

Get all attributes with key. Returns list of strings

Get all text. Returns list of strings

Insert new html after selected node. Returns updated html string

Insert new html before selected node. Returns updated html string

Prepend new html as a child at the beginning of selected node. Returns updated html string

Remove nodes with a CSS selector. Returns updated html string

Replace selected node with new html Returns updated html string

Serialize any string with valid or broken html. Returns valid html string

Set value for all attributes with key. Returns single html string or returns list of strings

Set text for all nodes. Returns single html string or returns list of strings

Link to this section Types

Link to this type error()
error() :: {:error, String.t()}
Link to this type input()
input() :: String.t() | [String.t()]
Link to this type success()
success() :: String.t() | [String.t()]

Link to this section Functions

Link to this function append(bin, selector, new_bin)
append(input(), String.t(), String.t()) :: success() | error()

Append new html as a child at the end of selected node. Returns updated html string

Examples

iex> ModestEx.append(“

Hello

”, “div”, “

World

”) “

Hello

World

Link to this function find(bin, selector)
find(input(), String.t()) :: success() | error()

Find nodes with a CSS selector. Returns the outer html of each node as a list of strings.

Examples

iex> ModestEx.find(“

Hello World

”, “p a”) [“Hello”]

iex> ModestEx.find(“

Hello World

”, “span”) [“Hello”, “World”]

Link to this function get_attribute(bin, key)
get_attribute(input(), String.t()) :: success() | error()

Get all attributes with key. Returns list of strings.

Examples

iex> ModestEx.get_attribute(“Hello”, “href”) [“https://elixir-lang.org”]

Link to this function get_attribute(bin, selector, key)
get_attribute(input(), String.t(), String.t()) :: success() | error()
Link to this function get_text(bin)
get_text(input()) :: success() | error()

Get all text. Returns list of strings.

Examples

iex> ModestEx.get_text(“

Hello World
”) [“Hello World”]

Link to this function get_text(bin, selector)
get_text(input(), String.t()) :: success() | error()
Link to this function insert_after(bin, selector, new_bin)
insert_after(input(), String.t(), String.t()) :: success() | error()

Insert new html after selected node. Returns updated html string

Examples

iex> ModestEx.insert_after(“

Hello

”, “div p”, “

World

”) “

Hello

World

Link to this function insert_before(bin, selector, new_bin)
insert_before(input(), String.t(), String.t()) :: success() | error()

Insert new html before selected node. Returns updated html string

Examples

iex> ModestEx.insert_before(“

World

”, “div p”, “

Hello

”) “

Hello

World

Link to this function prepend(bin, selector, new_bin)
prepend(input(), String.t(), String.t()) :: success() | error()

Prepend new html as a child at the beginning of selected node. Returns updated html string

Examples

iex> ModestEx.prepend(“

World

”, “div”, “

Hello

”) “

Hello

World

Link to this function remove(bin, selector)
remove(input(), String.t()) :: success() | error()

Remove nodes with a CSS selector. Returns updated html string

Examples

iex> ModestEx.remove(“

Hello

World
”, “div p”) “
World

Link to this function replace(bin, selector, new_bin)
replace(input(), String.t(), String.t()) :: success() | error()

Replace selected node with new html Returns updated html string

Examples

iex> ModestEx.replace(“

Hello

”, “div p”, “

World

”) “

World

Link to this function serialize(bin)
serialize(input()) :: success() | error()

Serialize any string with valid or broken html. Returns valid html string.

Examples

iex> ModestEx.serialize(“

HelloWorld”) “
HelloWorld

Link to this function set_attribute(bin, key, value)
set_attribute(input(), String.t(), input()) :: success() | error()

Set value for all attributes with key. Returns single html string or returns list of strings.

Examples

iex> ModestEx.set_attribute(“Hello”, “href”, “https://elixir-lang.org”) “Hello

Link to this function set_attribute(bin, selector, key, value)
set_attribute(input(), String.t(), String.t(), input()) :: success() | error()
Link to this function set_text(bin, text)
set_text(input(), input()) :: success() | error()

Set text for all nodes. Returns single html string or returns list of strings.

Examples

iex> ModestEx.set_text(“

”, “div p”, “Hello World”) “

Hello World

Link to this function set_text(bin, selector, text)
set_text(input(), String.t(), input()) :: success() | error()