|
|
@@ -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 |
|
|
|