From b8a4d884aa6a6b570261178c7fc7856c2a097ab0 Mon Sep 17 00:00:00 2001 From: Benjamin Bach Date: Wed, 11 Jan 2023 15:17:18 +0100 Subject: [PATCH] Respect that dirhtml builder does not have .html in canonical URLs --- sphinx_rtd_theme/layout.html | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sphinx_rtd_theme/layout.html b/sphinx_rtd_theme/layout.html index bb0c069a2..00705259c 100644 --- a/sphinx_rtd_theme/layout.html +++ b/sphinx_rtd_theme/layout.html @@ -51,12 +51,22 @@ {#- CANONICAL URL (deprecated) #} {%- if theme_canonical_url and not pageurl %} - + {%- endif -%} {#- CANONICAL URL #} + {# NB! pageurl is currently a non-documented template context variable! #} + {# pageurl implementation: https://www.sphinx-doc.org/en/master/_modules/sphinx/builders/html.html #} {%- if pageurl %} - + {# pageurl implementation wrongly: adds .html for the dirhtml builder's pageurl #} + {# Workaround for: https://github.com/sphinx-doc/sphinx/issues/9730 #} + {# Once a fix is released in Sphinx, put an upper bound on the Sphinx version for the workaround #} + {% if builder == 'dirhtml' and pageurl.endswith('.html') %} + {# This expression trims away .html and adds a / #} + + {% else %} + + {% endif %} {%- endif -%} {#- JAVASCRIPTS #}