add support for bbcode
This commit is contained in:
parent
2bd880be88
commit
501af917b5
@ -221,7 +221,8 @@ config :pleroma, :instance,
|
|||||||
allowed_post_formats: [
|
allowed_post_formats: [
|
||||||
"text/plain",
|
"text/plain",
|
||||||
"text/html",
|
"text/html",
|
||||||
"text/markdown"
|
"text/markdown",
|
||||||
|
"text/bbcode"
|
||||||
],
|
],
|
||||||
mrf_transparency: true,
|
mrf_transparency: true,
|
||||||
autofollowed_nicknames: [],
|
autofollowed_nicknames: [],
|
||||||
|
@ -182,6 +182,18 @@ defmodule Pleroma.Web.CommonAPI.Utils do
|
|||||||
end).()
|
end).()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Formatting text as BBCode.
|
||||||
|
"""
|
||||||
|
def format_input(text, "text/bbcode", options) do
|
||||||
|
text
|
||||||
|
|> String.replace(~r/\r/, "")
|
||||||
|
|> Formatter.html_escape("text/plain")
|
||||||
|
|> BBCode.to_html()
|
||||||
|
|> (fn {:ok, html} -> html end).()
|
||||||
|
|> Formatter.linkify(options)
|
||||||
|
end
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Formatting text to html.
|
Formatting text to html.
|
||||||
"""
|
"""
|
||||||
|
@ -119,6 +119,22 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do
|
|||||||
assert output == expected
|
assert output == expected
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "works for bare text/bbcode" do
|
||||||
|
text = "[b]hello world[/b]"
|
||||||
|
expected = "<strong>hello world</strong>"
|
||||||
|
|
||||||
|
{output, [], []} = Utils.format_input(text, "text/bbcode")
|
||||||
|
|
||||||
|
assert output == expected
|
||||||
|
|
||||||
|
text = "[b]hello world![/b]\n\nsecond paragraph!"
|
||||||
|
expected = "<strong>hello world!</strong><br><br>second paragraph!"
|
||||||
|
|
||||||
|
{output, [], []} = Utils.format_input(text, "text/bbcode")
|
||||||
|
|
||||||
|
assert output == expected
|
||||||
|
end
|
||||||
|
|
||||||
test "works for text/markdown with mentions" do
|
test "works for text/markdown with mentions" do
|
||||||
{:ok, user} =
|
{:ok, user} =
|
||||||
UserBuilder.insert(%{nickname: "user__test", ap_id: "http://foo.com/user__test"})
|
UserBuilder.insert(%{nickname: "user__test", ap_id: "http://foo.com/user__test"})
|
||||||
|
Loading…
Reference in New Issue
Block a user