Add a filterable HTML version of Misc/NEWS to the docs "whatsnew" section.
This commit is contained in:
parent
eea74276cc
commit
2cac28b37e
|
@ -8,6 +8,23 @@
|
|||
{% block extrahead %}
|
||||
<link rel="shortcut icon" type="image/png" href="{{ pathto('_static/py.png', 1) }}" />
|
||||
{% if not embedded %}<script type="text/javascript" src="{{ pathto('_static/copybutton.js', 1) }}"></script>{% endif %}
|
||||
{% if pagename == 'whatsnew/news' %}
|
||||
<script type="text/javascript">
|
||||
function dofilter() {
|
||||
var el = document.getElementById('searchbox');
|
||||
var string = el.value.toLowerCase();
|
||||
var litags = document.getElementsByTagName('li')
|
||||
for (var idx = 0; idx < litags.length; idx++) {
|
||||
var li = litags[idx];
|
||||
if (li.innerHTML.toLowerCase().indexOf(string) >= 0) {
|
||||
li.style.display = '';
|
||||
} else {
|
||||
li.style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endif %}
|
||||
{{ super() }}
|
||||
{% endblock %}
|
||||
{% block footer %}
|
||||
|
|
|
@ -145,6 +145,45 @@ class DeprecatedRemoved(Directive):
|
|||
return ret
|
||||
|
||||
|
||||
# Support for including Misc/NEWS
|
||||
|
||||
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]+)')
|
||||
|
||||
class MiscNews(Directive):
|
||||
has_content = False
|
||||
required_arguments = 1
|
||||
optional_arguments = 0
|
||||
final_argument_whitespace = False
|
||||
option_spec = {}
|
||||
|
||||
def run(self):
|
||||
fname = self.arguments[0]
|
||||
source = self.state_machine.input_lines.source(
|
||||
self.lineno - self.state_machine.input_offset - 1)
|
||||
source_dir = path.dirname(path.abspath(source))
|
||||
try:
|
||||
fp = codecs.open(path.join(source_dir, fname), encoding='utf-8')
|
||||
try:
|
||||
content = fp.read()
|
||||
finally:
|
||||
fp.close()
|
||||
except Exception:
|
||||
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)
|
||||
# remove first 3 lines as they are the main heading
|
||||
lines = content.splitlines()[3:]
|
||||
self.state_machine.insert_input(lines, fname)
|
||||
return []
|
||||
|
||||
|
||||
# Support for building "topic help" for pydoc
|
||||
|
||||
pydoc_topic_labels = [
|
||||
|
@ -276,3 +315,4 @@ def setup(app):
|
|||
app.add_description_unit('2to3fixer', '2to3fixer', '%s (2to3 fixer)')
|
||||
app.add_directive_to_domain('py', 'decorator', PyDecoratorFunction)
|
||||
app.add_directive_to_domain('py', 'decoratormethod', PyDecoratorMethod)
|
||||
app.add_directive('miscnews', MiscNews)
|
||||
|
|
|
@ -23,3 +23,11 @@ anyone wishing to stay up-to-date after a new release.
|
|||
2.2.rst
|
||||
2.1.rst
|
||||
2.0.rst
|
||||
|
||||
The "Python News" is a HTML version of the file :source:`Misc/NEWS` which
|
||||
contains *all* nontrivial changes to Python.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
news.rst
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
+++++++++++
|
||||
Python News
|
||||
+++++++++++
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<p>
|
||||
Filter entries by content:
|
||||
<input type="text" value="" id="searchbox" style="width: 50%" onchange="dofilter()">
|
||||
<input type="submit" value="Filter" onclick="dofilter()">
|
||||
</p>
|
||||
|
||||
.. miscnews:: ../../Misc/NEWS
|
||||
|
Loading…
Reference in New Issue