Idiomatic way to put a separator when rendering collections in HEEX

I was pointed here from my own thread Rendering components from a view - #4 by cmo

Enum.intersperse/2 is a great solution

# template.html.heex
<%= for component <- intersperse_widgets(@widgets) %>
  <%= component %>
<% end%>
# my_view.ex
def intersperse_widgets(widgets) do
  widgets
  |> Enum.map(fn widget -> component(&widget_component/1, widget: widget) end)
  |> Enum.intersperse(component(&separator_component/1))
end

defp widget_component(assigns) do
  ~H"""
  <div> <%= @widget.id %> </div>
  """
end

defp separator_component(assigns), do: ~H"<hr>"