diff --git a/lib/ex_doc/autolink.ex b/lib/ex_doc/autolink.ex index 28b5c6ffb..927c62699 100644 --- a/lib/ex_doc/autolink.ex +++ b/lib/ex_doc/autolink.ex @@ -105,10 +105,11 @@ defmodule ExDoc.Autolink do uri <- URI.parse(href), nil <- uri.host, true <- is_binary(uri.path), - true <- uri.path == Path.basename(uri.path), ".md" <- Path.extname(uri.path) do - if uri.path in config.extras do - without_ext = String.trim_trailing(uri.path, ".md") + md_file = Path.basename(uri.path) + + if md_file in config.extras do + without_ext = String.trim_trailing(md_file, ".md") fragment = (uri.fragment && "#" <> uri.fragment) || "" HTML.text_to_id(without_ext) <> config.ext <> fragment else diff --git a/test/ex_doc/autolink_test.exs b/test/ex_doc/autolink_test.exs index e621c152c..2e96e772f 100644 --- a/test/ex_doc/autolink_test.exs +++ b/test/ex_doc/autolink_test.exs @@ -202,6 +202,8 @@ defmodule ExDoc.AutolinkTest do assert autolink(~m"[Foo](Foo Bar.md#baz)", opts) == ~m"[Foo](foo-bar.html#baz)" + assert autolink(~m"[Foo](../guide/Foo Bar.md)", opts) == ~m"[Foo](foo-bar.html)" + assert_unchanged(~m"[Foo](http://example.com/foo.md)", opts) assert_unchanged(~m"[Foo](#baz)", opts)