Browse Source

add support for bbcode

stable
William Pitcock 2 years ago
parent
commit
501af917b5
3 changed files with 30 additions and 1 deletions
  1. +2
    -1
      config/config.exs
  2. +12
    -0
      lib/pleroma/web/common_api/utils.ex
  3. +16
    -0
      test/web/common_api/common_api_utils_test.exs

+ 2
- 1
config/config.exs View File

@ -221,7 +221,8 @@ config :pleroma, :instance,
allowed_post_formats: [
"text/plain",
"text/html",
"text/markdown"
"text/markdown",
"text/bbcode"
],
mrf_transparency: true,
autofollowed_nicknames: [],


+ 12
- 0
lib/pleroma/web/common_api/utils.ex View File

@ -182,6 +182,18 @@ defmodule Pleroma.Web.CommonAPI.Utils do
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 """
Formatting text to html.
"""


+ 16
- 0
test/web/common_api/common_api_utils_test.exs View File

@ -119,6 +119,22 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do
assert output == expected
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
{:ok, user} =
UserBuilder.insert(%{nickname: "user__test", ap_id: "http://foo.com/user__test"})


Loading…
Cancel
Save