mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
merge stable into default
This commit is contained in:
commit
5394fbb82b
5
CHANGES
5
CHANGES
@ -37,6 +37,11 @@ Bugs fixed
|
|||||||
* #814: autodoc: Guard against strange type objects that don't have
|
* #814: autodoc: Guard against strange type objects that don't have
|
||||||
``__bases__``.
|
``__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
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -165,9 +165,9 @@ use the :command:`sphinx-intl update` command.
|
|||||||
Using Transifex service for team translation
|
Using Transifex service for team translation
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
`Transifex <http://transifex.com>`_ is one of several services that allow
|
Transifex_ is one of several services that allow collaborative translation via a
|
||||||
collaborative translation via a web interface. It has a nifty Python-based
|
web interface. It has a nifty Python-based command line client that makes it
|
||||||
command line client that makes it easy to fetch and push translations.
|
easy to fetch and push translations.
|
||||||
|
|
||||||
.. TODO: why use transifex?
|
.. TODO: why use transifex?
|
||||||
|
|
||||||
|
@ -190,17 +190,26 @@ class Program(Directive):
|
|||||||
class OptionXRefRole(XRefRole):
|
class OptionXRefRole(XRefRole):
|
||||||
innernodeclass = addnodes.literal_emphasis
|
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):
|
def process_link(self, env, refnode, has_explicit_title, title, target):
|
||||||
program = env.temp_data.get('std:program')
|
program = env.temp_data.get('std:program')
|
||||||
if not has_explicit_title:
|
if not has_explicit_title:
|
||||||
if ' ' in title and not (title.startswith('/') or
|
if ' ' in title and not (title.startswith('/') or
|
||||||
title.startswith('-')):
|
title.startswith('-')):
|
||||||
program, target = re.split(' (?=-|--|/)', title, 1)
|
program, target = self._split(title, refnode, env)
|
||||||
program = ws_re.sub('-', program)
|
|
||||||
target = target.strip()
|
target = target.strip()
|
||||||
elif ' ' in target:
|
elif ' ' in target:
|
||||||
program, target = re.split(' (?=-|--|/)', target, 1)
|
program, target = self._split(target, refnode, env)
|
||||||
program = ws_re.sub('-', program)
|
|
||||||
refnode['refprogram'] = program
|
refnode['refprogram'] = program
|
||||||
return title, target
|
return title, target
|
||||||
|
|
||||||
|
@ -450,9 +450,10 @@ class Documenter(object):
|
|||||||
# into lines
|
# into lines
|
||||||
if isinstance(docstring, unicode):
|
if isinstance(docstring, unicode):
|
||||||
return [prepare_docstring(docstring, ignore)]
|
return [prepare_docstring(docstring, ignore)]
|
||||||
elif docstring:
|
elif isinstance(docstring, str): # this will not trigger on Py3
|
||||||
return [prepare_docstring(force_decode(docstring, encoding),
|
return [prepare_docstring(force_decode(docstring, encoding),
|
||||||
ignore)]
|
ignore)]
|
||||||
|
# ... else it is something strange, let's ignore it
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def process_doc(self, docstrings):
|
def process_doc(self, docstrings):
|
||||||
|
@ -139,6 +139,7 @@ Adding \n to test unescaping.
|
|||||||
* :doc:`subdir/includes`
|
* :doc:`subdir/includes`
|
||||||
* ``:download:`` is tested in includes.txt
|
* ``:download:`` is tested in includes.txt
|
||||||
* :option:`Python -c option <python -c>`
|
* :option:`Python -c option <python -c>`
|
||||||
|
* This used to crash: :option:`Python c option`
|
||||||
|
|
||||||
Test :abbr:`abbr (abbreviation)` and another :abbr:`abbr (abbreviation)`.
|
Test :abbr:`abbr (abbreviation)` and another :abbr:`abbr (abbreviation)`.
|
||||||
|
|
||||||
|
@ -42,6 +42,8 @@ http://www.python.org/logo.png
|
|||||||
reading included file u'.*?wrongenc.inc' seems to be wrong, try giving an \
|
reading included file u'.*?wrongenc.inc' seems to be wrong, try giving an \
|
||||||
:encoding: option\\n?
|
:encoding: option\\n?
|
||||||
%(root)s/includes.txt:4: WARNING: download file not readable: .*?nonexisting.png
|
%(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 \
|
%(root)s/objects.txt:\\d*: WARNING: using old C markup; please migrate to \
|
||||||
new-style markup \(e.g. c:function instead of cfunction\), see \
|
new-style markup \(e.g. c:function instead of cfunction\), see \
|
||||||
http://sphinx-doc.org/domains.html
|
http://sphinx-doc.org/domains.html
|
||||||
|
Loading…
Reference in New Issue
Block a user