Skip to content

Commit 805b8ba

Browse files
committed
Bump levels using Access protocol
As suggested in #1992 (comment)
1 parent 044203a commit 805b8ba

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

Diff for: lib/ex_doc/formatter/markdown.ex

+8-14
Original file line numberDiff line numberDiff line change
@@ -158,20 +158,14 @@ defmodule ExDoc.Formatter.Markdown do
158158
end)
159159
end
160160

161-
defp bump_levels(%MDEx.Document{nodes: nodes} = document, levels_to_bump) do
162-
nodes_updated =
163-
Enum.reduce(nodes, [], fn
164-
%MDEx.Heading{level: level} = heading, acc ->
165-
updated_element = %{heading | level: increase_level(level, levels_to_bump)}
166-
167-
[updated_element | acc]
168-
169-
elem, acc ->
170-
[elem | acc]
171-
end)
172-
|> Enum.reverse()
173-
174-
Map.put(document, :nodes, nodes_updated)
161+
defp bump_levels(document, levels_to_bump) when is_struct(document, MDEx.Document) do
162+
update_in(
163+
document,
164+
[:document, Access.key!(:nodes), Access.filter(&is_struct(&1, MDEx.Heading))],
165+
fn %MDEx.Heading{level: level} = heading ->
166+
%{heading | level: increase_level(level, levels_to_bump)}
167+
end
168+
)
175169
end
176170

177171
defp increase_level(level, levels_to_bump) do

0 commit comments

Comments
 (0)