Skip to content

Commit 76a9c84

Browse files
committed
group resources just one time
1 parent 466e13a commit 76a9c84

1 file changed

Lines changed: 24 additions & 16 deletions

File tree

lib/ex_doc/formatter/markdown.ex

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@ defmodule ExDoc.Formatter.MARKDOWN do
1111
|> Enum.filter(&(&1.source_format == "text/markdown"))
1212
|> Enum.split_with(&(&1.type != :task))
1313

14+
groups =
15+
Map.new([modules: modules, mix_tasks: tasks, extras: extras], fn {k, v} ->
16+
{k, group_by_group(v)}
17+
end)
18+
1419
all_files =
15-
generate_nav(config, modules, tasks, extras) ++
16-
generate_api_reference(config, modules, tasks) ++
20+
generate_nav(config, groups) ++
21+
generate_api_reference(config, groups) ++
1722
generate_extras(extras, config) ++
1823
generate_list(config, modules) ++
1924
generate_list(config, tasks)
@@ -28,34 +33,37 @@ defmodule ExDoc.Formatter.MARKDOWN do
2833
|> String.replace(~r/\n{3,}/, "\n\n")
2934
end
3035

31-
defp generate_nav(config, modules, tasks, extras) do
32-
modules = group_by_group(modules)
33-
mix_tasks = group_by_group(tasks)
34-
extras = group_by_group(extras)
35-
36+
defp generate_nav(config, %{modules: modules, mix_tasks: mix_tasks, extras: extras}) do
3637
content =
37-
Templates.llms_txt_template(config, modules, mix_tasks, extras)
38+
config
39+
|> Templates.llms_txt_template(modules, mix_tasks, extras)
3840
|> normalize_output()
3941

4042
filename = "llms.txt"
41-
File.write(Path.join(config.output, filename), content)
43+
44+
config.output
45+
|> Path.join(filename)
46+
|> File.write(content)
47+
4248
[filename]
4349
end
4450

45-
defp generate_api_reference(%{api_reference: false}, _modules, _tasks) do
51+
defp generate_api_reference(%{api_reference: false}, _groups) do
4652
[]
4753
end
4854

49-
defp generate_api_reference(config, modules, tasks) do
50-
modules = group_by_group(modules)
51-
mix_tasks = group_by_group(tasks)
52-
55+
defp generate_api_reference(config, %{modules: modules, mix_tasks: mix_tasks}) do
5356
content =
54-
Templates.api_reference_template(config, modules, mix_tasks)
57+
config
58+
|> Templates.api_reference_template(modules, mix_tasks)
5559
|> normalize_output()
5660

5761
filename = "api-reference.md"
58-
File.write(Path.join(config.output, filename), content)
62+
63+
config.output
64+
|> Path.join(filename)
65+
|> File.write(content)
66+
5967
[filename]
6068
end
6169

0 commit comments

Comments
 (0)