forked from AkkomaGang/akkoma
Add Formatter.
This commit is contained in:
parent
70024632ba
commit
dcfd494e97
2 changed files with 41 additions and 0 deletions
13
lib/pleroma/formatter.ex
Normal file
13
lib/pleroma/formatter.ex
Normal file
|
@ -0,0 +1,13 @@
|
|||
defmodule Pleroma.Formatter do
|
||||
|
||||
@link_regex ~r/https?:\/\/[\w\.\/?=\-#]+[\w]/
|
||||
def linkify(text) do
|
||||
Regex.replace(@link_regex, text, "<a href='\\0'>\\0</a>")
|
||||
end
|
||||
|
||||
@tag_regex ~r/\#\w+/u
|
||||
def parse_tags(text) do
|
||||
Regex.scan(@tag_regex, text)
|
||||
|> Enum.map(fn (["#" <> tag = full_tag]) -> {full_tag, tag} end)
|
||||
end
|
||||
end
|
28
test/formatter_test.exs
Normal file
28
test/formatter_test.exs
Normal file
|
@ -0,0 +1,28 @@
|
|||
defmodule Pleroma.FormatterTest do
|
||||
alias Pleroma.Formatter
|
||||
use Pleroma.DataCase
|
||||
|
||||
describe ".linkify" do
|
||||
test "turning urls into links" do
|
||||
text = "Hey, check out https://www.youtube.com/watch?v=8Zg1-TufFzY."
|
||||
|
||||
expected = "Hey, check out <a href='https://www.youtube.com/watch?v=8Zg1-TufFzY'>https://www.youtube.com/watch?v=8Zg1-TufFzY</a>."
|
||||
|
||||
assert Formatter.linkify(text) == expected
|
||||
end
|
||||
end
|
||||
|
||||
describe ".parse_tags" do
|
||||
test "parses tags in the text" do
|
||||
text = "Here's a #test. Maybe these are #working or not. What about #漢字? And #は。"
|
||||
expected = [
|
||||
{"#test", "test"},
|
||||
{"#working", "working"},
|
||||
{"#漢字", "漢字"},
|
||||
{"#は", "は"}
|
||||
]
|
||||
|
||||
assert Formatter.parse_tags(text) == expected
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue