Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
allendowney
GitHub Repository: allendowney/cpython
Path: blob/main/Doc/tools/static/changelog_search.js
12 views
1
$(document).ready(function() {
2
// add the search form and bind the events
3
$('h1').after([
4
'<p>Filter entries by content:',
5
'<input type="text" value="" id="searchbox" style="width: 50%">',
6
'<input type="submit" id="searchbox-submit" value="Filter"></p>'
7
].join('\n'));
8
9
function dofilter() {
10
try {
11
var query = new RegExp($('#searchbox').val(), 'i');
12
}
13
catch (e) {
14
return; // not a valid regex (yet)
15
}
16
// find headers for the versions (What's new in Python X.Y.Z?)
17
$('#changelog h2').each(function(index1, h2) {
18
var h2_parent = $(h2).parent();
19
var sections_found = 0;
20
// find headers for the sections (Core, Library, etc.)
21
h2_parent.find('h3').each(function(index2, h3) {
22
var h3_parent = $(h3).parent();
23
var entries_found = 0;
24
// find all the entries
25
h3_parent.find('li').each(function(index3, li) {
26
var li = $(li);
27
// check if the query matches the entry
28
if (query.test(li.text())) {
29
li.show();
30
entries_found++;
31
}
32
else {
33
li.hide();
34
}
35
});
36
// if there are entries, show the section, otherwise hide it
37
if (entries_found > 0) {
38
h3_parent.show();
39
sections_found++;
40
}
41
else {
42
h3_parent.hide();
43
}
44
});
45
if (sections_found > 0)
46
h2_parent.show();
47
else
48
h2_parent.hide();
49
});
50
}
51
$('#searchbox').keyup(dofilter);
52
$('#searchbox-submit').click(dofilter);
53
});
54
55