Packages
indieweb
0.0.54
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/app/microformats.ex
defmodule IndieWeb.App.Microformats do
@behaviour IndieWeb.App.Parser
@moduledoc false
alias IndieWeb.MF2
@impl true
def resolve(uri) do
with(
{:ok, page_mf2} <- MF2.Remote.fetch(uri),
{:ok, app_mf2} <- MF2.get_item_for_url(page_mf2, uri)
) do
formatted_properties = app_mf2
|> Map.get("properties", %{})
|> Map.take(~w(name logo url))
|> Enum.map(fn {key, value} -> {key, List.last(value)} end)
|> Map.new
{:ok, formatted_properties}
else
_ -> {:error, :failed_to_fetch_h_x_app_data}
end
end
@impl true
def clear(_), do: :ok
end