File size: 8,255 Bytes
c1384fc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
// The following are various examples taken from README.md. Each section
// contains code that you could place into your own custom.js file. Note that
// only one of these should be used, though you might want to combine ideas
// from the various examples.
//// 1. Simple "My favorites" menu inserted at the *bottom* of "Snippets", with horizontal-line separator
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
var horizontal_line = '---';
var my_favorites = {
'name' : 'My favorites',
'sub-menu' : [
{
'name' : 'Menu item text',
'snippet' : ['new_command(3.14)',],
},
{
'name' : 'Another menu item',
'snippet' : ['another_new_command(2.78)',],
},
],
};
snippets_menu.options['menus'] = snippets_menu.default_menus;
snippets_menu.options['menus'][0]['sub-menu'].push(horizontal_line);
snippets_menu.options['menus'][0]['sub-menu'].push(my_favorites);
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 2. "My favorites" menu with lots of stringy goodness
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
var horizontal_line = '---';
var my_favorites = {
'name' : 'My $\\nu$ favorites',
'sub-menu' : [
{
'name' : 'Multi-line snippet',
'snippet' : ['new_command(3.14)',
'other_new_code_on_new_line("with a string!")',
'stringy(\'escape single quotes once\')',
"stringy2('or use single quotes inside of double quotes')",
'backslashy("This \\ appears as just one backslash in the output")',
'backslashy2("Here are \\\\ two backslashes")',],
},
{
'name' : 'TeX appears correctly $\\alpha_W e\\int_0 \\mu \\epsilon$',
'snippet' : ['another_new_command(2.78)',],
},
],
};
snippets_menu.options['menus'].push(snippets_menu.default_menus[0]);
snippets_menu.options['menus'][0]['sub-menu'].push(horizontal_line);
snippets_menu.options['menus'][0]['sub-menu'].push(my_favorites);
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 3. Delete "Matplotlib"'s "Setup for scripts" item
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
snippets_menu.python.matplotlib['sub-menu'].splice(1, 1); // Delete 1 element starting at position 1 of the sub-menu
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 4. Swap setup items in "Matplotlib" sub-menu
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
var tmp = snippets_menu.python.matplotlib['sub-menu'][0];
snippets_menu.python.matplotlib['sub-menu'][0] = snippets_menu.python.matplotlib['sub-menu'][1];
snippets_menu.python.matplotlib['sub-menu'][1] = tmp;
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 5. Insert "My favorites" as a new top-level menu before "Snippets", instead of inside "Snippets"
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
var my_favorites = {
'name' : 'My favorites',
'sub-menu' : [
{
'name' : 'Menu item text',
'snippet' : ['new_command(3.14)',],
},
{
'name' : 'Another menu item',
'snippet' : ['another_new_command(2.78)',],
},
],
};
snippets_menu.options['menus'].push(my_favorites);
snippets_menu.options['menus'].push(snippets_menu.default_menus[0]);
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 6. Insert "My favorites" as a new top-level menu after "Snippets", instead of inside "Snippets"
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
var my_favorites = {
'name' : 'My favorites',
'sub-menu' : [
{
'name' : 'Menu item text',
'snippet' : ['new_command(3.14)',],
},
{
'name' : 'Another menu item',
'snippet' : ['another_new_command(2.78)',],
},
],
};
snippets_menu.options['menus'].push(snippets_menu.default_menus[0]);
snippets_menu.options['menus'].push(my_favorites);
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 7. Place "Snippets" before "Help" menu
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
snippets_menu.options['insert_before_sibling'] = true;
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 8. Move SymPy and Numpy to navbar and delete pandas
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
snippets_menu.default_menus[0]['sub-menu'].splice(3, 2); // Remove SymPy and pandas
snippets_menu.python.sympy['sub-menu-direction'] = 'left'; // Point new SymPy menus to left
snippets_menu.python.numpy['sub-menu-direction'] = 'left'; // Point new Numpy menus to left
snippets_menu.options['menus'].push(snippets_menu.default_menus[0]); // Start with the remaining "Snippets" menu
snippets_menu.options['menus'].push(snippets_menu.python.sympy); // Follow that with a new SymPy menu
snippets_menu.options['menus'].push(snippets_menu.python.numpy); // Follow that with a new Numpy menu
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 9. Change direction of sub-menus under "Snippets"
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
snippets_menu.options['direction_of_top_level_submenu'] = 'right';
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 10. Place "Snippets" inside "Insert" menu
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
snippets_menu.default_menus[0]['menu-direction'] = 'left'; // Open top-level menu to the left...
snippets_menu.default_menus[0]['sub-menu-direction'] = 'right'; // ...and sub-menus to the right.
snippets_menu.options['menus'].push('---', snippets_menu.default_menus[0]); // Add horizontal line and default menus
snippets_menu.options['sibling'] = $("#insert_cell_below"); // Find the place at which to insert the new menus
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
//// 11. Multiple menus in different places
requirejs(["nbextensions/snippets_menu/main"], function (snippets_menu) {
console.log('Loading `snippets_menu` customizations from `custom.js`');
var sympy_menu = [snippets_menu.python.sympy,];
sympy_menu[0]['sub-menu-direction'] = 'left';
snippets_menu.options['menus'] = sympy_menu;
snippets_menu.default_menus[0]['sub-menu'].splice(3, 1); // Remove SymPy from defaults
snippets_menu.default_menus[0]['menu-direction'] = 'left';
snippets_menu.default_menus[0]['sub-menu-direction'] = 'right';
var sibling = $("#insert_cell_below");
var inserted_menu = [
'---',
snippets_menu.default_menus[0],
];
snippets_menu.menu_setup(inserted_menu, sibling, false);
console.log('Loaded `snippets_menu` customizations from `custom.js`');
});
|