소스 검색

add support for bbcode

tags/v1.1.4
William Pitcock 5 년 전
부모
커밋
501af917b5
3개의 변경된 파일30개의 추가작업 그리고 1개의 파일을 삭제
  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 파일 보기

@@ -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 파일 보기

@@ -183,6 +183,18 @@ defmodule Pleroma.Web.CommonAPI.Utils do
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.
"""
def format_input(text, "text/html", options) do


+ 16
- 0
test/web/common_api/common_api_utils_test.exs 파일 보기

@@ -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"})


불러오는 중...
취소
저장