View Source Readability (readability v0.12.1)

Readability library for extracting & curating articles.

Example

@type html :: binary

# Just pass url
%Readability.Summary{title: title, authors: authors, article_html: article} = Readability.summarize(url)

# Extract title
Readability.title(html)

# Extract authors.
Readability.authors(html)

# Extract only text from article
article = html
          |> Readability.article
          |> Readability.readable_text

# Extract article with transformed html
article = html
          |> Readability.article
          |> Readability.raw_html

Summary

Functions

Using a variety of metrics (content score, classname, element types), find the content that is most likely to be the stuff a user wants to read.

Extract authors.

Returns true if Content-Type in provided headers list is a markup type, else false.

Extract MIME Type from headers.

parse(raw_html) deprecated

Returns raw HTML binary from html_tree.

Returns attributes, tags cleaned HTML.

Returns only text binary from html_tree.

Summarize the primary readable content of a webpage.

Extract title

Types

@type headers() :: list()[tuple()]
@type html_tree() :: tuple() | list()
@type options() :: list()
@type raw_html() :: binary()
@type url() :: binary()

Functions

Link to this function

article(raw_html, opts \\ [])

View Source
@spec article(binary(), options()) :: html_tree()

Using a variety of metrics (content score, classname, element types), find the content that is most likely to be the stuff a user wants to read.

Example

iex> article_tree = Redability(html_str)
# returns article that is tuple
@spec authors(binary() | html_tree()) :: list()[binary()]

Extract authors.

Example

iex> authors = Readability.authors(html_str)
["José Valim", "chrismccord"]
Link to this function

is_response_markup(headers)

View Source
@spec is_response_markup(headers()) :: boolean()

Returns true if Content-Type in provided headers list is a markup type, else false.

Example

iex> Readability.is_response_markup?([{"Content-Type", "text/html"}])
true
@spec mime(headers()) :: String.t()

Extract MIME Type from headers.

Example

iex> mime = Readability.mime(headers_list)
"text/html"
This function is deprecated. Use `Floki.parse_document/1` or `Floki.parse_fragment/1` instead..
@spec raw_html(html_tree()) :: binary()

Returns raw HTML binary from html_tree.

Link to this function

readable_html(html_tree)

View Source
@spec readable_html(html_tree()) :: binary()

Returns attributes, tags cleaned HTML.

Link to this function

readable_text(html_tree)

View Source
@spec readable_text(html_tree()) :: binary()

Returns only text binary from html_tree.

Link to this function

summarize(url, opts \\ [])

View Source
@spec summarize(url(), options()) :: Readability.Summary.t()

Summarize the primary readable content of a webpage.

@spec title(binary() | html_tree()) :: binary()

Extract title

Example

iex> title = Readability.title(html_str)
"Some title in html"