Packages
indieweb
0.0.63
0.0.66
0.0.65
0.0.64
0.0.63
0.0.62
0.0.61
0.0.60
0.0.59
0.0.58
0.0.56
0.0.55
0.0.54
0.0.53
0.0.51
0.0.50
0.0.49
0.0.48
0.0.47
0.0.46
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.3
0.0.2
0.0.1
Collection of common IndieWeb utilites like authorship resolution, Webmention, post type discovery and IndieAuth.
Current section
Files
Jump to
Current section
Files
lib/indieweb/url.ex
defmodule IndieWeb.URL do
@doc "Transforms a string into a valid URL."
@spec canonalize(binary()) :: binary()
def canonalize(url)
def canonalize(url) when is_binary(url) do
url |> URI.parse() |> canonalize
end
def canonalize(%URI{path: nil} = url) do
url |> URI.merge("/") |> canonalize
end
def canonalize(%URI{} = url) do
URI.to_string(url)
end
@doc "Resolves any redirection on the provided URL."
@spec resolve_redirect(binary()) :: binary()
def resolve_redirect(url) do
case IndieWeb.Http.get(url) do
{:ok, %{url: resolved_url}} -> resolved_url
_ -> url
end
end
end