Skip to content

Commit 92e1c72

Browse files
authored
Merge pull request #168 from man-group/remove-random-None
#165: Fix the word "None" appearing at the top of each report
2 parents d2135d3 + 666f2ad commit 92e1c72

File tree

4 files changed

+116
-3
lines changed

4 files changed

+116
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
0.6.2 (2024-xx-xx)
2+
------------------
3+
* Bugfix: None will stop appearing at the top of reports with nbconvert>7.0.0
4+
15
0.6.1 (2023-09-13)
26
------------------
37
* Feature: GridFS document storage in Mongo-backed instances is now sharded if the mongo server supports it.

notebooker/nbtemplates/notebooker_html_output.tpl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% extends 'full.tpl'%}
1+
{% extends 'index.html.j2' %}
22
{% block html_head %}
33
{{ super() }}
44
<style type="text/css">
@@ -40,7 +40,9 @@ div div.cell {
4040
'.prompt',
4141
'.output_stream',
4242
'.jp-outputPrompt',
43+
'.jp-OutputPrompt',
4344
'.jp-inputPrompt',
45+
'.jp-InputPrompt',
4446
'.jp-InputArea-editor',
4547
'.jp-RenderedText'
4648
];
@@ -93,6 +95,6 @@ div div.cell {
9395

9496
{% block stream %}
9597
{%- if resources.global_content_filter.include_output_prompt -%}
96-
{{ super() or "" }}
98+
{{ super() }}
9799
{%- endif -%}
98100
{%- endblock stream %}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
{% extends 'full.tpl' %}
2+
{% block html_head %}
3+
{{ super() }}
4+
<style type="text/css">
5+
6+
.btn {
7+
display: inline-block;
8+
text-align: center;
9+
text-decoration: none;
10+
margin: 2px 0;
11+
border: solid 1px transparent;
12+
border-radius: 4px;
13+
padding: 0.5em 1em;
14+
color: #ffffff;
15+
background-color: #9555af;
16+
}
17+
18+
.container {
19+
width: 97%;
20+
}
21+
22+
</style>
23+
24+
<!--[if mso]>
25+
<style type="text/css">
26+
div div.cell {
27+
border-style: none;
28+
margin-top: 4;
29+
}
30+
</style>
31+
<![endif]-->
32+
33+
<script>
34+
(function() {
35+
function addToggleCodeButton() {
36+
37+
var hidden = true;
38+
var code_blocks = [
39+
'.input',
40+
'.prompt',
41+
'.output_stream',
42+
'.jp-outputPrompt',
43+
'.jp-OutputPrompt',
44+
'.jp-inputPrompt',
45+
'.jp-InputPrompt',
46+
'.jp-InputArea-editor',
47+
'.jp-RenderedText'
48+
];
49+
var show_code = function(){
50+
code_blocks.forEach(
51+
function(block){
52+
var elements = document.querySelectorAll(block);
53+
for(var i = 0; i < elements.length; i++){
54+
elements[i].style.display = '';
55+
}
56+
}
57+
)
58+
};
59+
var hide_code = function(){
60+
code_blocks.forEach(
61+
function(block){
62+
var elements = document.querySelectorAll(block);
63+
for(var i = 0; i < elements.length; i++){
64+
elements[i].style.display = 'none';
65+
}
66+
}
67+
)
68+
};
69+
70+
var bodyElement = document.getElementsByClassName('jp-Notebook')[0];
71+
if (bodyElement === undefined) {
72+
bodyElement = document.getElementById('notebook-container');
73+
}
74+
var toggleDiv = document.createElement('div');
75+
var toggleButton = document.createElement('button');
76+
toggleButton.className = 'btn';
77+
toggleButton.onclick = function(){
78+
if(hidden){ show_code() } else { hide_code() };
79+
hidden = !hidden;
80+
};
81+
82+
var toggleText = document.createTextNode('Toggle Code');
83+
toggleButton.appendChild(toggleText);
84+
toggleDiv.appendChild(toggleButton);
85+
bodyElement.insertBefore( toggleDiv, bodyElement.firstChild);
86+
87+
// Default to hidden code
88+
hide_code()
89+
}
90+
91+
document.addEventListener('DOMContentLoaded', addToggleCodeButton);
92+
}());
93+
</script>
94+
{%- endblock html_head -%}
95+
96+
{% block stream %}
97+
{%- if resources.global_content_filter.include_output_prompt -%}
98+
{{ super() }}
99+
{%- endif -%}
100+
{%- endblock stream %}

notebooker/utils/conversion.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
import git
66
import jupytext
7+
import nbconvert
78
import nbformat
89
import pkg_resources
910
from nbconvert import HTMLExporter, PDFExporter, SlidesExporter
1011
from nbconvert.exporters.exporter import ResourcesDict
12+
from packaging import version
1113
from traitlets.config import Config
1214

1315
from notebooker.constants import TEMPLATE_DIR_SEPARATOR, kernel_spec
@@ -32,9 +34,14 @@ def ipython_to_html(
3234
html, resources = exporter.from_notebook_node(nb)
3335
else:
3436
c.HTMLExporter.preprocessors = ["nbconvert.preprocessors.ExtractOutputPreprocessor"]
37+
if version.parse(nbconvert.__version__) >= version.parse("7.0.0"):
38+
template_filename = "notebooker_html_output.tpl"
39+
else:
40+
template_filename = "notebooker_html_output_deprecated.tpl"
3541
c.HTMLExporter.template_file = pkg_resources.resource_filename(
36-
__name__, "../nbtemplates/notebooker_html_output.tpl"
42+
__name__, f"../nbtemplates/{template_filename}"
3743
)
44+
3845
c.HTMLExporter.exclude_input = hide_code
3946
c.HTMLExporter.exclude_input_prompt = hide_code
4047
c.HTMLExporter.exclude_output_prompt = hide_code

0 commit comments

Comments
 (0)