Fixed #9436 -- Updated docs build code to create "new in development version".
Patch from Marc Fargas. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10006 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
fedea84f3c
commit
059765fa6c
|
@ -10,6 +10,8 @@ import sphinx.builder
|
||||||
import sphinx.directives
|
import sphinx.directives
|
||||||
import sphinx.environment
|
import sphinx.environment
|
||||||
import sphinx.htmlwriter
|
import sphinx.htmlwriter
|
||||||
|
import sphinx.roles
|
||||||
|
from docutils import nodes
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_crossref_type(
|
app.add_crossref_type(
|
||||||
|
@ -44,12 +46,41 @@ def setup(app):
|
||||||
indextemplate = "pair: %s; django-admin command-line option",
|
indextemplate = "pair: %s; django-admin command-line option",
|
||||||
parse_node = lambda env, sig, signode: sphinx.directives.parse_option_desc(signode, sig),
|
parse_node = lambda env, sig, signode: sphinx.directives.parse_option_desc(signode, sig),
|
||||||
)
|
)
|
||||||
|
app.add_config_value('django_next_version', '0.0', True)
|
||||||
|
app.add_directive('versionadded', parse_version_directive, 1, (1, 1, 1))
|
||||||
|
app.add_directive('versionchanged', parse_version_directive, 1, (1, 1, 1))
|
||||||
app.add_transform(SuppressBlockquotes)
|
app.add_transform(SuppressBlockquotes)
|
||||||
|
|
||||||
# Monkeypatch PickleHTMLBuilder so that it doesn't die in Sphinx 0.4.2
|
# Monkeypatch PickleHTMLBuilder so that it doesn't die in Sphinx 0.4.2
|
||||||
if sphinx.__version__ == '0.4.2':
|
if sphinx.__version__ == '0.4.2':
|
||||||
monkeypatch_pickle_builder()
|
monkeypatch_pickle_builder()
|
||||||
|
|
||||||
|
def parse_version_directive(name, arguments, options, content, lineno,
|
||||||
|
content_offset, block_text, state, state_machine):
|
||||||
|
env = state.document.settings.env
|
||||||
|
is_nextversion = env.config.django_next_version == arguments[0]
|
||||||
|
ret = []
|
||||||
|
node = sphinx.addnodes.versionmodified()
|
||||||
|
ret.append(node)
|
||||||
|
if not is_nextversion:
|
||||||
|
if len(arguments) == 1:
|
||||||
|
linktext = 'Please, see the release notes <releases-%s>' % (arguments[0])
|
||||||
|
xrefs = sphinx.roles.xfileref_role('ref', linktext, linktext, lineno, state)
|
||||||
|
node.extend(xrefs[0])
|
||||||
|
node['version'] = arguments[0]
|
||||||
|
else:
|
||||||
|
node['version'] = "Development version"
|
||||||
|
node['type'] = name
|
||||||
|
if len(arguments) == 2:
|
||||||
|
inodes, messages = state.inline_text(arguments[1], lineno+1)
|
||||||
|
node.extend(inodes)
|
||||||
|
if content:
|
||||||
|
state.nested_parse(content, content_offset, node)
|
||||||
|
ret = ret + messages
|
||||||
|
env.note_versionchange(node['type'], node['version'], node, lineno)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
class SuppressBlockquotes(docutils.transforms.Transform):
|
class SuppressBlockquotes(docutils.transforms.Transform):
|
||||||
"""
|
"""
|
||||||
Remove the default blockquotes that encase indented list, tables, etc.
|
Remove the default blockquotes that encase indented list, tables, etc.
|
||||||
|
|
|
@ -44,6 +44,8 @@ copyright = 'Django Software Foundation and contributors'
|
||||||
version = '1.0'
|
version = '1.0'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = version
|
release = version
|
||||||
|
# The next version to be released
|
||||||
|
django_next_version = '1.1'
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
# non-false value, then it is used:
|
# non-false value, then it is used:
|
||||||
|
|
Loading…
Reference in New Issue