logo

auto_linker

AutoLinker-shim, based on https://git.pleroma.social/pleroma/auto_linker
commit: 8b9a6d4f8b3fb6504f1250fe593534e65f78da74
parent: 6cde5b3fad3d5fdf106fa7a1316371fd88b0bee9
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Wed, 27 Feb 2019 01:10:58 +0100

Do not strip the prefix

Diffstat:

Mlib/auto_linker.ex8++++----
Mlib/auto_linker/builder.ex2+-
Mtest/auto_linker_test.exs25+++++++++++--------------
3 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/lib/auto_linker.ex b/lib/auto_linker.ex @@ -8,13 +8,13 @@ defmodule AutoLinker do ## Examples iex> AutoLinker.link("google.com") - ~s(<a href="http://google.com" class="auto-linker" target="_blank" rel="noopener noreferrer">google.com</a>) + ~s(<a href="http://google.com" class="auto-linker" target="_blank" rel="noopener noreferrer">http://google.com</a>) iex> AutoLinker.link("google.com", new_window: false, rel: false) - ~s(<a href="http://google.com" class="auto-linker">google.com</a>) + ~s(<a href="http://google.com" class="auto-linker">http://google.com</a>) iex> AutoLinker.link("google.com", new_window: false, rel: false, class: false) - ~s(<a href="http://google.com">google.com</a>) + ~s(<a href="http://google.com">http://google.com</a>) iex> AutoLinker.link("[Google](http://google.com)", markdown: true, new_window: false, rel: false, class: false) ~s(<a href='http://google.com'>Google</a>) @@ -35,7 +35,7 @@ defmodule AutoLinker do * `new_window: true` - set to false to remove `target='_blank'` attribute * `scheme: false` - Set to true to link urls with schema `http://google` * `truncate: false` - Set to a number to truncate urls longer then the number. Truncated urls will end in `..` - * `strip_prefix: true` - Strip the scheme prefix + * `strip_prefix: false` - Strip the scheme prefix * `exclude_class: false` - Set to a class name when you don't want urls auto linked in the html of the give class * `exclude_id: false` - Set to an element id when you don't want urls auto linked in the html of the give element * `exclude_patterns: ["```"]` - Don't link anything between the the pattern diff --git a/lib/auto_linker/builder.ex b/lib/auto_linker/builder.ex @@ -55,7 +55,7 @@ defmodule AutoLinker.Builder do defp format_url(attrs, url, opts) do url = url - |> strip_prefix(Map.get(opts, :strip_prefix, true)) + |> strip_prefix(Map.get(opts, :strip_prefix, false)) |> truncate(Map.get(opts, :truncate, false)) attrs = format_attrs(attrs) diff --git a/test/auto_linker_test.exs b/test/auto_linker_test.exs @@ -30,17 +30,14 @@ defmodule AutoLinkerTest do test "all kinds of links" do text = - "hello google.com https://ddg.com 888 888-8888 user@email.com [google.com](http://google.com) irc:///mIRC" + "hello google.com https://ddg.com 888 888-8888 mailto:user@email.com [google.com](http://google.com)" expected = - "hello <a href=\"http://google.com\">google.com</a> <a href=\"https://ddg.com\">ddg.com</a> <a href=\"#\" class=\"phone-number\" data-phone=\"8888888888\">888 888-8888</a> <a href=\"mailto:user@email.com\">user@email.com</a> <a href='http://google.com'>google.com</a> <a href=\"irc:///mIRC\">irc:///mIRC</a>" + "hello <a href=\"http://google.com\">http://google.com</a> <a href=\"https://ddg.com\">https://ddg.com</a> 888 888-8888 <a href=\"mailto:user@email.com\">mailto:user@email.com</a> <a href='http://google.com'>http://google.com</a>" assert AutoLinker.link(text, - phone: true, markdown: true, - email: true, scheme: true, - extra: true, class: false, new_window: false, rel: false @@ -233,34 +230,34 @@ defmodule AutoLinkerTest do text = "Hey, check out http://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla ." expected = - "Hey, check out <a href=\"http://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla</a> ." + "Hey, check out <a href=\"http://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">http://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla</a> ." assert AutoLinker.link(text, scheme: true) == expected # no scheme text = "Hey, check out www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla ." - assert AutoLinker.link(text, scheme: true) == expected + assert AutoLinker.link(text, scheme: true) == text end test "hostname/@user" do text = "https://example.com/@user" expected = - "<a href=\"https://example.com/@user\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">example.com/@user</a>" + "<a href=\"https://example.com/@user\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">https://example.com/@user</a>" assert AutoLinker.link(text, scheme: true) == expected text = "https://example.com:4000/@user" expected = - "<a href=\"https://example.com:4000/@user\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">example.com:4000/@user</a>" + "<a href=\"https://example.com:4000/@user\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">https://example.com:4000/@user</a>" assert AutoLinker.link(text, scheme: true) == expected text = "https://example.com:4000/@user" expected = - "<a href=\"https://example.com:4000/@user\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">example.com:4000/@user</a>" + "<a href=\"https://example.com:4000/@user\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">https://example.com:4000/@user</a>" assert AutoLinker.link(text, scheme: true) == expected @@ -271,28 +268,28 @@ defmodule AutoLinkerTest do text = "http://www.cs.vu.nl/~ast/intel/" expected = - "<a href=\"http://www.cs.vu.nl/~ast/intel/\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">cs.vu.nl/~ast/intel/</a>" + "<a href=\"http://www.cs.vu.nl/~ast/intel/\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">http://www.cs.vu.nl/~ast/intel/</a>" assert AutoLinker.link(text, scheme: true) == expected text = "https://forum.zdoom.org/viewtopic.php?f=44&t=57087" expected = - "<a href=\"https://forum.zdoom.org/viewtopic.php?f=44&t=57087\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">forum.zdoom.org/viewtopic.php?f=44&t=57087</a>" + "<a href=\"https://forum.zdoom.org/viewtopic.php?f=44&t=57087\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">https://forum.zdoom.org/viewtopic.php?f=44&t=57087</a>" assert AutoLinker.link(text, scheme: true) == expected text = "https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul" expected = - "<a href=\"https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul</a>" + "<a href=\"https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul</a>" assert AutoLinker.link(text, scheme: true) == expected text = "https://en.wikipedia.org/wiki/Duff's_device" expected = - "<a href=\"https://en.wikipedia.org/wiki/Duff's_device\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">en.wikipedia.org/wiki/Duff's_device</a>" + "<a href=\"https://en.wikipedia.org/wiki/Duff's_device\" class=\"auto-linker\" target=\"_blank\" rel=\"noopener noreferrer\">https://en.wikipedia.org/wiki/Duff's_device</a>" assert AutoLinker.link(text, scheme: true) == expected end