do not link inside <pre>
and <code>
This commit is contained in:
parent
02d7cb1eba
commit
a6e8755863
2 changed files with 23 additions and 0 deletions
|
@ -162,9 +162,21 @@ defmodule AutoLinker.Parser do
|
|||
defp do_parse({"<a" <> text, user_acc}, opts, {buffer, acc, :parsing}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"", acc <> buffer <> "<a", :skip}, handler)
|
||||
|
||||
defp do_parse({"<pre" <> text, user_acc}, opts, {buffer, acc, :parsing}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"", acc <> buffer <> "<pre", :skip}, handler)
|
||||
|
||||
defp do_parse({"<code" <> text, user_acc}, opts, {buffer, acc, :parsing}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"", acc <> buffer <> "<code", :skip}, handler)
|
||||
|
||||
defp do_parse({"</a>" <> text, user_acc}, opts, {buffer, acc, :skip}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"", acc <> buffer <> "</a>", :parsing}, handler)
|
||||
|
||||
defp do_parse({"</pre>" <> text, user_acc}, opts, {buffer, acc, :skip}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"", acc <> buffer <> "</pre>", :parsing}, handler)
|
||||
|
||||
defp do_parse({"</code>" <> text, user_acc}, opts, {buffer, acc, :skip}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"", acc <> buffer <> "</code>", :parsing}, handler)
|
||||
|
||||
defp do_parse({"<" <> text, user_acc}, opts, {"", acc, :parsing}, handler),
|
||||
do: do_parse({text, user_acc}, opts, {"<", acc, {:open, 1}}, handler)
|
||||
|
||||
|
|
|
@ -69,6 +69,17 @@ defmodule AutoLinker.ParserTest do
|
|||
assert parse(text) == text
|
||||
end
|
||||
|
||||
test "does not link inside `<pre>` and `<code>`" do
|
||||
text = "<pre>google.com</pre>"
|
||||
assert parse(text) == text
|
||||
|
||||
text = "<code>google.com</code>"
|
||||
assert parse(text) == text
|
||||
|
||||
text = "<pre><code>google.com</code></pre>"
|
||||
assert parse(text) == text
|
||||
end
|
||||
|
||||
test "links url inside html" do
|
||||
text = "<div>google.com</div>"
|
||||
|
||||
|
|
Loading…
Reference in a new issue