diff --git a/IPython/html/static/notebook/js/notebook.js b/IPython/html/static/notebook/js/notebook.js
index 8bcf3c9fa..ac8b220a3 100644
--- a/IPython/html/static/notebook/js/notebook.js
+++ b/IPython/html/static/notebook/js/notebook.js
@@ -999,19 +999,21 @@ define([
Notebook.prototype.to_code = function (index) {
var i = this.index_or_selected(index);
if (this.is_valid_cell_index(i)) {
- var source_element = this.get_cell_element(i);
- var source_cell = source_element.data("cell");
+ var source_cell = this.get_cell(i);
if (!(source_cell instanceof codecell.CodeCell)) {
var target_cell = this.insert_cell_below('code',i);
var text = source_cell.get_text();
if (text === source_cell.placeholder) {
text = '';
}
+ //metadata
+ target_cell.metadata = source_cell.metadata;
+
target_cell.set_text(text);
// 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_element.remove();
+ source_cell.element.remove();
this.select(i);
var cursor = source_cell.code_mirror.getCursor();
target_cell.code_mirror.setCursor(cursor);
@@ -1029,21 +1031,24 @@ define([
Notebook.prototype.to_markdown = function (index) {
var i = this.index_or_selected(index);
if (this.is_valid_cell_index(i)) {
- var source_element = this.get_cell_element(i);
- var source_cell = source_element.data("cell");
+ var source_cell = this.get_cell(i);
+
if (!(source_cell instanceof textcell.MarkdownCell)) {
var 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);
// 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_element.remove();
+ source_cell.element.remove();
this.select(i);
if ((source_cell instanceof textcell.TextCell) && source_cell.rendered) {
target_cell.render();
@@ -1064,22 +1069,24 @@ define([
Notebook.prototype.to_raw = function (index) {
var i = this.index_or_selected(index);
if (this.is_valid_cell_index(i)) {
- var source_element = this.get_cell_element(i);
- var source_cell = source_element.data("cell");
var target_cell = null;
+ var source_cell = this.get_cell(i);
+
if (!(source_cell instanceof textcell.RawCell)) {
target_cell = this.insert_cell_below('raw',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);
// 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_element.remove();
+ source_cell.element.remove();
this.select(i);
var cursor = source_cell.code_mirror.getCursor();
target_cell.code_mirror.setCursor(cursor);
@@ -1099,8 +1106,7 @@ define([
level = level || 1;
var i = this.index_or_selected(index);
if (this.is_valid_cell_index(i)) {
- var source_element = this.get_cell_element(i);
- var source_cell = source_element.data("cell");
+ var source_cell = this.get_cell(i);
var target_cell = null;
if (source_cell instanceof textcell.HeadingCell) {
source_cell.set_level(level);
@@ -1110,6 +1116,8 @@ define([
if (text === source_cell.placeholder) {
text = '';
}
+ //metadata
+ target_cell.metadata = source_cell.metadata;
// We must show the editor before setting its contents
target_cell.set_level(level);
target_cell.unrender();
@@ -1117,7 +1125,7 @@ define([
// 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_element.remove();
+ source_cell.element.remove();
this.select(i);
var cursor = source_cell.code_mirror.getCursor();
target_cell.code_mirror.setCursor(cursor);