Skip to content
Snippets Groups Projects
Commit dcfd494e authored by lain's avatar lain
Browse files

Add Formatter.

parent 70024632
No related branches found
No related tags found
No related merge requests found
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
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment