summaryrefslogtreecommitdiffstats
path: root/Doc/tools/sphinxext/pyspecific.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2012-10-01 17:08:50 (GMT)
committerGeorg Brandl <georg@python.org>2012-10-01 17:08:50 (GMT)
commit44d0c2156a292b2e9297b2220941e340d4ec32df (patch)
treeb04291a2861bdd652ff92415e70658596d98445f /Doc/tools/sphinxext/pyspecific.py
parent8fc6cb35c53657e96cee75f0d8e8a918b93e554b (diff)
downloadcpython-44d0c2156a292b2e9297b2220941e340d4ec32df.zip
cpython-44d0c2156a292b2e9297b2220941e340d4ec32df.tar.gz
cpython-44d0c2156a292b2e9297b2220941e340d4ec32df.tar.bz2
Several improvements to the HTML NEWS version:
* rename to "Changelog" * recognize more issue links * add NEWS as a dependency for Sphinx
Diffstat (limited to 'Doc/tools/sphinxext/pyspecific.py')
-rw-r--r--Doc/tools/sphinxext/pyspecific.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/Doc/tools/sphinxext/pyspecific.py b/Doc/tools/sphinxext/pyspecific.py
index 9304461..1808e28 100644
--- a/Doc/tools/sphinxext/pyspecific.py
+++ b/Doc/tools/sphinxext/pyspecific.py
@@ -149,10 +149,9 @@ class DeprecatedRemoved(Directive):
import re
import codecs
-from docutils.statemachine import string2lines
-from sphinx.util.nodes import nested_parse_with_titles
-issue_re = re.compile('Issue #([0-9]+)')
+issue_re = re.compile('([Ii])ssue #([0-9]+)')
+whatsnew_re = re.compile(r"(?im)^what's new in (.*?)\??$")
class MiscNews(Directive):
has_content = False
@@ -166,8 +165,10 @@ class MiscNews(Directive):
source = self.state_machine.input_lines.source(
self.lineno - self.state_machine.input_offset - 1)
source_dir = path.dirname(path.abspath(source))
+ fpath = path.join(source_dir, fname)
+ self.state.document.settings.record_dependencies.add(fpath)
try:
- fp = codecs.open(path.join(source_dir, fname), encoding='utf-8')
+ fp = codecs.open(fpath, encoding='utf-8')
try:
content = fp.read()
finally:
@@ -176,8 +177,9 @@ class MiscNews(Directive):
text = 'The NEWS file is not available.'
node = nodes.strong(text, text)
return [node]
- content = issue_re.sub(r'`Issue #\1 <http://bugs.python.org/\1>`__',
+ content = issue_re.sub(r'`\1ssue #\2 <http://bugs.python.org/\2>`__',
content)
+ content = whatsnew_re.sub(r'\1', content)
# remove first 3 lines as they are the main heading
lines = content.splitlines()[3:]
self.state_machine.insert_input(lines, fname)