diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py index 24be841110..8c4b51166c 100644 --- a/docs/_ext/djangodocs.py +++ b/docs/_ext/djangodocs.py @@ -83,7 +83,10 @@ class VersionDirective(Directive): if not is_nextversion: if len(self.arguments) == 1: linktext = 'Please, see the release notes ' % (arg0) - xrefs = roles.XRefRole()('doc', linktext, linktext, self.lineno, self.state) + try: + xrefs = roles.XRefRole()('doc', linktext, linktext, self.lineno, self.state) # Sphinx >= 1.0 + except AttributeError: + xrefs = roles.xfileref_role('doc', linktext, linktext, self.lineno, self.state) # Sphinx < 1.0 node.extend(xrefs[0]) node['version'] = arg0 else: @@ -193,7 +196,10 @@ def parse_django_admin_node(env, sig, signode): def parse_django_adminopt_node(env, sig, signode): """A copy of sphinx.directives.CmdoptionDesc.parse_signature()""" - from sphinx.domains.std import option_desc_re + try: + from sphinx.domains.std import option_desc_re # Sphinx >= 1.0 + except ImportError: + from sphinx.directives.desc import option_desc_re # Sphinx < 1.0 count = 0 firstname = '' for m in option_desc_re.finditer(sig): @@ -233,13 +239,24 @@ class DjangoStandaloneHTMLBuilder(StandaloneHTMLBuilder): self.warn("cannot create templatebuiltins.js due to missing simplejson dependency") return self.info(bold("writing templatebuiltins.js...")) - xrefs = self.env.domaindata["std"]["objects"] - templatebuiltins = dict([('ttags', [n for ((t,n), (l,a)) in xrefs.items() - if t == 'templatetag' and - l == 'ref/templates/builtins' ]), - ('tfilters', [n for ((t,n), (l,a)) in xrefs.items() - if t == 'templatefilter' and - t == 'ref/templates/builtins'])]) + try: + # Sphinx < 1.0 + xrefs = self.env.reftargets.items() + templatebuiltins = dict([('ttags', [n for ((t,n),(l,a)) in xrefs + if t == 'ttag' and + l == 'ref/templates/builtins']), + ('tfilters', [n for ((t,n),(l,a)) in xrefs + if t == 'tfilter' and + l == 'ref/templates/builtins'])]) + except AttributeError: + # Sphinx >= 1.0 + xrefs = self.env.domaindata["std"]["objects"] + templatebuiltins = dict([('ttags', [n for ((t,n), (l,a)) in xrefs.items() + if t == 'templatetag' and + l == 'ref/templates/builtins' ]), + ('tfilters', [n for ((t,n), (l,a)) in xrefs.items() + if t == 'templatefilter' and + t == 'ref/templates/builtins'])]) outfilename = os.path.join(self.outdir, "templatebuiltins.js") f = open(outfilename, 'wb') f.write('var django_template_builtins = ') diff --git a/docs/conf.py b/docs/conf.py index 3c3a5d5f33..ac6aed1fb9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,7 +22,7 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext")) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = '1.0' +#needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. diff --git a/docs/internals/documentation.txt b/docs/internals/documentation.txt index a0dd17fbc2..36270eafb7 100644 --- a/docs/internals/documentation.txt +++ b/docs/internals/documentation.txt @@ -15,12 +15,8 @@ Sphinx -- ``easy_install Sphinx`` should do the trick. .. note:: - Building the Django documentation requires Sphinx 1.0.2 or newer. Sphinx - also requires the Pygments__ library for syntax highlighting; building the - Django documentation requires Pygments 1.1 or newer (a new-enough version - should automatically be installed along with Sphinx). - -__ http://pygments.org + The Django documentation can be generated with Sphinx version 0.6 or + newer, but we recommend using Sphinx 1.0.2 or newer. Then, building the HTML is easy; just ``make html`` from the ``docs`` directory.