From a957d6f7108f2ada9f5c9314d2077f6ccba1fe57 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sat, 23 Jan 2021 15:31:24 +0900 Subject: [PATCH] refactor: html theme: Insert documentation_options.js via script_files --- CHANGES | 2 ++ sphinx/builders/html/__init__.py | 4 ++++ sphinx/themes/basic/layout.html | 3 --- 3 files changed, 6 insertions(+), 3 deletions(-) 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 %}