diff --git a/CHANGES b/CHANGES
index 35cea7ce45e..29f34fb82e7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -22,6 +22,8 @@ Incompatible changes
:confval:`man_make_section_directory`)
* #8380: html search: search results are wrapped with ``
`` instead of
``
``
+* html theme: Move a script tag for documentation_options.js in
+ basic/layout.html to ``script_files`` variable
* html theme: Move CSS tags in basic/layout.html to ``css_files`` variable
* #8508: LaTeX: uplatex becomes a default setting of latex_engine for Japanese
documents
diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py
index a5dfe4104aa..4e8d6a007dd 100644
--- a/sphinx/builders/html/__init__.py
+++ b/sphinx/builders/html/__init__.py
@@ -310,6 +310,8 @@ def add_css_file(self, filename: str, **kwargs: Any) -> None:
self.css_files.append(Stylesheet(filename, **kwargs)) # type: ignore
def init_js_files(self) -> None:
+ self.add_js_file('documentation_options.js', id="documentation_options",
+ data_url_root='', priority=200)
self.add_js_file('jquery.js', priority=200)
self.add_js_file('underscore.js', priority=200)
self.add_js_file('doctools.js', priority=200)
@@ -1139,6 +1141,8 @@ def js_tag(js: JavaScript) -> str:
if value is not None:
if key == 'body':
body = value
+ elif key == 'data_url_root':
+ attrs.append('data-url_root="%s"' % pathto('', resource=True))
else:
attrs.append('%s="%s"' % (key, html.escape(value, True)))
if js.filename:
diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html
index bae8ddd6845..8d1e4f60855 100644
--- a/sphinx/themes/basic/layout.html
+++ b/sphinx/themes/basic/layout.html
@@ -17,9 +17,7 @@
{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
(sidebars != []) %}
-{%- set url_root = pathto('', 1) %}
{# URL root should never be #, then all links are fragments #}
-{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
{%- if not embedded and docstitle %}
{%- set titlesuffix = " — "|safe + docstitle|e %}
{%- else %}
@@ -88,7 +86,6 @@
{{ _('Navigation') }}
{%- endmacro %}
{%- macro script() %}
-
{%- for js in script_files %}
{{ js_tag(js) }}
{%- endfor %}