Skip to content
Snippets Groups Projects
Commit 270c9032 authored by lain's avatar lain
Browse files

Add tag links.

parent bd100fd7
No related branches found
No related tags found
No related merge requests found
......@@ -56,9 +56,9 @@ defmodule Pleroma.Web.CommonAPI do
mentions <- Formatter.parse_mentions(status),
inReplyTo <- get_replied_to_activity(data["in_reply_to_status_id"]),
to <- to_for_user_and_mentions(user, mentions, inReplyTo),
content_html <- make_content_html(status, mentions, attachments),
context <- make_context(inReplyTo),
tags <- Formatter.parse_tags(status),
content_html <- make_content_html(status, mentions, attachments, tags),
context <- make_context(inReplyTo),
object <- make_note_data(user.ap_id, to, context, content_html, attachments, inReplyTo, tags) do
res = ActivityPub.create(to, user, context, object)
User.update_note_count(user)
......
......@@ -38,9 +38,9 @@ defmodule Pleroma.Web.CommonAPI.Utils do
end
end
def make_content_html(status, mentions, attachments) do
def make_content_html(status, mentions, attachments, tags) do
status
|> format_input(mentions)
|> format_input(mentions, tags)
|> add_attachments(attachments)
end
......@@ -57,11 +57,22 @@ defmodule Pleroma.Web.CommonAPI.Utils do
Enum.join([text | attachment_text], "<br>\n")
end
def format_input(text, mentions) do
def format_input(text, mentions, tags) do
HtmlSanitizeEx.strip_tags(text)
|> Formatter.linkify
|> String.replace("\n", "<br>\n")
|> add_user_links(mentions)
|> add_tag_links(tags)
end
def add_tag_links(text, tags) do
tags = tags
|> Enum.sort_by(fn ({tag, _}) -> -String.length(tag) end)
Enum.reduce(tags, text, fn({full, tag}, text) ->
url = "#<a href='#{Pleroma.Web.base_url}/tag/#{tag}' rel='tag'>#{tag}</a>"
String.replace(text, full, url)
end)
end
def add_user_links(text, mentions) do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment