Merge branch 'feature/805-server-rendered-rel-me-links' into 'develop'
Feature/805 server rendered rel me links Closes #805 See merge request pleroma/pleroma!1063
This commit is contained in:
commit
cc93775ebf
6 changed files with 38 additions and 3 deletions
|
@ -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: `/api/v1/notifications/destroy_multiple` (glitch-soc extension)
|
||||||
- Mastodon API: [Reports](https://docs.joinmastodon.org/api/rest/reports/)
|
- Mastodon API: [Reports](https://docs.joinmastodon.org/api/rest/reports/)
|
||||||
- ActivityPub C2S: OAuth endpoints
|
- ActivityPub C2S: OAuth endpoints
|
||||||
|
- Metadata RelMe provider
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer
|
- **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Pleroma
|
# 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
|
## About Pleroma
|
||||||
|
|
||||||
|
|
|
@ -337,7 +337,9 @@
|
||||||
ip: {0, 0, 0, 0},
|
ip: {0, 0, 0, 0},
|
||||||
port: 9999
|
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,
|
config :pleroma, :suggestions,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -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
|
* `max_retries`: The maximum number of times a federation job is retried
|
||||||
|
|
||||||
## Pleroma.Web.Metadata
|
## 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.OpenGraph
|
||||||
* Pleroma.Web.Metadata.Providers.TwitterCard
|
* 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
|
* `unfurl_nsfw`: If set to `true` nsfw attachments will be shown in previews
|
||||||
|
|
||||||
## :rich_media
|
## :rich_media
|
||||||
|
|
13
lib/pleroma/web/metadata/rel_me.ex
Normal file
13
lib/pleroma/web/metadata/rel_me.ex
Normal file
|
@ -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
|
18
test/web/metadata/rel_me_test.exs
Normal file
18
test/web/metadata/rel_me_test.exs
Normal file
|
@ -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
|
Loading…
Reference in a new issue