diff --git a/lib/linkify/parser.ex b/lib/linkify/parser.ex
index f6df7a3..8a6296e 100644
--- a/lib/linkify/parser.ex
+++ b/lib/linkify/parser.ex
@@ -94,13 +94,19 @@ defmodule Linkify.Parser do
) do
{buffer, user_acc} = link(buffer, opts, user_acc)
- case Regex.run(@match_skipped_tag, text, capture: [:tag]) do
+ buffer =
+ case buffer do
+ [_, _, _] -> Enum.join(buffer)
+ _ -> buffer
+ end
+
+ case Regex.run(@match_skipped_tag, buffer, capture: [:tag]) do
[tag] ->
text = String.trim_leading(text, tag)
do_parse({text, user_acc}, opts, {"", accumulate(acc, buffer, "<#{tag}"), :skip})
nil ->
- do_parse({text, user_acc}, opts, {"<", acc, {:open, 1}})
+ do_parse({text, user_acc}, opts, {"<", accumulate(acc, buffer, ""), {:open, 1}})
end
end
diff --git a/test/linkify_test.exs b/test/linkify_test.exs
index 5f01fdb..126e0ea 100644
--- a/test/linkify_test.exs
+++ b/test/linkify_test.exs
@@ -179,6 +179,32 @@ defmodule LinkifyTest do
assert MapSet.to_list(tags) == ["#hello", "#world"]
+ text = "#justOne"
+
+ {result_text, %{tags: _tags}} =
+ Linkify.link_map(text, %{tags: MapSet.new()},
+ hashtag: true,
+ hashtag_handler: handler,
+ hashtag_prefix: "https://example.com/user/",
+ rel: false
+ )
+
+ assert result_text ==
+ "#justOne"
+
+ text = "#justOne."
+
+ {result_text, %{tags: _tags}} =
+ Linkify.link_map(text, %{tags: MapSet.new()},
+ hashtag: true,
+ hashtag_handler: handler,
+ hashtag_prefix: "https://example.com/user/",
+ rel: false
+ )
+
+ assert result_text ==
+ "#justOne."
+
text = "#cofe
Source"
{_result_text, %{tags: tags}} =