From 30d957e29d8cb7f1b5af7229f1e626bca6ac1d54 Mon Sep 17 00:00:00 2001 From: Milton Mazzarri Date: Mon, 9 Feb 2026 13:27:55 -0600 Subject: [PATCH] epub: fix links to media documents `ex_doc` was silently falling to link media documents in the _package document_, which describes the rendering of an EPUB publication. The consequence of this is that links from a module (e.g., Application.xhtml) to the extra guides (e.g., Design-related anti-patterns) were broken. I added a unit test to avoid a regression in the future. --- .../epub/templates/content_template.eex | 4 ++-- test/ex_doc/formatter/epub/templates_test.exs | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/ex_doc/formatter/epub/templates/content_template.eex b/lib/ex_doc/formatter/epub/templates/content_template.eex index 46b96c679..eecaf0d42 100644 --- a/lib/ex_doc/formatter/epub/templates/content_template.eex +++ b/lib/ex_doc/formatter/epub/templates/content_template.eex @@ -17,7 +17,7 @@ - <%= for {_title, extras} <- extras, extra <- extras do %> + <%= for extra <- extras do %> <% end %> <%= for node <- modules ++ tasks do %> @@ -36,7 +36,7 @@ - <%= for {_title, extras} <- extras, extra <- extras do %> + <%= for extra <- extras do %> <% end %> <%= for node <- modules ++ tasks do %> diff --git a/test/ex_doc/formatter/epub/templates_test.exs b/test/ex_doc/formatter/epub/templates_test.exs index f0c66c2ef..5cad480df 100644 --- a/test/ex_doc/formatter/epub/templates_test.exs +++ b/test/ex_doc/formatter/epub/templates_test.exs @@ -88,6 +88,24 @@ defmodule ExDoc.Formatter.EPUB.TemplatesTest do assert content =~ ~S|| end + + test "includes extras as resource" do + node = + %ExDoc.ExtraNode{ + id: "changelog", + title: "Changelog", + doc: nil, + type: :extra + } + + content = + Templates.content_template(formatter_config(), [], [], [node], "uuid", "datetime", []) + + assert content =~ + ~S|| + + assert content =~ ~S|| + end end describe "module_template/2" do