support contiguous stream output in notebook

Consecutive messages to stdout or stderr will not be split
into separate divs, until a new message to different stream
arrives.

Appending will only occur when the latest output is the same
as the new one. Interleaving messages will still result in
multiple divs.
pull/37/head
MinRK 15 years ago
parent b4392a5e4f
commit a9d9a8b72c

@ -251,6 +251,23 @@ var IPython = (function (IPython) {
CodeCell.prototype.append_stream = function (json) {
// temporary fix: if stream undefined (json file written prior to this patch),
// default to most likely stdout:
if (json.stream == undefined){
json.stream = 'stdout';
}
if (this.outputs.length > 0){
// have at least one output to consider
var last = this.outputs[this.outputs.length-1];
if (last.output_type == 'stream' && json.stream == last.stream){
// latest output was in the same stream,
// so append directly into its pre tag
this.element.find('div.output_stream').last().find('pre').append(json.text);
return;
}
}
// If we got here, attach a new div
var toinsert = this.create_output_area();
this.append_text(json.text, toinsert);
this.element.find('div.output').append(toinsert);

@ -710,7 +710,8 @@ var IPython = (function (IPython) {
var json = {};
json.output_type = msg_type;
if (msg_type === "stream") {
json.text = utils.fixConsole(content.data + '\n');
json.text = utils.fixConsole(content.data);
json.stream = content.name;
} else if (msg_type === "display_data") {
json = this.convert_mime_types(json, content.data);
} else if (msg_type === "pyout") {

Loading…
Cancel
Save