Merge pull request #4306 from minrk/raw-cell-metadata
add raw_mimetype metadata to raw cells
commit
4039e246fc
@ -0,0 +1,90 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// Copyright (C) 2012 The IPython Development Team
|
||||
//
|
||||
// Distributed under the terms of the BSD License. The full license is in
|
||||
// the file COPYING, distributed as part of this software.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//============================================================================
|
||||
// CellToolbar Example
|
||||
//============================================================================
|
||||
|
||||
(function(IPython) {
|
||||
"use strict";
|
||||
|
||||
var CellToolbar = IPython.CellToolbar;
|
||||
var raw_cell_preset = [];
|
||||
var utils = IPython.utils;
|
||||
|
||||
var select_type = CellToolbar.utils.select_ui_generator([
|
||||
["None", "-"],
|
||||
["LaTeX", "text/latex"],
|
||||
["reST", "text/restructuredtext"],
|
||||
["HTML", "text/html"],
|
||||
["Markdown", "text/markdown"],
|
||||
["Python", "application/x-python"],
|
||||
["Custom", "dialog"],
|
||||
|
||||
],
|
||||
// setter
|
||||
function(cell, value) {
|
||||
if (value === "-") {
|
||||
delete cell.metadata.raw_mimetype;
|
||||
} else if (value === 'dialog'){
|
||||
var dialog = $('<div/>').append(
|
||||
$("<p/>")
|
||||
.html("Set the MIME type of the raw cell:")
|
||||
).append(
|
||||
$("<br/>")
|
||||
).append(
|
||||
$('<input/>').attr('type','text').attr('size','25')
|
||||
.val(cell.metadata.raw_mimetype || "-")
|
||||
);
|
||||
IPython.dialog.modal({
|
||||
title: "Raw Cell MIME Type",
|
||||
body: dialog,
|
||||
buttons : {
|
||||
"Cancel": {},
|
||||
"OK": {
|
||||
class: "btn-primary",
|
||||
click: function () {
|
||||
console.log(cell);
|
||||
cell.metadata.raw_mimetype = $(this).find('input').val();
|
||||
console.log(cell.metadata);
|
||||
}
|
||||
}
|
||||
},
|
||||
open : function (event, ui) {
|
||||
var that = $(this);
|
||||
// Upon ENTER, click the OK button.
|
||||
that.find('input[type="text"]').keydown(function (event, ui) {
|
||||
if (event.which === utils.keycodes.ENTER) {
|
||||
that.find('.btn-primary').first().click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
that.find('input[type="text"]').focus().select();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
cell.metadata.raw_mimetype = value;
|
||||
}
|
||||
},
|
||||
//getter
|
||||
function(cell) {
|
||||
return cell.metadata.raw_mimetype || "";
|
||||
},
|
||||
// name
|
||||
"Raw NBConvert Format",
|
||||
// cell_types
|
||||
["raw"]
|
||||
);
|
||||
|
||||
CellToolbar.register_callback('raw_cell.select', select_type);
|
||||
|
||||
raw_cell_preset.push('raw_cell.select');
|
||||
|
||||
CellToolbar.register_preset('Raw Cell Format', raw_cell_preset);
|
||||
console.log('Raw Cell Format toolbar preset loaded.');
|
||||
|
||||
}(IPython));
|
||||
Loading…
Reference in new issue