merge stable into default

This commit is contained in:
Georg Brandl 2014-01-11 08:14:55 +01:00
commit 5394fbb82b
6 changed files with 26 additions and 8 deletions

View File

@ -37,6 +37,11 @@ Bugs fixed
* #814: autodoc: Guard against strange type objects that don't have
``__bases__``.
* #932: autodoc: Do not crash if ``__doc__`` is not a string.
* #933: Do not crash if an ``:option:`` value is malformed (contains spaces
but no option name).
Documentation
-------------

View File

@ -165,9 +165,9 @@ use the :command:`sphinx-intl update` command.
Using Transifex service for team translation
--------------------------------------------
`Transifex <http://transifex.com>`_ is one of several services that allow
collaborative translation via a web interface. It has a nifty Python-based
command line client that makes it easy to fetch and push translations.
Transifex_ is one of several services that allow collaborative translation via a
web interface. It has a nifty Python-based command line client that makes it
easy to fetch and push translations.
.. TODO: why use transifex?

View File

@ -190,17 +190,26 @@ class Program(Directive):
class OptionXRefRole(XRefRole):
innernodeclass = addnodes.literal_emphasis
def _split(self, text, refnode, env):
try:
program, target = re.split(' (?=-|--|/)', text, 1)
except ValueError:
env.warn_node('Malformed :option: %r, does not contain option '
'marker - or -- or /' % text, refnode)
return None, text
else:
program = ws_re.sub('-', program)
return program, target
def process_link(self, env, refnode, has_explicit_title, title, target):
program = env.temp_data.get('std:program')
if not has_explicit_title:
if ' ' in title and not (title.startswith('/') or
title.startswith('-')):
program, target = re.split(' (?=-|--|/)', title, 1)
program = ws_re.sub('-', program)
program, target = self._split(title, refnode, env)
target = target.strip()
elif ' ' in target:
program, target = re.split(' (?=-|--|/)', target, 1)
program = ws_re.sub('-', program)
program, target = self._split(target, refnode, env)
refnode['refprogram'] = program
return title, target

View File

@ -450,9 +450,10 @@ class Documenter(object):
# into lines
if isinstance(docstring, unicode):
return [prepare_docstring(docstring, ignore)]
elif docstring:
elif isinstance(docstring, str): # this will not trigger on Py3
return [prepare_docstring(force_decode(docstring, encoding),
ignore)]
# ... else it is something strange, let's ignore it
return []
def process_doc(self, docstrings):

View File

@ -139,6 +139,7 @@ Adding \n to test unescaping.
* :doc:`subdir/includes`
* ``:download:`` is tested in includes.txt
* :option:`Python -c option <python -c>`
* This used to crash: :option:`Python c option`
Test :abbr:`abbr (abbreviation)` and another :abbr:`abbr (abbreviation)`.

View File

@ -42,6 +42,8 @@ http://www.python.org/logo.png
reading included file u'.*?wrongenc.inc' seems to be wrong, try giving an \
:encoding: option\\n?
%(root)s/includes.txt:4: WARNING: download file not readable: .*?nonexisting.png
%(root)s/markup.txt:142: WARNING: Malformed :option: u'Python c option', does \
not contain option marker - or -- or /
%(root)s/objects.txt:\\d*: WARNING: using old C markup; please migrate to \
new-style markup \(e.g. c:function instead of cfunction\), see \
http://sphinx-doc.org/domains.html