rawcell.js
89 lines
| 3.0 KiB
| application/javascript
|
JavascriptLexer
MinRK
|
r13671 | //---------------------------------------------------------------------------- | |
// 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 = []; | |||
MinRK
|
r13675 | var utils = IPython.utils; | |
MinRK
|
r13671 | ||
var select_type = CellToolbar.utils.select_ui_generator([ | |||
["None", "-"], | |||
["LaTeX", "text/latex"], | |||
["restructuredText", "text/restructuredtext"], | |||
["HTML", "text/html"], | |||
["markdown", "text/markdown"], | |||
MinRK
|
r13677 | ["Python", "application/x-python"], | |
MinRK
|
r13675 | ["Custom", "dialog"], | |
MinRK
|
r13671 | ||
], | |||
// setter | |||
function(cell, value) { | |||
MinRK
|
r13675 | if (value === "-") { | |
delete cell.metadata.raw_mimetype; | |||
MinRK
|
r13671 | } else if (value === 'dialog'){ | |
MinRK
|
r13675 | 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(); | |||
} | |||
}); | |||
MinRK
|
r13671 | } else { | |
MinRK
|
r13675 | cell.metadata.raw_mimetype = value; | |
MinRK
|
r13671 | } | |
}, | |||
//getter | |||
function(cell) { | |||
MinRK
|
r13675 | return cell.metadata.raw_mimetype || ""; | |
MinRK
|
r13671 | }, | |
// 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)); |