Georg Brandl avatar Georg Brandl committed 2f60d92 Merge

Merge with 1.0

Comments (0)

Files changed (13)

   - #766: Added Estonian locale.
 
 
-Release 1.0.8 (in development)
-==============================
+Release 1.0.8 (Sep 23, 2011)
+============================
+
+* #696, #666: Fix C++ array definitions and template arguments
+  that are not type names.
+
+* #633: Allow footnotes in section headers in LaTeX output.
+
+* #616: Allow keywords to be linked via intersphinx.
+
+* #613: Allow Unicode characters in production list token names.
 
 * #720: Add dummy visitors for graphviz nodes for text and man.
 
 
 * #647: Do not apply SmartyPants in parsed-literal blocks.
 
+* C++ domain now supports array definitions.
+
 
 Release 1.0.7 (Jan 15, 2011)
 ============================
 * CodePy: http://documen.tician.de/codepy/
 * Cython: http://docs.cython.org/
 * C\\C++ Python language binding project: http://language-binding.net/index.html
+* Cormoran: http://cormoran.nhopkg.org/docs/
 * Director: http://packages.python.org/director/
 * Dirigible: http://www.projectdirigible.com/documentation/
 * F2py: http://f2py.sourceforge.net/docs/
 * GeoDjango: http://geodjango.org/docs/
+* Genomedata: http://noble.gs.washington.edu/proj/genomedata/doc/1.2.2/genomedata.html
 * gevent: http://www.gevent.org/
 * Google Wave API: http://wave-robot-python-client.googlecode.com/svn/trunk/pydocs/index.html
 * GSL Shell: http://www.nongnu.org/gsl-shell/
 * PyUblas: http://documen.tician.de/pyublas/
 * Quex: http://quex.sourceforge.net/doc/html/main.html
 * Scapy: http://www.secdev.org/projects/scapy/doc/
+* Segway: http://noble.gs.washington.edu/proj/segway/doc/1.1.0/segway.html
 * SimPy: http://simpy.sourceforge.net/SimPyDocs/index.html
 * SymPy: http://docs.sympy.org/
 * WTForms: http://wtforms.simplecodes.com/docs/
 * C/C++ Development with Eclipse: http://eclipsebook.in/ (agogo)
 * Distribute: http://packages.python.org/distribute/ (nature)
 * Jinja: http://jinja.pocoo.org/ (scrolls)
+* jsFiddle: http://doc.jsfiddle.net/ (nature)
 * pip: http://pip.openplans.org/ (nature)
 * Programmieren mit PyGTK und Glade (German):
   http://www.florian-diesch.de/doc/python-und-glade/online/ (agogo)
-* pypol: http://pypol.altervista.org/ (nature)
 * Spring Python: http://springpython.webfactional.com/current/sphinx/index.html
   (nature)
 * sqlparse: http://python-sqlparse.googlecode.com/svn/docs/api/index.html
   (agogo)
+* Sylli: http://sylli.sourceforge.net/ (nature)
 * libLAS: http://liblas.org/ (nature)
 
 
 * Blinker: http://discorporate.us/projects/Blinker/docs/
 * Classy: classy: http://classy.pocoo.org/
 * Django: http://docs.djangoproject.com/
+* e-cidadania: http://e-cidadania.readthedocs.org/en/latest/
 * Flask: http://flask.pocoo.org/docs/
 * Flask-OpenID: http://packages.python.org/Flask-OpenID/
+* Gameduino: http://excamera.com/sphinx/gameduino/
 * GeoServer: http://docs.geoserver.org/
 * Glashammer: http://glashammer.org/
 * MirrorBrain: http://mirrorbrain.org/docs/
 * German Plone 4.0 user manual: http://www.hasecke.com/plone-benutzerhandbuch/4.0/
 * Pylons: http://pylonshq.com/docs/en/0.9.7/
 * PyMOTW: http://www.doughellmann.com/PyMOTW/
+* pypol: http://pypol.altervista.org/ (celery)
 * qooxdoo: http://manual.qooxdoo.org/current
 * Roundup: http://www.roundup-tracker.org/
 * Selenium: http://seleniumhq.org/docs/
 * A personal page: http://www.dehlia.in/
 * Benoit Boissinot: http://bboissin.appspot.com/
 * lunarsite: http://lunaryorn.de/
+* Red Hot Chili Python: http://redhotchilipython.com/
 * The Wine Cellar Book: http://www.thewinecellarbook.com/doc/en/
 * VOR: http://www.vor-cycling.be/
 

