typo fix
authorAlexander Strizhakov <alex.strizhakov@gmail.com>
Fri, 19 Apr 2019 07:50:21 +0000 (07:50 +0000)
committerlambda <lain@soykaf.club>
Fri, 19 Apr 2019 07:50:21 +0000 (07:50 +0000)
docs for RelMe provider

CHANGELOG.md
README.md
config/config.exs
docs/config.md
lib/pleroma/web/metadata/rel_me.ex [new file with mode: 0644]
test/web/metadata/rel_me_test.exs [new file with mode: 0644]

index 21ad83a01d1ab3f086ba772d3f9bf0b495604dd9..c90ff61cd670a439926dae1f22b6a1d6309fe018 100644 (file)
@@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Mastodon API: `/api/v1/notifications/destroy_multiple` (glitch-soc extension)
 - Mastodon API: [Reports](https://docs.joinmastodon.org/api/rest/reports/)
 - ActivityPub C2S: OAuth endpoints
+- Metadata RelMe provider
 
 ### Changed
 - **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer
index c45190fc301b10979fb4ba2d1232c106980b7af0..987f973ea9808ac290090b25ee620ae35ab88b82 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Pleroma
 
-**Note**: This readme as well as complete documentation is also availible at <https://docs-develop.pleroma.social>
+**Note**: This readme as well as complete documentation is also available at <https://docs-develop.pleroma.social>
 
 ## About Pleroma
 
index 595e3505cdd8f8cf6bd3d66d2c0423be244af049..1114dc84de811cdc2e7e235684269a935c0a6ce0 100644 (file)
@@ -337,7 +337,9 @@ config :pleroma, :gopher,
   ip: {0, 0, 0, 0},
   port: 9999
 
-config :pleroma, Pleroma.Web.Metadata, providers: [], unfurl_nsfw: false
+config :pleroma, Pleroma.Web.Metadata,
+  providers: [Pleroma.Web.Metadata.Providers.RelMe],
+  unfurl_nsfw: false
 
 config :pleroma, :suggestions,
   enabled: false,
index d618c5ddee1aaca75583f904d0c0eea86560718a..5a97033b203cbca7726836774f9c3a849979f420 100644 (file)
@@ -343,9 +343,10 @@ This config contains two queues: `federator_incoming` and `federator_outgoing`.
 * `max_retries`: The maximum number of times a federation job is retried
 
 ## Pleroma.Web.Metadata
-* `providers`: a list of metadata providers to enable. Providers availible:
+* `providers`: a list of metadata providers to enable. Providers available:
   * Pleroma.Web.Metadata.Providers.OpenGraph
   * Pleroma.Web.Metadata.Providers.TwitterCard
+  * Pleroma.Web.Metadata.Providers.RelMe - add links from user bio with rel=me into the `<header>` as `<link rel=me>`
 * `unfurl_nsfw`: If set to `true` nsfw attachments will be shown in previews
 
 ## :rich_media
diff --git a/lib/pleroma/web/metadata/rel_me.ex b/lib/pleroma/web/metadata/rel_me.ex
new file mode 100644 (file)
index 0000000..03af899
--- /dev/null
@@ -0,0 +1,13 @@
+defmodule Pleroma.Web.Metadata.Providers.RelMe do
+  alias Pleroma.Web.Metadata.Providers.Provider
+  @behaviour Provider
+
+  @impl Provider
+  def build_tags(%{user: user}) do
+    (Floki.attribute(user.bio, "link[rel~=me]", "href") ++
+       Floki.attribute(user.bio, "a[rel~=me]", "href"))
+    |> Enum.map(fn link ->
+      {:link, [rel: "me", href: link], []}
+    end)
+  end
+end
diff --git a/test/web/metadata/rel_me_test.exs b/test/web/metadata/rel_me_test.exs
new file mode 100644 (file)
index 0000000..f66bf78
--- /dev/null
@@ -0,0 +1,18 @@
+defmodule Pleroma.Web.Metadata.Providers.RelMeTest do
+  use Pleroma.DataCase
+  import Pleroma.Factory
+  alias Pleroma.Web.Metadata.Providers.RelMe
+
+  test "it renders all links with rel='me' from user bio" do
+    bio =
+      ~s(<a href="https://some-link.com">https://some-link.com</a> <a rel="me" href="https://another-link.com">https://another-link.com</a>
+    <link href="http://some.com"> <link rel="me" href="http://some3.com>")
+
+    user = insert(:user, %{bio: bio})
+
+    assert RelMe.build_tags(%{user: user}) == [
+             {:link, [rel: "me", href: "http://some3.com>"], []},
+             {:link, [rel: "me", href: "https://another-link.com"], []}
+           ]
+  end
+end