You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.0 KiB

/**
* ----------------------------------------------------------------------------
* Copyright (c) 2016 - Jan Schulz
*
* Distributed under the terms of the Modified BSD License.
*
* Extension to style markdown and output tables in the notebook with bootstrap
* ----------------------------------------------------------------------------
*/
define([
'require',
'jquery',
'base/js/events'
], function (
requirejs,
$,
events
) {
'use strict';
var sortable;
var bst = requirejs(
['https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.25.7/js/jquery.tablesorter.min.js'],
function () {
sortable = true;
bootstrapify_all();
},
function (err) {
sortable = false;
}
);
function bootstrapify_tables($tables, wherefound) {
wherefound = wherefound ? ' in '+ wherefound : '';
$tables.addClass('table table-condensed table-nonfluid');
if (sortable) {
$tables.tablesorter();
}
if ($tables.length > 0) {
console.log('beautified', $tables.length, 'tables' + wherefound + '...');
}
}
function bootstrapify_all (){
bootstrapify_tables($('.rendered_html table'));
}
function bootstrapify_output (event, type, value, metadata, $toinsert){
bootstrapify_tables($toinsert.find('table'), 'output');
}
function bootstrapify_mdcell (event, mdcell){
bootstrapify_tables(mdcell.cell.element.find('table'), 'md');
}
function load_css (name) {
$('<link/>').attr({
type: 'text/css',
rel: 'stylesheet',
href: requirejs.toUrl(name)
}).appendTo('head');
}
var load_jupyter_extension = function () {
load_css('./main.css');
events.on("notebook_loaded.Notebook", bootstrapify_all);
events.on("kernel_ready.Kernel", bootstrapify_all);
events.on("output_appended.OutputArea", bootstrapify_output);
events.on("rendered.MarkdownCell", bootstrapify_mdcell);
};
return {
'load_jupyter_extension': load_jupyter_extension,
'load_ipython_extension': load_jupyter_extension
};
});