# Webmentions
A [Webmention](https://indiewebcamp.com/Webmention) module for Elixir.
## Installation
This package is [available in Hex](https://hex.pm/packages/webmentions)
1. Add webmentions to your list of dependencies in `mix.exs`:
   ```elixir
   def deps do
     [{:webmentions, "~> 2.0.0"}]
   end
   ```
## Usage
Just call `Webmentions.send_webmentions("http://example.org/")` where
the URL is the URL of the source document:
    
    Webmentions.send_webmentions("http://example.org/", opts \\ [])
Options include:
  * `root_selector`: css class filtering the block where to look for links (default: `.h-entry`)
  * `reject_nofollow`: doesn't send webmention to links with `rel="nofollow"` attribute (default: `true`)
This will give you either
```elixir
{:ok, [%Webmentions.Response{}]}
```
where the list contains a list of response structures for each endpoint we sent a webmention to or
```elixir
{:error, reason}
```
If you already know the list of URL mentions, you can skip parsing the
source URL and send webmentions to all destinations URL (if they support it):
    destinations = ["http://example.org/", "http://other.org/"]
    Webmentions.send_webmentions_for_links("https://source.org", destinations)
It will behave as `Webmentions.send_webmentions/2` does.
## Dependencies
We need [Floki](https://github.com/philss/floki) for HTML parsing and
[Tesla](https://github.com/teamon/tesla) for HTTP communication.