@@ -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