Skip to content

Commit dfa2ab4

Browse files
Remove duplicate entries and folders in .build file in HTML formatter (#2123)
1 parent 3ffc537 commit dfa2ab4

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

lib/ex_doc/formatter/html.ex

+16-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ defmodule ExDoc.Formatter.HTML do
4545
generate_list(nodes_map.tasks, config) ++
4646
generate_redirects(config, ".html")
4747

48-
generate_build(Enum.sort(all_files), build)
48+
generate_build(all_files, build)
4949
config.output |> Path.join("index.html") |> Path.relative_to_cwd()
5050
end
5151

@@ -157,7 +157,12 @@ defmodule ExDoc.Formatter.HTML do
157157
end
158158

159159
defp generate_build(files, build) do
160-
entries = Enum.map(files, &[&1, "\n"])
160+
entries =
161+
files
162+
|> Enum.uniq()
163+
|> Enum.sort()
164+
|> Enum.map(&[&1, "\n"])
165+
161166
File.write!(build, entries)
162167
end
163168

@@ -281,7 +286,15 @@ defmodule ExDoc.Formatter.HTML do
281286
is_binary(dir_or_files) and File.dir?(dir_or_files) ->
282287
dir_or_files
283288
|> File.cp_r!(target_dir, dereference_symlinks: true)
284-
|> Enum.map(&Path.relative_to(&1, output))
289+
|> Enum.reduce([], fn path, acc ->
290+
# Omit directories in .build file
291+
if File.dir?(path) do
292+
acc
293+
else
294+
[Path.relative_to(path, output) | acc]
295+
end
296+
end)
297+
|> Enum.reverse()
285298

286299
is_binary(dir_or_files) ->
287300
[]

0 commit comments

Comments
 (0)