forked from kirbs-/hide_code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhide_code.js
More file actions
93 lines (80 loc) · 2.68 KB
/
Copy pathhide_code.js
File metadata and controls
93 lines (80 loc) · 2.68 KB
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
/* -*- coding: utf-8 -*-
* ----------------------------------------------------------------------------
* Copyright (c) 2015 - Chris Kirby
*
* Distributed under the terms of the Modified BSD License.
*
* An IPython notebook extension to hide code inputs and prompts for presentation.
* -----------------------------------------------------------------------------
*/
define([
'jquery',
'notebook/js/celltoolbar'
],
function ($, celltoolbar){
"use strict";
var ctb = celltoolbar.CellToolbar;
function hideCodeSetter(cell, value){
if (cell.metadata.hideCode == undefined){ cell.metadata.hideCode = false }
cell.metadata.hideCode = value;
toggleHideCode(cell);
}
function hideCodeGetter(cell){
var isHidden = cell.metadata.hideCode;
toggleHideCode(cell);
return (isHidden == undefined) ? undefined : isHidden
}
function hidePromptSetter(cell, value){
if (cell.metadata.hidePrompt == undefined){ cell.metadata.hidePrompt = false }
cell.metadata.hidePrompt = value;
toggleHidePrompt(cell);
}
function hidePromptGetter(cell){
var isHidden = cell.metadata.hidePrompt;
toggleHidePrompt(cell);
return (isHidden == undefined) ? undefined : isHidden
}
function toggleHideCode(cell){
var c = $(cell.element);
if (cell.metadata.hideCode && cell.classs_config.classname != 'MarkdownCell'){
c.find('.input_area').hide();
} else {
c.find('.input_area').show();
}
}
function toggleHidePrompt(cell){
var c = $(cell.element);
if (cell.metadata.hidePrompt){
c.find('.prompt').css('visibility','hidden');
} else {
c.find('.prompt').css('visibility','visible');
}
}
/**
* Add a toolbar button to toggle visibility of all code cells, input/output prompts, and remove any highlighting for the selected cell.
**/
function addHideCodeButtonToToolbar(){
IPython.toolbar.add_buttons_group([
{
'label' : 'Hide/show code',
'icon' : 'fa-code',
'callback' : function() {
$('.input').toggle();
$('.prompt').toggle();
$('.ctb_show').toggle();
$('.selected').removeClass('selected').addClass('unselected');
}
}
]);
}
var hideCodeCallback = ctb.utils.checkbox_ui_generator( 'Hide Code ', hideCodeSetter, hideCodeGetter);
var hidePromptCallback = ctb.utils.checkbox_ui_generator('Hide Prompts ', hidePromptSetter, hidePromptGetter);
function setup(){
ctb.register_callback('hide_code.hideCode', hideCodeCallback);
ctb.register_callback('hide_code.hidePrompts', hidePromptCallback);
ctb.register_preset('Hide code',['hide_code.hidePrompts','hide_code.hideCode']);
addHideCodeButtonToToolbar();
}
setup();
console.log('hide_code setup complete');
});