summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Makefile2
-rw-r--r--docs/_ext/djangodocs.py54
-rw-r--r--docs/_theme/djangodocs/layout.html54
3 files changed, 12 insertions, 98 deletions
diff --git a/docs/Makefile b/docs/Makefile
index 41ed522daf..736cab6d7f 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -58,7 +58,7 @@ clean:
-rm -rf $(BUILDDIR)/*
html:
- $(SPHINXBUILD) -b djangohtml $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py
index a979a8e30a..a82cb5df96 100644
--- a/docs/_ext/djangodocs.py
+++ b/docs/_ext/djangodocs.py
@@ -2,8 +2,6 @@
Sphinx plugins for Django documentation.
"""
-import json
-import os
import re
from docutils import nodes
@@ -11,12 +9,10 @@ from docutils.parsers.rst import Directive
from docutils.statemachine import ViewList
from sphinx import addnodes
from sphinx import version_info as sphinx_version
-from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.directives.code import CodeBlock
from sphinx.domains.std import Cmdoption
from sphinx.errors import ExtensionError
from sphinx.util import logging
-from sphinx.util.console import bold
from sphinx.writers.html import HTMLTranslator
logger = logging.getLogger(__name__)
@@ -55,9 +51,7 @@ def setup(app):
app.add_config_value("django_next_version", "0.0", True)
app.add_directive("versionadded", VersionDirective)
app.add_directive("versionchanged", VersionDirective)
- app.add_builder(DjangoStandaloneHTMLBuilder)
- app.set_translator("djangohtml", DjangoHTMLTranslator)
- app.set_translator("json", DjangoHTMLTranslator)
+ app.connect("builder-inited", set_django_html_translator)
app.add_node(
ConsoleNode,
html=(visit_console_html, None),
@@ -72,6 +66,11 @@ def setup(app):
return {"parallel_read_safe": True}
+def set_django_html_translator(app):
+ if app.builder.format == "html":
+ app.set_translator(app.builder.name, DjangoHTMLTranslator, override=True)
+
+
class VersionDirective(Directive):
has_content = True
required_arguments = 1
@@ -189,36 +188,6 @@ def parse_django_admin_node(env, sig, signode):
return command
-class DjangoStandaloneHTMLBuilder(StandaloneHTMLBuilder):
- """
- Subclass to add some extra things we need.
- """
-
- name = "djangohtml"
-
- def finish(self):
- super().finish()
- logger.info(bold("writing templatebuiltins.js..."))
- xrefs = self.env.domaindata["std"]["objects"]
- templatebuiltins = {
- "ttags": [
- n
- for ((t, n), (k, a)) in xrefs.items()
- if t == "templatetag" and k == "ref/templates/builtins"
- ],
- "tfilters": [
- n
- for ((t, n), (k, a)) in xrefs.items()
- if t == "templatefilter" and k == "ref/templates/builtins"
- ],
- }
- outfilename = os.path.join(self.outdir, "templatebuiltins.js")
- with open(outfilename, "w") as fp:
- fp.write("var django_template_builtins = ")
- json.dump(templatebuiltins, fp)
- fp.write(";\n")
-
-
class ConsoleNode(nodes.literal_block):
"""
Custom node to override the visit/depart event handlers at registration
@@ -248,7 +217,7 @@ def depart_console_dummy(self, node):
def visit_console_html(self, node):
"""Generate HTML for the console directive."""
- if self.builder.name in ("djangohtml", "json") and node["win_console_text"]:
+ if self.builder.format == "html" and node["win_console_text"]:
# Put a mark on the document object signaling the fact the directive
# has been used on it.
self.document._console_directive_used_flag = True
@@ -363,9 +332,9 @@ class ConsoleDirective(CodeBlock):
self.arguments = ["console"]
lit_blk_obj = super().run()[0]
- # Only do work when the djangohtml HTML Sphinx builder is being used,
+ # Only do work when an HTML-format Sphinx builder is being used,
# invoke the default behavior for the rest.
- if env.app.builder.name not in ("djangohtml", "json"):
+ if env.app.builder.format != "html":
return [lit_blk_obj]
lit_blk_obj["uid"] = str(env.new_serialno("console"))
@@ -385,9 +354,8 @@ class ConsoleDirective(CodeBlock):
def html_page_context_hook(app, pagename, templatename, context, doctree):
# Put a bool on the context used to render the template. It's used to
- # control inclusion of console-tabs.css and activation of the JavaScript.
- # This way it's include only from HTML files rendered from reST files where
- # the ConsoleDirective is used.
+ # control inclusion of console-tabs.css. This way it's included only from
+ # HTML files rendered from reST files where the ConsoleDirective is used.
context["include_console_assets"] = getattr(
doctree, "_console_directive_used_flag", False
)
diff --git a/docs/_theme/djangodocs/layout.html b/docs/_theme/djangodocs/layout.html
index 487c2b4922..6d07375d07 100644
--- a/docs/_theme/djangodocs/layout.html
+++ b/docs/_theme/djangodocs/layout.html
@@ -17,60 +17,6 @@
{%- endmacro %}
{% block extrahead %}
-{# When building htmlhelp (CHM format) disable jQuery inclusion, #}
-{# as it causes problems in compiled CHM files. #}
-{% if builder != "htmlhelp" %}
-{{ super() }}
-<script src="{{ pathto('templatebuiltins.js', 1) }}"></script>
-<script>
-(function($) {
- if (!django_template_builtins) {
- // templatebuiltins.js missing, do nothing.
- return;
- }
- $(document).ready(function() {
- // Hyperlink Django template tags and filters
- var base = "{{ pathto('ref/templates/builtins') }}";
- if (base == "#") {
- // Special case for builtins.html itself
- base = "";
- }
- // Tags are keywords, class '.k'
- $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
- var tagname = $(elem).text();
- if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
- var fragment = tagname.replace(/_/, '-');
- $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
- }
- });
- // Filters are functions, class '.nf'
- $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
- var filtername = $(elem).text();
- if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
- var fragment = filtername.replace(/_/, '-');
- $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
- }
- });
- });
-})(jQuery);
-{%- if include_console_assets -%}
-(function($) {
- $(document).ready(function() {
- $(".c-tab-unix").on("click", function() {
- $("section.c-content-unix").show();
- $("section.c-content-win").hide();
- $(".c-tab-unix").prop("checked", true);
- });
- $(".c-tab-win").on("click", function() {
- $("section.c-content-win").show();
- $("section.c-content-unix").hide();
- $(".c-tab-win").prop("checked", true);
- });
- });
-})(jQuery);
-{%- endif -%}
-</script>
-{% endif %}
{%- if include_console_assets -%}
<link rel="stylesheet" href="{{ pathto('_static/console-tabs.css', 1) }}">
{%- endif -%}