diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4bc73be..256bea6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
## [Unreleased]
+### Added
+
+- Support for linking URLs with FQDNs (e.g., "google.com.")
+
## 0.3.0 - 2020-11-17
### Added
diff --git a/lib/linkify/parser.ex b/lib/linkify/parser.ex
index 64d08db..d329e37 100644
--- a/lib/linkify/parser.ex
+++ b/lib/linkify/parser.ex
@@ -247,7 +247,7 @@ defmodule Linkify.Parser do
true
true ->
- tld = host |> String.split(".") |> List.last()
+ tld = host |> String.trim_trailing(".") |> String.split(".") |> List.last()
MapSet.member?(@tlds, tld)
end
end
diff --git a/test/linkify_test.exs b/test/linkify_test.exs
index 73ff6d0..2568052 100644
--- a/test/linkify_test.exs
+++ b/test/linkify_test.exs
@@ -657,5 +657,24 @@ defmodule LinkifyTest do
assert Linkify.link(text) == expected
end
+
+ test "FQDN (with trailing period)" do
+ text =
+ "Check out this article: https://www.wired.com./story/marissa-mayer-startup-sunshine-contacts/"
+
+ expected =
+ "Check out this article: https://www.wired.com./story/marissa-mayer-startup-sunshine-contacts/"
+
+ assert Linkify.link(text) == expected
+ end
+
+ test "Does not link trailing punctuation" do
+ text = "You can find more info at https://pleroma.social."
+
+ expected =
+ "You can find more info at https://pleroma.social."
+
+ assert Linkify.link(text) == expected
+ end
end
end