From 898a609ace1e50eee9f101d768e58647242826c5 2011-08-19 02:47:52 From: Brian E. Granger Date: 2011-08-19 02:47:52 Subject: [PATCH] Adding page break logic to the print css. * I have added page-break-inside logic to div.input and div.output_area. * Fixed a bug in CodeCell that was putting the output_area class on the wrong div. --- diff --git a/IPython/frontend/html/notebook/static/css/notebook.css b/IPython/frontend/html/notebook/static/css/notebook.css index b77a8e3..8957b77 100644 --- a/IPython/frontend/html/notebook/static/css/notebook.css +++ b/IPython/frontend/html/notebook/static/css/notebook.css @@ -184,6 +184,10 @@ div.prompt { font-family: monospace; } +div.input { + page-break-inside: avoid; +} + div.input_area { color: black; } @@ -203,7 +207,8 @@ div.output_prompt { /* This class is applied to all types of output (pyout, pyerr, stream, display_data) */ div.output_area { - padding: 0px 0.4em + padding: 0px 0.4em; + page-break-inside: avoid; } /* This is the output area after the Out[] prompt of type pyout */ @@ -295,3 +300,8 @@ div.text_cell_render { font-family: monospace; } +@media print { + body { overflow: visible !important; } + .ui-widget-content { border: 0px; } +} + diff --git a/IPython/frontend/html/notebook/static/js/codecell.js b/IPython/frontend/html/notebook/static/js/codecell.js index 79a8140..42bbb45 100644 --- a/IPython/frontend/html/notebook/static/js/codecell.js +++ b/IPython/frontend/html/notebook/static/js/codecell.js @@ -206,12 +206,12 @@ var IPython = (function (IPython) { CodeCell.prototype.append_pyout = function (json) { n = json.prompt_number || ' '; - var toinsert = $("
").addClass("output_pyout hbox"); + var toinsert = $("
").addClass("output_pyout hbox output_area"); toinsert.append($('
'). addClass('prompt output_prompt'). html('Out[' + n + ']:') ); - this.append_mime_type(json, toinsert).addClass('output_area'); + this.append_mime_type(json, toinsert); toinsert.children().last().addClass("box_flex1 pyout_area"); this.element.find("div.output").append(toinsert); // If we just output latex, typeset it. @@ -252,19 +252,19 @@ var IPython = (function (IPython) { CodeCell.prototype.append_mime_type = function (json, element) { element = element || this.element.find("div.output"); if (json.html !== undefined) { - this.append_html(json.html, element); + inserted = this.append_html(json.html, element); } else if (json.latex !== undefined) { - this.append_latex(json.latex, element); + inserted = this.append_latex(json.latex, element); } else if (json.svg !== undefined) { - this.append_svg(json.svg, element); + inserted = this.append_svg(json.svg, element); } else if (json.png !== undefined) { - this.append_png(json.png, element); + inserted = this.append_png(json.png, element); } else if (json.jpeg !== undefined) { - this.append_jpeg(json.jpeg, element); + inserted = this.append_jpeg(json.jpeg, element); } else if (json.text !== undefined) { - this.append_text(json.text, element); + inserted = this.append_text(json.text, element); }; - return element; + return inserted; }; @@ -273,7 +273,7 @@ var IPython = (function (IPython) { var toinsert = $("
").addClass("output_html rendered_html"); toinsert.append(html); element.append(toinsert); - return element; + return toinsert; } @@ -282,7 +282,7 @@ var IPython = (function (IPython) { var toinsert = $("
").addClass("output_stream"); toinsert.append($("
").html(data));
         element.append(toinsert);
-        return element;
+        return toinsert;
     };
 
 
@@ -291,7 +291,7 @@ var IPython = (function (IPython) {
         var toinsert = $("
").addClass("output_svg"); toinsert.append(svg); element.append(toinsert); - return element; + return toinsert; }; @@ -300,7 +300,7 @@ var IPython = (function (IPython) { var toinsert = $("
").addClass("output_png"); toinsert.append($("").attr('src','data:image/png;base64,'+png)); element.append(toinsert); - return element; + return toinsert; }; @@ -309,7 +309,7 @@ var IPython = (function (IPython) { var toinsert = $("
").addClass("output_jpeg"); toinsert.append($("").attr('src','data:image/jpeg;base64,'+jpeg)); element.append(toinsert); - return element; + return toinsert; }; @@ -320,7 +320,7 @@ var IPython = (function (IPython) { var toinsert = $("
").addClass("output_latex"); toinsert.append(latex); element.append(toinsert); - return element; + return toinsert; } diff --git a/IPython/frontend/html/notebook/static/js/printwidget.js b/IPython/frontend/html/notebook/static/js/printwidget.js index d9d2baf..896740a 100644 --- a/IPython/frontend/html/notebook/static/js/printwidget.js +++ b/IPython/frontend/html/notebook/static/js/printwidget.js @@ -51,4 +51,4 @@ var IPython = (function (IPython) { return IPython; -}(IPython)); \ No newline at end of file +}(IPython)); diff --git a/IPython/frontend/html/notebook/templates/notebook.html b/IPython/frontend/html/notebook/templates/notebook.html index 3c086d3..9153858 100644 --- a/IPython/frontend/html/notebook/templates/notebook.html +++ b/IPython/frontend/html/notebook/templates/notebook.html @@ -69,7 +69,7 @@ - +