File contents unchanged.

File contents unchanged.

File contents unchanged.

sphinx/domains/python.py

                 else:
                     # "fuzzy" searching mode
                     searchname = '.' + name
-                    matches = [(name, objects[name]) for name in objects
-                               if name.endswith(searchname)
-                               and objects[name][1] in objtypes]
+                    matches = [(oname, objects[oname]) for oname in objects
+                               if oname.endswith(searchname)
+                               and objects[oname][1] in objtypes]
         else:
             # NOTE: searching for exact match, object type is not considered
             if name in objects:

sphinx/domains/std.py

         return messages + [node]
 
 
-token_re = re.compile('`([a-z_][a-z0-9_]*)`')
+token_re = re.compile('`(\w+)`', re.U)
 
 def token_xrefs(text):
     retnodes = []
     object_types = {
         'term': ObjType(l_('glossary term'), 'term', searchprio=-1),
         'token': ObjType(l_('grammar token'), 'token', searchprio=-1),
-        'label': ObjType(l_('reference label'), 'ref', searchprio=-1),
+        'label': ObjType(l_('reference label'), 'ref', 'keyword',
+                         searchprio=-1),
         'envvar': ObjType(l_('environment variable'), 'envvar'),
         'cmdoption': ObjType(l_('program option'), 'option'),
     }

sphinx/ext/coverage.py

                         op.write('\n')
                     if undoc['classes']:
                         op.write('Classes:\n')
-                        for name, methods in sorted(undoc['classes'].iteritems()):
+                        for name, methods in sorted(
+                                                 undoc['classes'].iteritems()):
                             if not methods:
                                 op.write(' * %s\n' % name)
                             else:

sphinx/ext/intersphinx.py

 
 from docutils import nodes
 
+from sphinx.locale import _
 from sphinx.builders.html import INVENTORY_FILENAME
 from sphinx.util.pycompat import b
 
                 continue
             proj, version, uri, dispname = inventory[objtype][target]
             newnode = nodes.reference('', '', internal=False, refuri=uri,
-                                      reftitle='(in %s v%s)' % (proj, version))
+                                      reftitle=_('(in %s v%s)') % (proj, version))
             if node.get('refexplicit'):
                 # use whatever title was given
                 newnode.append(contnode)
-            elif dispname == '-':
+            elif dispname == '-' or \
+                    (domain == 'std' and node['reftype'] == 'keyword'):
                 # use whatever title was given, but strip prefix
                 title = contnode.astext()
                 if in_set and title.startswith(in_set+':'):
Add a comment to this file

sphinx/pycode/__init__.py

File contents unchanged.

sphinx/texinputs/sphinx.sty

   }
   {\endlist}
 }{}
+
+
+% From footmisc.sty: allows footnotes in titles
+\let\FN@sf@@footnote\footnote
+\def\footnote{\ifx\protect\@typeset@protect
+    \expandafter\FN@sf@@footnote
+  \else
+    \expandafter\FN@sf@gobble@opt
+  \fi
+}
+\edef\FN@sf@gobble@opt{\noexpand\protect
+  \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname}
+\expandafter\def\csname FN@sf@gobble@opt \endcsname{%
+  \@ifnextchar[%]
+    \FN@sf@gobble@twobracket
+    \@gobble
+}
+\def\FN@sf@gobble@twobracket[#1]#2{}

sphinx/themes/agogo/static/agogo.css_t

   text-align: {{ theme_textalign }};
 }
 
+div.document h1 {
+  line-height: 120%;
+}
+
 div.document ul {
   margin: 1.5em;
   list-style-type: square;

sphinx/writers/latex.py

         return '\\autopageref*{%s}' % self.idescape(id)
 
     def idescape(self, id):
-        return str(unicode(id).translate(tex_replace_map))
+        return unicode(id).translate(tex_replace_map).\
+            encode('ascii', 'backslashreplace').replace('\\', '_')
 
     def generate_indices(self):
         def generate(content, collapsed):
             self.table.longtable = True
         self.body = self._body
         if not self.table.longtable and self.table.caption is not None:
-            self.body.append(u'\n\\begin{threeparttable}\n'
+            self.body.append(u'\n\n\\begin{threeparttable}\n'
                              u'\\capstart\\caption{%s}\n' % self.table.caption)
         if self.table.longtable:
             self.body.append('\n\\begin{longtable}')
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.