deprecate heading cells in UI

- removed from Kernel Menu
- Main toolbar warns via shouty dialog
- keyboard shortcuts still work to make headings in markdown cells, with no warning
This commit is contained in:
Min RK 2014-11-03 12:07:44 -08:00
parent 963921c4ff
commit 04bcfa626d
3 changed files with 30 additions and 51 deletions

View File

@ -139,6 +139,7 @@ define([
.append($('<option/>').attr('value','code').text('Code'))
.append($('<option/>').attr('value','markdown').text('Markdown'))
.append($('<option/>').attr('value','raw').text('Raw NBConvert'))
.append($('<option/>').attr('value','heading').text('Heading'))
);
};
@ -194,6 +195,11 @@ define([
case 'raw':
that.notebook.to_raw();
break;
case 'heading':
that.notebook._warn_heading();
that.notebook.to_heading();
that.element.find('#cell_type').val("markdown");
break;
default:
console.log("unrecognized cell type:", cell_type);
}

View File

@ -246,24 +246,6 @@ define([
this.element.find('#to_raw').click(function () {
that.notebook.to_raw();
});
this.element.find('#to_heading1').click(function () {
that.notebook.to_heading(undefined, 1);
});
this.element.find('#to_heading2').click(function () {
that.notebook.to_heading(undefined, 2);
});
this.element.find('#to_heading3').click(function () {
that.notebook.to_heading(undefined, 3);
});
this.element.find('#to_heading4').click(function () {
that.notebook.to_heading(undefined, 4);
});
this.element.find('#to_heading5').click(function () {
that.notebook.to_heading(undefined, 5);
});
this.element.find('#to_heading6').click(function () {
that.notebook.to_heading(undefined, 6);
});
this.element.find('#toggle_current_output').click(function () {
that.notebook.toggle_output();

View File

@ -1081,48 +1081,39 @@ define([
}
};
Notebook.prototype._warn_heading = function () {
// warn about heading cells being removed
dialog.modal({
notebook: this,
keyboard_manager: this.keyboard_manager,
title : "Use markdown headings",
body : $("<p/>").text(
'IPython no longer uses special heading cells. ' +
'Instead, write your headings in Markdown cells using # characters:'
).append($('<pre/>').text(
'## This is a level 2 heading'
)),
buttons : {
"OK" : {},
}
});
};
/**
* Turn a cell into a heading cell.
* Turn a cell into a markdown cell with a heading.
*
* @method to_heading
* @param {Number} [index] A cell's index
* @param {Number} [level] A heading level (e.g., 1 becomes &lt;h1&gt;)
* @param {Number} [level] A heading level (e.g., 1 for h1)
*/
Notebook.prototype.to_heading = function (index, level) {
this.to_markdown(index);
level = level || 1;
var i = this.index_or_selected(index);
if (this.is_valid_cell_index(i)) {
var source_cell = this.get_cell(i);
var target_cell = null;
if (source_cell instanceof textcell.MarkdownCell) {
source_cell.set_heading_level(level);
} else {
target_cell = this.insert_cell_below('markdown',i);
var text = source_cell.get_text();
if (text === source_cell.placeholder) {
text = '';
}
//metadata
target_cell.metadata = source_cell.metadata;
// We must show the editor before setting its contents
target_cell.unrender();
target_cell.set_text(text);
target_cell.set_heading_level(level);
// make this value the starting point, so that we can only undo
// to this state, instead of a blank cell
target_cell.code_mirror.clearHistory();
source_cell.element.remove();
this.select(i);
var cursor = source_cell.code_mirror.getCursor();
target_cell.code_mirror.setCursor(cursor);
if ((source_cell instanceof textcell.TextCell) && source_cell.rendered) {
target_cell.render();
}
}
var cell = this.get_cell(i);
cell.set_heading_level(level);
this.set_dirty(true);
this.events.trigger('selected_cell_type_changed.Notebook',
{'cell_type':'markdown',level:level}
);
}
};