forked from mirrors/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