diff --git a/COPYING.rst b/COPYING.rst
index 8d27461..decd8bd 100644
--- a/COPYING.rst
+++ b/COPYING.rst
@@ -5,7 +5,7 @@
IPython-contrib is licensed under the terms of the Modified BSD License (also
known as New or Revised or 3-Clause BSD), as follows:
-- Copyright (c) 2013-2014, IPython-contrib Developers
+- Copyright (c) 2013-2015, IPython-contrib Developers
All rights reserved.
diff --git a/README.md b/README.md
index ed9fc64..809dedd 100644
--- a/README.md
+++ b/README.md
@@ -20,19 +20,19 @@ IPython/Jupyter version support
There are different branches of the notebook extensions in this repository.
Please make sure you use the branch corresponding to your IPython/Jupyter version.
-Overview
-===========================
-The repository is organized in different categories:
-
-| Name | Description |
-|------------|-------------|
-| [usability](https://github.com/ipython-contrib/IPython-notebook-extensions/wiki#usability) | Additional functionality for the notebook |
-| [publishing](https://github.com/ipython-contrib/IPython-notebook-extensions/wiki#publishing) | Getting your notebooks out in the wild |
-| [styling](https://github.com/ipython-contrib/IPython-notebook-extensions/wiki#styling) | Styling schemes for different looks of the notebook |
-| [slidemode](https://github.com/ipython-contrib/IPython-notebook-extensions/wiki#slidemode) | Slideshow creation |
-| [testing](https://github.com/ipython-contrib/IPython-notebook-extensions/wiki#testing) | Extensions in a early stage |
-
Documentation
=============
-The extensions are documented in the Wiki. Please take a look [here](https://github.com/ipython-contrib/IPython-notebook-extensions/wiki)
+Some extensions are not documented. We encourage you to add documentation for them.
+
+All extensions that are maintained and active have a markdown readme file for documentation and a yaml file to
+ allow them being configured using the 'nbextensions' server extension.
+
+Installation
+============
+
+The simple case: You want to install the extensions as local user. Then, simply run `setup.py` or build
+a conda package by running `conda build`, and then do a `conda install nbextensions`.
+
+For more complex installation scenarios, please look up the documentation at the Jupyter homepage http://www.jupyter.org
+
diff --git a/conda-recipe/build.sh b/conda-recipe/build.sh
new file mode 100755
index 0000000..8a1fa0c
--- /dev/null
+++ b/conda-recipe/build.sh
@@ -0,0 +1 @@
+ipython install.py
\ No newline at end of file
diff --git a/conda-recipe/install.py b/conda-recipe/install.py
new file mode 100755
index 0000000..d26fe53
--- /dev/null
+++ b/conda-recipe/install.py
@@ -0,0 +1,81 @@
+# Install notebook extensions
+
+from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir, jupyter_runtime_dir
+from traitlets.config.loader import Config, JSONFileConfigLoader
+import IPython.extensions
+import os
+import sys
+import logging
+import json
+
+# http://stackoverflow.com/questions/12683834/how-to-copy-directory-recursively-in-python-and-overwrite-all
+def recursive_overwrite(src, dest, ignore=None):
+ if os.path.isdir(src):
+ if not os.path.isdir(dest):
+ os.makedirs(dest)
+ files = os.listdir(src)
+ if ignore is not None:
+ ignored = ignore(src, files)
+ else:
+ ignored = set()
+ for f in files:
+ if f not in ignored:
+ recursive_overwrite(os.path.join(src, f),
+ os.path.join(dest, f),
+ ignore)
+ else:
+ shutil.copyfile(src, dest)
+
+#
+# Install files
+#
+
+# copy extensions to IPython extensions directory
+extensions = os.path.dirname(IPython.extensions.__file__)
+src = os.path.join('src','extensions')
+print("Install extensions to %s" % extensions)
+recursive_overwrite(src, extensions)
+
+# Install templates
+templates = os.path.join(jupyter_data_dir(), 'templates')
+src = os.path.join('src','templates')
+print("Install templates to %s" % templates)
+recursive_overwrite(src, templates)
+
+# Install nbextensions
+nbextensions = os.path.join(jupyter_data_dir(), 'nbextensions')
+src = os.path.join('src','nbextensions')
+print("Install notebook extensions to %s" % nbextensions)
+recursive_overwrite(src, nbextensions)
+
+#
+# Update nbconvert configuration
+#
+fname = os.path.join(jupyter_config_dir(), 'jupyter_nbconvert_config.json')
+cl = JSONFileConfigLoader(fname)
+config = cl.load_config()
+newconfig=Config()
+# Set template path, pre- and postprocessors of notebook extensions
+newconfig.Exporter.template_path = [os.path.join(jupyter_data_dir(),'templates') ]
+newconfig.Exporter.preprocessors = ["codefolding.CodeFoldingPreprocessor", "pymdpreprocessor.PyMarkdownPreprocessor" ]
+newconfig.NbConvertApp.postprocessor_class = 'embed.EmbedPostProcessor'
+config.merge(newconfig)
+config.version = 1
+s=json.dumps(config, indent=2, separators=(',', ': '), sort_keys=True)
+with open(fname, 'w') as f:
+ f.write(s)
+
+#
+# Update notebook configuration
+#
+fname = os.path.join(jupyter_config_dir(), 'jupyter_notebook_config.json')
+cl = JSONFileConfigLoader(fname, log=log)
+config = cl.load_config()
+newconfig=Config()
+# Add server extension of /nbextension/ configuration tool
+newconfig.NotebookApp.server_extensions = [ "nbextensions" ]
+config.merge(newconfig)
+config.version = 1
+s=json.dumps(config, indent=2, separators=(',', ': '), sort_keys=True)
+with open(fname, 'w') as f:
+ f.write(s)
diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml
new file mode 100755
index 0000000..fb80415
--- /dev/null
+++ b/conda-recipe/meta.yaml
@@ -0,0 +1,36 @@
+package:
+ name: nbextensions
+ version: !!str 0.3
+
+source:
+ path: ./src
+
+build:
+ script: ipython install.py
+
+requirements:
+ build:
+ - python
+ - jupyter-client
+ - jupyter-core
+ - jupyter-notebook
+ - nbconvert
+ - nbformat
+ - traitlets
+ - ipython >=4
+
+ run:
+ - python
+ - jupyter-client
+ - jupyter-core
+ - jupyter-notebook
+ - nbconvert
+ - nbformat
+ - traitlets
+ - ipython >=4
+
+about:
+ home: https://github.com/ipython-contrib/IPython-notebook-extensions/wiki
+ license: Modified BSD License
+ summary: 'Notebook extensions for the IPython notebook'
+
diff --git a/config/ipython_notebook_config.py b/config/ipython_notebook_config.py
deleted file mode 100644
index ad877e9..0000000
--- a/config/ipython_notebook_config.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Configuration file for ipython-notebook.
-
-from IPython.utils.path import get_ipython_dir
-import os
-import sys
-
-ipythondir = get_ipython_dir()
-extensions = os.path.join(ipythondir,'extensions')
-sys.path.append( extensions )
-
-c = get_config()
-c.NotebookApp.open_browser = False
-#c.IPKernelApp.ip = '127.0.0.1'
-#c.FileNotebookManager.notebook_dir = 'i:\\notebook'
-
-c.NotebookApp.server_extensions = [ 'nbextensions' ]
-c.NotebookApp.extra_template_paths = [os.path.join(ipythondir,'templates') ]
-
diff --git a/config/main.css b/config/main.css
deleted file mode 100644
index 5f1c1b3..0000000
--- a/config/main.css
+++ /dev/null
@@ -1,6 +0,0 @@
-
-.nbextension-row {
- border-bottom: 2px solid #888;
- padding-left: 20px;
- padding-bottom: 20px;
-}
diff --git a/config/main.js b/config/main.js
deleted file mode 100644
index 7bf850a..0000000
--- a/config/main.js
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright (c) IPython-Contrib Team.
-// Distributed under the terms of the Modified BSD License.
-
-// Show notebook extension configuration
-
-require([
- 'base/js/namespace',
- 'base/js/utils',
- 'base/js/page',
- 'base/js/events',
- 'jquery',
- 'require',
- 'contents',
- 'services/config'
-], function(
- IPython,
- utils,
- page,
- events,
- $, require,
- contents,
- configmod
- ){
- page = new page.Page();
-
- var base_url = utils.get_body_data('baseUrl');
- var extension_list = $('body').data('extension-list');
-
- /* build html body listing all extensions */
- var html = "";
- for(var i=0; i < extension_list.length; i++) {
- var extension = extension_list[i];
- var url = base_url + extension['url'];
- var icon = url + '/' + extension['Icon'];
- var id = extension['Name'].replace(/\s+/g, '');
-
- html += '
\n'
- +'
\n';
-
- html += '
'
- +'
'
- +'
' + extension['Name'] + '
';
-
- html += '
' + extension['Description'] +
- '
more...';
- html += '
'
- +''
- +'
';
-
- if (extension['Parameter'] != undefined) {
- /* add an input element to configure extension parameters */
- var inputid = 'input_' + extension['Parameter'];
- var description = 'Parameter: ' + extension['Parameter'];
- console.log(extension.hasOwnProperty('ParameterDescription'))
- if (extension.hasOwnProperty('ParameterDescription') === true) description += '
'+extension['ParameterDescription'];
- html += '
'
- + description + ''
- + '
';
- }
- html += '
'
- +'
\n';
- html += '

'
- +'
'
-
- }
- $("#nbextensions-container").html(html);
-
- /**
- * Update config in json config file on server to reflect changed activate/deactivate stae
- */
- var changeConfig = function(id,state) {
- for(var i=0; i < extension_list.length; i++) {
- var extension = extension_list[i];
- var url = base_url + extension['url'] + '/' + extension['Main'];
- url = url.split('.js')[0];
- url = url.split('nbextensions/')[1] ;
- var extid = extension['Name'].replace(/\s+/g, '');
- if (extid === id) {
- var ext = {};
-
- if (state === true) {
- console.log("Turn extension " + extension['Name'] + ' on');
- ext[url] = true;
- config.update({"load_extensions": ext })
- } else {
- console.log("Turn extension " + extension['Name'] + ' off');
- ext[url] = null;
- config.update({"load_extensions": ext })
- }
- }
- }
- };
-
- /**
- * Handle button click event to activate/deactivate extension
- */
- var clickEvent = function(e) {
-
- var id = this.id.replace(/-on|-off/,'');
- var state = this.id.search(/-on/) >= 0;
- if (state === true) {
- set_buttons(id,false);
- changeConfig(id,true)
- } else {
- set_buttons(id,true);
- changeConfig(id,false)
- }
- };
-
- /**
- * install click handler for buttons
- */
- for(var i=0; i < extension_list.length; i++) {
- var extension = extension_list[i];
- var id = extension['Name'].replace(/\s+/g, '');
- console.log("Found extension:",id);
- $(document.getElementById(id+'-on')).on('click', clickEvent );
- $(document.getElementById(id+'-off')).on('click', clickEvent );
- }
-
- var set_buttons = function(id, state) {
- var on = $(document.getElementById(id+'-on'));
- var off = $(document.getElementById(id+'-off'));
- if (state === true) {
- off = $(document.getElementById(id+'-on'));
- on = $(document.getElementById(id+'-off'));
- }
-
- on.prop('disabled', true);
- on.removeClass('btn-primary');
- on.addClass('btn-default');
- off.prop('disabled', false);
- off.addClass('btn-primary');
- off.removeClass('btn-default')
- };
-
- /**
- * handle input form for extension parameters, update parameter in json config file on server
- */
- var handle_input = function(event, configkey)
- {
- var form = event.target.id;
- var input = $(document.getElementById(form));
- var c = {};
- c[configkey] = input.val();
- config.update(c)
- };
-
- /**
- *
- * Get configuration from json config file on server
- */
- var config = new configmod.ConfigSection('notebook', {base_url: base_url});
- config.load();
-
- /* set activate/deactivate buttons and populate parameter input once config is loaded */
- config.loaded.then(function() {
- if (config.data.load_extensions) {
- var nbextension_paths = Object.getOwnPropertyNames(
- config.data.load_extensions);
- for(var i=0; i < extension_list.length; i++) {
- var extension = extension_list[i];
- var parameter = extension['Parameter'];
- if ( parameter != undefined) {
- if (config.data.hasOwnProperty(parameter)) {
- var input = $(document.getElementById('input_'+parameter));
- var configkey = parameter;
- input.val(config.data[parameter]);
- input.on('keyup', function(event) { handle_input(event, configkey);});
- }
- }
- var url = base_url + extension['url'] + '/' + extension['Main'];
- url = url.split('.js')[0];
- url = url.split('nbextensions/')[1];
- if ( config.data.load_extensions[url] === true) {
- var id = extension['Name'].replace(/\s+/g, '');
- set_buttons(id,false);
- }
- }
- }
- });
-
- /**
- * Add CSS file
- *
- * @param name filename
- */
- var load_css = function (name) {
- var link = document.createElement("link");
- link.type = "text/css";
- link.rel = "stylesheet";
- link.href = require.toUrl(name);
- document.getElementsByTagName("head")[0].appendChild(link);
- };
- load_css('/nbextensions/config/main.css');
- page.show();
-
-});
diff --git a/custom.example.js b/custom.example.js
deleted file mode 100644
index c0852f0..0000000
--- a/custom.example.js
+++ /dev/null
@@ -1,58 +0,0 @@
-// Example for custom.js
-
-// we want strict javascript that fails on ambiguous syntax
-"use strict";
-
-// activate extensions only after Notebook is initialized
-require(["base/js/events"], function (events) {
- events.on("app_initialized.NotebookApp", function () {
- /*
- * all exentensions from IPython-notebook-extensions, uncomment to activate
- */
-
- // PUBLISHING
-// IPython.load_extensions('publishing/nbviewer_theme/main')
-// IPython.load_extensions('publishing/gist_it')
-// IPython.load_extensions('publishing/nbconvert_button')
-// IPython.load_extensions('publishing/printview/main')
-// IPython.load_extensions('publishing/printviewmenu_button')
-
- // SLIDEMODE
-// IPython.load_extensions('slidemode/main')
-
-
- // STYLING
-// IPython.load_extensions('styling/css_selector/main')
-
- // TESTING
-// IPython.load_extensions('testing/hierarchical_collapse/main')
-
- // USABILITY
-// IPython.load_extensions('usability/aspell/ipy-aspell')
-// IPython.load_extensions('usability/codefolding/main')
-// IPython.load_extensions('usability/dragdrop/drag-and-drop')
-// IPython.load_extensions('usability/runtools/main')
-// IPython.load_extensions('usability/chrome_clipboard/main')
-// IPython.load_extensions('usability/navigation-hotkeys/main')
-// IPython.load_extensions('usability/toggle_all_line_number')
-// IPython.load_extensions('usability/help_panel/help_panel')
-// IPython.load_extensions('usability/hide_input/main')
-// IPython.load_extensions('usability/split-combine')
-// IPython.load_extensions('usability/read-only')
-// IPython.load_extensions('usability/init_cell/main')
-// IPython.load_extensions('usability/limit_output/main')
-// IPython.load_extensions('usability/autosavetime')
-// IPython.load_extensions('usability/autoscroll')
-// IPython.load_extensions('usability/breakpoints')
-// IPython.load_extensions('usability/clean_start')
-// IPython.load_extensions('usability/comment-uncomment')
-// IPython.load_extensions('usability/linenumbers')
-// IPython.load_extensions('usability/no_exec_dunder')
-// IPython.load_extensions('usability/noscroll')
-// IPython.load_extensions('usability/hide_io_selected')
-// IPython.load_extensions('usability/execute_time/ExecuteTime')
-// IPython.load_extensions('usability/python-markdown/main')
-
- });
-});
-
diff --git a/usability/codefolding/codefolding.py b/extensions/codefolding.py
similarity index 100%
rename from usability/codefolding/codefolding.py
rename to extensions/codefolding.py
diff --git a/extensions/embed.py b/extensions/embed.py
new file mode 100755
index 0000000..ac16f17
--- /dev/null
+++ b/extensions/embed.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+"""PostProcessor for embedding markdown images in HTML files."""
+from __future__ import print_function
+
+import os
+import re
+import base64
+import requests
+
+from traitlets import Bool, Unicode, Int
+from nbconvert.postprocessors.base import PostProcessorBase
+
+
+class EmbedPostProcessor(PostProcessorBase):
+ """ Post processor designed to embed images in markdown cells as base64 encoded blob in HTML file """
+
+ def replfunc(self, match):
+ """ replace source url or file link with base64 encoded blob """
+ url = match.group(1)
+ imgformat = url.split('.')[-1]
+ if url.startswith('http'):
+ data = request.get(url)
+ elif url.startswith('data'):
+ img = '
'
+ return img
+ else:
+ with open(url, 'rb') as f:
+ data = f.read()
+
+ self.log.info("embedding url: %s, format: %s" % (url, imgformat))
+ b64_data=base64.b64encode(data).decode("utf-8")
+ if imgformat == "svg":
+ img = '
'
+ elif imgformat == "pdf":
+ img = '
'
+ else:
+ img = '
'
+ return img
+
+ def postprocess(self, input):
+ regex = re.compile('
')
+ ext = input.split('.')[-1]
+ output=input[0:-(len(ext)+1)] + '-embedded.' + ext
+ with open(input) as fin, open(output,'w') as fout:
+ for line in fin:
+ fout.write(regex.sub(self.replfunc,line))
+ fin.close()
+ fout.close()
diff --git a/usability/aspell/ipy-aspell-server.py b/extensions/ipy-aspell-server.py
similarity index 100%
rename from usability/aspell/ipy-aspell-server.py
rename to extensions/ipy-aspell-server.py
diff --git a/config/nbextensions.py b/extensions/nbextensions.py
similarity index 57%
rename from config/nbextensions.py
rename to extensions/nbextensions.py
index 5f30b71..6573edf 100644
--- a/config/nbextensions.py
+++ b/extensions/nbextensions.py
@@ -12,14 +12,14 @@ import os
import yaml
import json
+jupyterdir = jupyter_data_dir()
+nbextensions = (get_nbext_dir(), os.path.join(jupyterdir,'nbextensions'))
+exclude = [ 'mathjax' ]
class NBExtensionHandler(IPythonHandler):
"""Render the notebook extension configuration interface."""
@web.authenticated
def get(self):
- jupyterdir = jupyter_data_dir()
- nbextensions = (get_nbext_dir(), os.path.join(jupyterdir,'nbextensions'))
- exclude = [ 'mathjax' ]
yaml_list = []
# Traverse through nbextension subdirectories to find all yaml files
for root, dirs, files in chain.from_iterable(os.walk(root) for root in nbextensions):
@@ -55,16 +55,56 @@ class NBExtensionHandler(IPythonHandler):
self.log.info("Found extension %s" % extension['Name'])
stream.close()
json_list = json.dumps(extension_list)
+ # find where the Javascript code and the readme file are
+ config_js = None
+ config_md = None
+ for root, dirs, files in chain.from_iterable(os.walk(root) for root in nbextensions):
+ dirs[:] = [d for d in dirs if d not in exclude]
+ for f in files:
+ if root.endswith('nbconfig') and f =='main.js':
+ config_js = os.path.join(root, f)
+ if root.endswith('nbconfig') and f =='readme.md':
+ config_md = os.path.join(root, f)
+ if config_js is None: raise FileNotFoundError('Could not find nbconfig Javascript')
+ idx_js=config_js.find('nbextensions')
+ idx_md=config_js.find('nbextensions')
self.write(self.render_template('nbextensions.html',
base_url = self.base_url,
extension_list = json_list,
- page_title="Notebook Extension Configuration"
+ page_title="Notebook Extension Configuration",
+ config_js = self.base_url + config_js[idx_js::].replace('\\', '/'),
+ config_md = self.base_url + 'rendermd/' + config_md[idx_md::].replace('\\', '/')
)
)
-
+
+
+class RenderExtensionHandler(IPythonHandler):
+ """Render given markdown file"""
+ @web.authenticated
+ def get(self, path):
+ render_js = None
+ for root, dirs, files in chain.from_iterable(os.walk(root) for root in nbextensions):
+ dirs[:] = [d for d in dirs if d not in exclude]
+ for f in files:
+ if root.endswith('nbconfig') and f =='render.js':
+ render_js = os.path.join(root, f)
+ if render_js is None: raise FileNotFoundError('Could not find nbconfig Javascript')
+ idx_js=render_js.find('nbextensions')
+ self.write(self.render_template('rendermd.html',
+ base_url = self.base_url,
+ render_url = path,
+ page_title = path,
+ render_js = self.base_url + render_js[idx_js::].replace('\\', '/'),
+ )
+ )
+
+
def load_jupyter_server_extension(nbapp):
webapp = nbapp.web_app
base_url = webapp.settings['base_url']
+ mdregex = r'([^"\'>]+.md)'
webapp.add_handlers(".*$", [
+ (ujoin(base_url, r"/rendermd/%s" % mdregex), RenderExtensionHandler),
+ (ujoin(base_url, r"/nbextensions"), NBExtensionHandler),
(ujoin(base_url, r"/nbextensions/"), NBExtensionHandler)
])
diff --git a/usability/python-markdown/pymdpreprocessor.py b/extensions/pymdpreprocessor.py
similarity index 100%
rename from usability/python-markdown/pymdpreprocessor.py
rename to extensions/pymdpreprocessor.py
diff --git a/publishing/gist_it.js b/nbextensions/publishing/gist_it.js
similarity index 100%
rename from publishing/gist_it.js
rename to nbextensions/publishing/gist_it.js
diff --git a/publishing/htmltools/js_highlight.py b/nbextensions/publishing/htmltools/js_highlight.py
similarity index 100%
rename from publishing/htmltools/js_highlight.py
rename to nbextensions/publishing/htmltools/js_highlight.py
diff --git a/publishing/nbconvert_button.js b/nbextensions/publishing/nbconvert_button.js
similarity index 100%
rename from publishing/nbconvert_button.js
rename to nbextensions/publishing/nbconvert_button.js
diff --git a/publishing/nbviewer_theme/css/compact.css b/nbextensions/publishing/nbviewer_theme/css/compact.css
similarity index 100%
rename from publishing/nbviewer_theme/css/compact.css
rename to nbextensions/publishing/nbviewer_theme/css/compact.css
diff --git a/publishing/nbviewer_theme/css/dark.css b/nbextensions/publishing/nbviewer_theme/css/dark.css
similarity index 100%
rename from publishing/nbviewer_theme/css/dark.css
rename to nbextensions/publishing/nbviewer_theme/css/dark.css
diff --git a/publishing/nbviewer_theme/css/duck.css b/nbextensions/publishing/nbviewer_theme/css/duck.css
similarity index 100%
rename from publishing/nbviewer_theme/css/duck.css
rename to nbextensions/publishing/nbviewer_theme/css/duck.css
diff --git a/publishing/nbviewer_theme/main.js b/nbextensions/publishing/nbviewer_theme/main.js
similarity index 100%
rename from publishing/nbviewer_theme/main.js
rename to nbextensions/publishing/nbviewer_theme/main.js
diff --git a/publishing/printview/icon.png b/nbextensions/publishing/printview/icon.png
similarity index 100%
rename from publishing/printview/icon.png
rename to nbextensions/publishing/printview/icon.png
diff --git a/publishing/printview/main.js b/nbextensions/publishing/printview/main.js
similarity index 100%
rename from publishing/printview/main.js
rename to nbextensions/publishing/printview/main.js
diff --git a/wiki-images/printview-button.png b/nbextensions/publishing/printview/printview-button.png
similarity index 100%
rename from wiki-images/printview-button.png
rename to nbextensions/publishing/printview/printview-button.png
diff --git a/publishing/printview/printview.yaml b/nbextensions/publishing/printview/printview.yaml
similarity index 100%
rename from publishing/printview/printview.yaml
rename to nbextensions/publishing/printview/printview.yaml
diff --git a/publishing/printviewmenu_button.js b/nbextensions/publishing/printviewmenu_button.js
similarity index 100%
rename from publishing/printviewmenu_button.js
rename to nbextensions/publishing/printviewmenu_button.js
diff --git a/slidemode/README.md b/nbextensions/slidemode/README.md
similarity index 100%
rename from slidemode/README.md
rename to nbextensions/slidemode/README.md
diff --git a/slidemode/main.css b/nbextensions/slidemode/main.css
similarity index 100%
rename from slidemode/main.css
rename to nbextensions/slidemode/main.css
diff --git a/slidemode/main.js b/nbextensions/slidemode/main.js
similarity index 100%
rename from slidemode/main.js
rename to nbextensions/slidemode/main.js
diff --git a/styling/css_selector/css/compact.css b/nbextensions/styling/css_selector/css/compact.css
similarity index 100%
rename from styling/css_selector/css/compact.css
rename to nbextensions/styling/css_selector/css/compact.css
diff --git a/styling/css_selector/css/dark.css b/nbextensions/styling/css_selector/css/dark.css
similarity index 100%
rename from styling/css_selector/css/dark.css
rename to nbextensions/styling/css_selector/css/dark.css
diff --git a/styling/css_selector/css/duck.css b/nbextensions/styling/css_selector/css/duck.css
similarity index 100%
rename from styling/css_selector/css/duck.css
rename to nbextensions/styling/css_selector/css/duck.css
diff --git a/styling/css_selector/css/xkcd.css b/nbextensions/styling/css_selector/css/xkcd.css
similarity index 100%
rename from styling/css_selector/css/xkcd.css
rename to nbextensions/styling/css_selector/css/xkcd.css
diff --git a/styling/css_selector/main.js b/nbextensions/styling/css_selector/main.js
similarity index 100%
rename from styling/css_selector/main.js
rename to nbextensions/styling/css_selector/main.js
diff --git a/styling/zenmode/images/back1.jpg b/nbextensions/styling/zenmode/images/back1.jpg
similarity index 100%
rename from styling/zenmode/images/back1.jpg
rename to nbextensions/styling/zenmode/images/back1.jpg
diff --git a/styling/zenmode/images/back11.jpg b/nbextensions/styling/zenmode/images/back11.jpg
similarity index 100%
rename from styling/zenmode/images/back11.jpg
rename to nbextensions/styling/zenmode/images/back11.jpg
diff --git a/styling/zenmode/images/back12.jpg b/nbextensions/styling/zenmode/images/back12.jpg
similarity index 100%
rename from styling/zenmode/images/back12.jpg
rename to nbextensions/styling/zenmode/images/back12.jpg
diff --git a/styling/zenmode/images/back2.jpg b/nbextensions/styling/zenmode/images/back2.jpg
similarity index 100%
rename from styling/zenmode/images/back2.jpg
rename to nbextensions/styling/zenmode/images/back2.jpg
diff --git a/styling/zenmode/images/back21.jpg b/nbextensions/styling/zenmode/images/back21.jpg
similarity index 100%
rename from styling/zenmode/images/back21.jpg
rename to nbextensions/styling/zenmode/images/back21.jpg
diff --git a/styling/zenmode/images/back22.jpg b/nbextensions/styling/zenmode/images/back22.jpg
similarity index 100%
rename from styling/zenmode/images/back22.jpg
rename to nbextensions/styling/zenmode/images/back22.jpg
diff --git a/styling/zenmode/images/back3.jpg b/nbextensions/styling/zenmode/images/back3.jpg
similarity index 100%
rename from styling/zenmode/images/back3.jpg
rename to nbextensions/styling/zenmode/images/back3.jpg
diff --git a/styling/zenmode/images/ipynblogo0.png b/nbextensions/styling/zenmode/images/ipynblogo0.png
similarity index 100%
rename from styling/zenmode/images/ipynblogo0.png
rename to nbextensions/styling/zenmode/images/ipynblogo0.png
diff --git a/styling/zenmode/images/ipynblogo1.png b/nbextensions/styling/zenmode/images/ipynblogo1.png
similarity index 100%
rename from styling/zenmode/images/ipynblogo1.png
rename to nbextensions/styling/zenmode/images/ipynblogo1.png
diff --git a/styling/zenmode/main.css b/nbextensions/styling/zenmode/main.css
similarity index 100%
rename from styling/zenmode/main.css
rename to nbextensions/styling/zenmode/main.css
diff --git a/styling/zenmode/main.js b/nbextensions/styling/zenmode/main.js
similarity index 100%
rename from styling/zenmode/main.js
rename to nbextensions/styling/zenmode/main.js
diff --git a/testing/cellstate.js b/nbextensions/testing/cellstate.js
similarity index 100%
rename from testing/cellstate.js
rename to nbextensions/testing/cellstate.js
diff --git a/testing/hierarchical_collapse/hierarchical_collapse.tpl b/nbextensions/testing/hierarchical_collapse/hierarchical_collapse.tpl
similarity index 100%
rename from testing/hierarchical_collapse/hierarchical_collapse.tpl
rename to nbextensions/testing/hierarchical_collapse/hierarchical_collapse.tpl
diff --git a/testing/hierarchical_collapse/hierarchical_collapse_preprocessor.py b/nbextensions/testing/hierarchical_collapse/hierarchical_collapse_preprocessor.py
similarity index 100%
rename from testing/hierarchical_collapse/hierarchical_collapse_preprocessor.py
rename to nbextensions/testing/hierarchical_collapse/hierarchical_collapse_preprocessor.py
diff --git a/testing/hierarchical_collapse/ipython_nbconvert_config.py b/nbextensions/testing/hierarchical_collapse/ipython_nbconvert_config.py
similarity index 100%
rename from testing/hierarchical_collapse/ipython_nbconvert_config.py
rename to nbextensions/testing/hierarchical_collapse/ipython_nbconvert_config.py
diff --git a/testing/hierarchical_collapse/main.css b/nbextensions/testing/hierarchical_collapse/main.css
similarity index 100%
rename from testing/hierarchical_collapse/main.css
rename to nbextensions/testing/hierarchical_collapse/main.css
diff --git a/testing/hierarchical_collapse/main.js b/nbextensions/testing/hierarchical_collapse/main.js
similarity index 100%
rename from testing/hierarchical_collapse/main.js
rename to nbextensions/testing/hierarchical_collapse/main.js
diff --git a/testing/history/history.js b/nbextensions/testing/history/history.js
similarity index 100%
rename from testing/history/history.js
rename to nbextensions/testing/history/history.js
diff --git a/testing/history/ipy_nb_history_websocket.py b/nbextensions/testing/history/ipy_nb_history_websocket.py
similarity index 100%
rename from testing/history/ipy_nb_history_websocket.py
rename to nbextensions/testing/history/ipy_nb_history_websocket.py
diff --git a/testing/swc/main.js b/nbextensions/testing/swc/main.js
similarity index 100%
rename from testing/swc/main.js
rename to nbextensions/testing/swc/main.js
diff --git a/usability/aspell/ipy-aspell.css b/nbextensions/usability/aspell/ipy-aspell.css
similarity index 100%
rename from usability/aspell/ipy-aspell.css
rename to nbextensions/usability/aspell/ipy-aspell.css
diff --git a/usability/aspell/ipy-aspell.js b/nbextensions/usability/aspell/ipy-aspell.js
similarity index 100%
rename from usability/aspell/ipy-aspell.js
rename to nbextensions/usability/aspell/ipy-aspell.js
diff --git a/usability/autosavetime.js b/nbextensions/usability/autosavetime.js
similarity index 100%
rename from usability/autosavetime.js
rename to nbextensions/usability/autosavetime.js
diff --git a/usability/autoscroll.js b/nbextensions/usability/autoscroll.js
similarity index 100%
rename from usability/autoscroll.js
rename to nbextensions/usability/autoscroll.js
diff --git a/usability/breakpoints.js b/nbextensions/usability/breakpoints.js
similarity index 100%
rename from usability/breakpoints.js
rename to nbextensions/usability/breakpoints.js
diff --git a/usability/chrome-clipboard/chrome-clipboard.yaml b/nbextensions/usability/chrome-clipboard/chrome-clipboard.yaml
similarity index 100%
rename from usability/chrome-clipboard/chrome-clipboard.yaml
rename to nbextensions/usability/chrome-clipboard/chrome-clipboard.yaml
diff --git a/usability/chrome-clipboard/chrome.png b/nbextensions/usability/chrome-clipboard/chrome.png
similarity index 100%
rename from usability/chrome-clipboard/chrome.png
rename to nbextensions/usability/chrome-clipboard/chrome.png
diff --git a/usability/chrome-clipboard/main.js b/nbextensions/usability/chrome-clipboard/main.js
similarity index 100%
rename from usability/chrome-clipboard/main.js
rename to nbextensions/usability/chrome-clipboard/main.js
diff --git a/usability/clean_start.js b/nbextensions/usability/clean_start.js
similarity index 100%
rename from usability/clean_start.js
rename to nbextensions/usability/clean_start.js
diff --git a/usability/codefolding/codefolding.yaml b/nbextensions/usability/codefolding/codefolding.yaml
similarity index 100%
rename from usability/codefolding/codefolding.yaml
rename to nbextensions/usability/codefolding/codefolding.yaml
diff --git a/wiki-images/codefolding_firstline_folded.png b/nbextensions/usability/codefolding/codefolding_firstline_folded.png
similarity index 100%
rename from wiki-images/codefolding_firstline_folded.png
rename to nbextensions/usability/codefolding/codefolding_firstline_folded.png
diff --git a/wiki-images/codefolding_firstline_unfolded.png b/nbextensions/usability/codefolding/codefolding_firstline_unfolded.png
similarity index 100%
rename from wiki-images/codefolding_firstline_unfolded.png
rename to nbextensions/usability/codefolding/codefolding_firstline_unfolded.png
diff --git a/wiki-images/codefolding_indent_folded_1.png b/nbextensions/usability/codefolding/codefolding_indent_folded_1.png
similarity index 100%
rename from wiki-images/codefolding_indent_folded_1.png
rename to nbextensions/usability/codefolding/codefolding_indent_folded_1.png
diff --git a/wiki-images/codefolding_indent_folded_2.png b/nbextensions/usability/codefolding/codefolding_indent_folded_2.png
similarity index 100%
rename from wiki-images/codefolding_indent_folded_2.png
rename to nbextensions/usability/codefolding/codefolding_indent_folded_2.png
diff --git a/wiki-images/codefolding_indent_unfolded.png b/nbextensions/usability/codefolding/codefolding_indent_unfolded.png
similarity index 100%
rename from wiki-images/codefolding_indent_unfolded.png
rename to nbextensions/usability/codefolding/codefolding_indent_unfolded.png
diff --git a/usability/codefolding/firstline-fold.js b/nbextensions/usability/codefolding/firstline-fold.js
similarity index 100%
rename from usability/codefolding/firstline-fold.js
rename to nbextensions/usability/codefolding/firstline-fold.js
diff --git a/usability/codefolding/foldgutter.css b/nbextensions/usability/codefolding/foldgutter.css
similarity index 100%
rename from usability/codefolding/foldgutter.css
rename to nbextensions/usability/codefolding/foldgutter.css
diff --git a/usability/codefolding/icon.png b/nbextensions/usability/codefolding/icon.png
similarity index 100%
rename from usability/codefolding/icon.png
rename to nbextensions/usability/codefolding/icon.png
diff --git a/usability/codefolding/magic-fold.js b/nbextensions/usability/codefolding/magic-fold.js
similarity index 100%
rename from usability/codefolding/magic-fold.js
rename to nbextensions/usability/codefolding/magic-fold.js
diff --git a/usability/codefolding/main.js b/nbextensions/usability/codefolding/main.js
similarity index 100%
rename from usability/codefolding/main.js
rename to nbextensions/usability/codefolding/main.js
diff --git a/usability/comment-uncomment.js b/nbextensions/usability/comment-uncomment.js
similarity index 100%
rename from usability/comment-uncomment.js
rename to nbextensions/usability/comment-uncomment.js
diff --git a/usability/dragdrop/dragdrop.yaml b/nbextensions/usability/dragdrop/dragdrop.yaml
similarity index 100%
rename from usability/dragdrop/dragdrop.yaml
rename to nbextensions/usability/dragdrop/dragdrop.yaml
diff --git a/usability/dragdrop/embed.py b/nbextensions/usability/dragdrop/embed.py
similarity index 100%
rename from usability/dragdrop/embed.py
rename to nbextensions/usability/dragdrop/embed.py
diff --git a/usability/dragdrop/icon.png b/nbextensions/usability/dragdrop/icon.png
similarity index 100%
rename from usability/dragdrop/icon.png
rename to nbextensions/usability/dragdrop/icon.png
diff --git a/usability/dragdrop/main.js b/nbextensions/usability/dragdrop/main.js
similarity index 100%
rename from usability/dragdrop/main.js
rename to nbextensions/usability/dragdrop/main.js
diff --git a/usability/execute_time/ExecuteTime.css b/nbextensions/usability/execute_time/ExecuteTime.css
similarity index 100%
rename from usability/execute_time/ExecuteTime.css
rename to nbextensions/usability/execute_time/ExecuteTime.css
diff --git a/usability/execute_time/ExecuteTime.js b/nbextensions/usability/execute_time/ExecuteTime.js
similarity index 100%
rename from usability/execute_time/ExecuteTime.js
rename to nbextensions/usability/execute_time/ExecuteTime.js
diff --git a/usability/execute_time/ExecuteTime.yaml b/nbextensions/usability/execute_time/ExecuteTime.yaml
similarity index 100%
rename from usability/execute_time/ExecuteTime.yaml
rename to nbextensions/usability/execute_time/ExecuteTime.yaml
diff --git a/wiki-images/execution-timings-box.png b/nbextensions/usability/execute_time/execution-timings-box.png
similarity index 100%
rename from wiki-images/execution-timings-box.png
rename to nbextensions/usability/execute_time/execution-timings-box.png
diff --git a/wiki-images/execution-timings-menu.png b/nbextensions/usability/execute_time/execution-timings-menu.png
similarity index 100%
rename from wiki-images/execution-timings-menu.png
rename to nbextensions/usability/execute_time/execution-timings-menu.png
diff --git a/usability/execute_time/icon.png b/nbextensions/usability/execute_time/icon.png
similarity index 100%
rename from usability/execute_time/icon.png
rename to nbextensions/usability/execute_time/icon.png
diff --git a/usability/exercise/main.css b/nbextensions/usability/exercise/main.css
similarity index 100%
rename from usability/exercise/main.css
rename to nbextensions/usability/exercise/main.css
diff --git a/usability/exercise/main.js b/nbextensions/usability/exercise/main.js
similarity index 100%
rename from usability/exercise/main.js
rename to nbextensions/usability/exercise/main.js
diff --git a/usability/help_panel/help_panel.css b/nbextensions/usability/help_panel/help_panel.css
similarity index 100%
rename from usability/help_panel/help_panel.css
rename to nbextensions/usability/help_panel/help_panel.css
diff --git a/usability/help_panel/help_panel.js b/nbextensions/usability/help_panel/help_panel.js
similarity index 100%
rename from usability/help_panel/help_panel.js
rename to nbextensions/usability/help_panel/help_panel.js
diff --git a/usability/hide_input.js b/nbextensions/usability/hide_input.js
similarity index 100%
rename from usability/hide_input.js
rename to nbextensions/usability/hide_input.js
diff --git a/wiki-images/hide_input_all_hide.png b/nbextensions/usability/hide_input/hide_input_all_hide.png
similarity index 100%
rename from wiki-images/hide_input_all_hide.png
rename to nbextensions/usability/hide_input/hide_input_all_hide.png
diff --git a/wiki-images/hide_input_all_show.png b/nbextensions/usability/hide_input/hide_input_all_show.png
similarity index 100%
rename from wiki-images/hide_input_all_show.png
rename to nbextensions/usability/hide_input/hide_input_all_show.png
diff --git a/usability/hide_input/main.js b/nbextensions/usability/hide_input/main.js
similarity index 100%
rename from usability/hide_input/main.js
rename to nbextensions/usability/hide_input/main.js
diff --git a/usability/hide_input/strip_output_prompt.py b/nbextensions/usability/hide_input/strip_output_prompt.py
similarity index 100%
rename from usability/hide_input/strip_output_prompt.py
rename to nbextensions/usability/hide_input/strip_output_prompt.py
diff --git a/usability/hide_input_all.js b/nbextensions/usability/hide_input_all.js
similarity index 100%
rename from usability/hide_input_all.js
rename to nbextensions/usability/hide_input_all.js
diff --git a/usability/init_cell/main.js b/nbextensions/usability/init_cell/main.js
similarity index 100%
rename from usability/init_cell/main.js
rename to nbextensions/usability/init_cell/main.js
diff --git a/usability/latex_envs/bibInNb4.js b/nbextensions/usability/latex_envs/bibInNb4.js
similarity index 100%
rename from usability/latex_envs/bibInNb4.js
rename to nbextensions/usability/latex_envs/bibInNb4.js
diff --git a/usability/latex_envs/bibtex2.js b/nbextensions/usability/latex_envs/bibtex2.js
similarity index 100%
rename from usability/latex_envs/bibtex2.js
rename to nbextensions/usability/latex_envs/bibtex2.js
diff --git a/usability/latex_envs/configuration_toolbar.png b/nbextensions/usability/latex_envs/configuration_toolbar.png
similarity index 100%
rename from usability/latex_envs/configuration_toolbar.png
rename to nbextensions/usability/latex_envs/configuration_toolbar.png
diff --git a/usability/latex_envs/conversion/header.tex b/nbextensions/usability/latex_envs/conversion/header.tex
similarity index 100%
rename from usability/latex_envs/conversion/header.tex
rename to nbextensions/usability/latex_envs/conversion/header.tex
diff --git a/usability/latex_envs/conversion/ipynb_thms_to_html b/nbextensions/usability/latex_envs/conversion/ipynb_thms_to_html
similarity index 100%
rename from usability/latex_envs/conversion/ipynb_thms_to_html
rename to nbextensions/usability/latex_envs/conversion/ipynb_thms_to_html
diff --git a/usability/latex_envs/conversion/ipynb_thms_to_latex b/nbextensions/usability/latex_envs/conversion/ipynb_thms_to_latex
similarity index 100%
rename from usability/latex_envs/conversion/ipynb_thms_to_latex
rename to nbextensions/usability/latex_envs/conversion/ipynb_thms_to_latex
diff --git a/usability/latex_envs/conversion/latex_envs.css b/nbextensions/usability/latex_envs/conversion/latex_envs.css
similarity index 100%
rename from usability/latex_envs/conversion/latex_envs.css
rename to nbextensions/usability/latex_envs/conversion/latex_envs.css
diff --git a/usability/latex_envs/conversion/post_html_thms.js b/nbextensions/usability/latex_envs/conversion/post_html_thms.js
similarity index 100%
rename from usability/latex_envs/conversion/post_html_thms.js
rename to nbextensions/usability/latex_envs/conversion/post_html_thms.js
diff --git a/usability/latex_envs/conversion/readme.md b/nbextensions/usability/latex_envs/conversion/readme.md
similarity index 100%
rename from usability/latex_envs/conversion/readme.md
rename to nbextensions/usability/latex_envs/conversion/readme.md
diff --git a/usability/latex_envs/conversion/texheaders_rm.py b/nbextensions/usability/latex_envs/conversion/texheaders_rm.py
similarity index 100%
rename from usability/latex_envs/conversion/texheaders_rm.py
rename to nbextensions/usability/latex_envs/conversion/texheaders_rm.py
diff --git a/usability/latex_envs/conversion/thmInNb_tolatex.py b/nbextensions/usability/latex_envs/conversion/thmInNb_tolatex.py
similarity index 100%
rename from usability/latex_envs/conversion/thmInNb_tolatex.py
rename to nbextensions/usability/latex_envs/conversion/thmInNb_tolatex.py
diff --git a/usability/latex_envs/conversion/thmsInNb.tpl b/nbextensions/usability/latex_envs/conversion/thmsInNb.tpl
similarity index 100%
rename from usability/latex_envs/conversion/thmsInNb.tpl
rename to nbextensions/usability/latex_envs/conversion/thmsInNb.tpl
diff --git a/usability/latex_envs/conversion/thmsInNb_article.tplx b/nbextensions/usability/latex_envs/conversion/thmsInNb_article.tplx
similarity index 100%
rename from usability/latex_envs/conversion/thmsInNb_article.tplx
rename to nbextensions/usability/latex_envs/conversion/thmsInNb_article.tplx
diff --git a/usability/latex_envs/conversion/thmsInNb_book.tplx b/nbextensions/usability/latex_envs/conversion/thmsInNb_book.tplx
similarity index 100%
rename from usability/latex_envs/conversion/thmsInNb_book.tplx
rename to nbextensions/usability/latex_envs/conversion/thmsInNb_book.tplx
diff --git a/usability/latex_envs/conversion/toc_and_cln.py b/nbextensions/usability/latex_envs/conversion/toc_and_cln.py
similarity index 100%
rename from usability/latex_envs/conversion/toc_and_cln.py
rename to nbextensions/usability/latex_envs/conversion/toc_and_cln.py
diff --git a/usability/latex_envs/creating_the_directory.txt b/nbextensions/usability/latex_envs/creating_the_directory.txt
similarity index 100%
rename from usability/latex_envs/creating_the_directory.txt
rename to nbextensions/usability/latex_envs/creating_the_directory.txt
diff --git a/usability/latex_envs/doc/configuration_toolbar.png b/nbextensions/usability/latex_envs/doc/configuration_toolbar.png
similarity index 100%
rename from usability/latex_envs/doc/configuration_toolbar.png
rename to nbextensions/usability/latex_envs/doc/configuration_toolbar.png
diff --git a/usability/latex_envs/doc/documentation.pdf b/nbextensions/usability/latex_envs/doc/documentation.pdf
similarity index 100%
rename from usability/latex_envs/doc/documentation.pdf
rename to nbextensions/usability/latex_envs/doc/documentation.pdf
diff --git a/usability/latex_envs/doc/example.png b/nbextensions/usability/latex_envs/doc/example.png
similarity index 100%
rename from usability/latex_envs/doc/example.png
rename to nbextensions/usability/latex_envs/doc/example.png
diff --git a/usability/latex_envs/doc/html/.ipynb_checkpoints/latex_env_doc-checkpoint.ipynb b/nbextensions/usability/latex_envs/doc/html/.ipynb_checkpoints/latex_env_doc-checkpoint.ipynb
similarity index 100%
rename from usability/latex_envs/doc/html/.ipynb_checkpoints/latex_env_doc-checkpoint.ipynb
rename to nbextensions/usability/latex_envs/doc/html/.ipynb_checkpoints/latex_env_doc-checkpoint.ipynb
diff --git a/usability/latex_envs/doc/html/biblio_ipython.bib b/nbextensions/usability/latex_envs/doc/html/biblio_ipython.bib
similarity index 100%
rename from usability/latex_envs/doc/html/biblio_ipython.bib
rename to nbextensions/usability/latex_envs/doc/html/biblio_ipython.bib
diff --git a/usability/latex_envs/doc/html/configuration_toolbar.png b/nbextensions/usability/latex_envs/doc/html/configuration_toolbar.png
similarity index 100%
rename from usability/latex_envs/doc/html/configuration_toolbar.png
rename to nbextensions/usability/latex_envs/doc/html/configuration_toolbar.png
diff --git a/usability/latex_envs/doc/html/example.png b/nbextensions/usability/latex_envs/doc/html/example.png
similarity index 100%
rename from usability/latex_envs/doc/html/example.png
rename to nbextensions/usability/latex_envs/doc/html/example.png
diff --git a/usability/latex_envs/doc/html/latex_env_doc.html b/nbextensions/usability/latex_envs/doc/html/latex_env_doc.html
similarity index 100%
rename from usability/latex_envs/doc/html/latex_env_doc.html
rename to nbextensions/usability/latex_envs/doc/html/latex_env_doc.html
diff --git a/usability/latex_envs/doc/html/latex_env_doc.ipynb b/nbextensions/usability/latex_envs/doc/html/latex_env_doc.ipynb
similarity index 100%
rename from usability/latex_envs/doc/html/latex_env_doc.ipynb
rename to nbextensions/usability/latex_envs/doc/html/latex_env_doc.ipynb
diff --git a/usability/latex_envs/doc/html/latex_envs.css b/nbextensions/usability/latex_envs/doc/html/latex_envs.css
similarity index 100%
rename from usability/latex_envs/doc/html/latex_envs.css
rename to nbextensions/usability/latex_envs/doc/html/latex_envs.css
diff --git a/usability/latex_envs/doc/html/main_toolbar.png b/nbextensions/usability/latex_envs/doc/html/main_toolbar.png
similarity index 100%
rename from usability/latex_envs/doc/html/main_toolbar.png
rename to nbextensions/usability/latex_envs/doc/html/main_toolbar.png
diff --git a/usability/latex_envs/doc/latex/.ipynb_checkpoints/latex_env_doc-ltx-checkpoint.ipynb b/nbextensions/usability/latex_envs/doc/latex/.ipynb_checkpoints/latex_env_doc-ltx-checkpoint.ipynb
similarity index 100%
rename from usability/latex_envs/doc/latex/.ipynb_checkpoints/latex_env_doc-ltx-checkpoint.ipynb
rename to nbextensions/usability/latex_envs/doc/latex/.ipynb_checkpoints/latex_env_doc-ltx-checkpoint.ipynb
diff --git a/usability/latex_envs/doc/latex/IEEEtran.bst b/nbextensions/usability/latex_envs/doc/latex/IEEEtran.bst
similarity index 100%
rename from usability/latex_envs/doc/latex/IEEEtran.bst
rename to nbextensions/usability/latex_envs/doc/latex/IEEEtran.bst
diff --git a/usability/latex_envs/doc/latex/biblio_ipython.bib b/nbextensions/usability/latex_envs/doc/latex/biblio_ipython.bib
similarity index 100%
rename from usability/latex_envs/doc/latex/biblio_ipython.bib
rename to nbextensions/usability/latex_envs/doc/latex/biblio_ipython.bib
diff --git a/usability/latex_envs/doc/latex/configuration_toolbar.png b/nbextensions/usability/latex_envs/doc/latex/configuration_toolbar.png
similarity index 100%
rename from usability/latex_envs/doc/latex/configuration_toolbar.png
rename to nbextensions/usability/latex_envs/doc/latex/configuration_toolbar.png
diff --git a/usability/latex_envs/doc/latex/documentation.aux b/nbextensions/usability/latex_envs/doc/latex/documentation.aux
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.aux
rename to nbextensions/usability/latex_envs/doc/latex/documentation.aux
diff --git a/usability/latex_envs/doc/latex/documentation.bbl b/nbextensions/usability/latex_envs/doc/latex/documentation.bbl
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.bbl
rename to nbextensions/usability/latex_envs/doc/latex/documentation.bbl
diff --git a/usability/latex_envs/doc/latex/documentation.blg b/nbextensions/usability/latex_envs/doc/latex/documentation.blg
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.blg
rename to nbextensions/usability/latex_envs/doc/latex/documentation.blg
diff --git a/usability/latex_envs/doc/latex/documentation.log b/nbextensions/usability/latex_envs/doc/latex/documentation.log
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.log
rename to nbextensions/usability/latex_envs/doc/latex/documentation.log
diff --git a/usability/latex_envs/doc/latex/documentation.out b/nbextensions/usability/latex_envs/doc/latex/documentation.out
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.out
rename to nbextensions/usability/latex_envs/doc/latex/documentation.out
diff --git a/usability/latex_envs/doc/latex/documentation.pdf b/nbextensions/usability/latex_envs/doc/latex/documentation.pdf
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.pdf
rename to nbextensions/usability/latex_envs/doc/latex/documentation.pdf
diff --git a/usability/latex_envs/doc/latex/documentation.tex b/nbextensions/usability/latex_envs/doc/latex/documentation.tex
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.tex
rename to nbextensions/usability/latex_envs/doc/latex/documentation.tex
diff --git a/usability/latex_envs/doc/latex/documentation.toc b/nbextensions/usability/latex_envs/doc/latex/documentation.toc
similarity index 100%
rename from usability/latex_envs/doc/latex/documentation.toc
rename to nbextensions/usability/latex_envs/doc/latex/documentation.toc
diff --git a/usability/latex_envs/doc/latex/example.png b/nbextensions/usability/latex_envs/doc/latex/example.png
similarity index 100%
rename from usability/latex_envs/doc/latex/example.png
rename to nbextensions/usability/latex_envs/doc/latex/example.png
diff --git a/usability/latex_envs/doc/latex/header.tex b/nbextensions/usability/latex_envs/doc/latex/header.tex
similarity index 100%
rename from usability/latex_envs/doc/latex/header.tex
rename to nbextensions/usability/latex_envs/doc/latex/header.tex
diff --git a/usability/latex_envs/doc/latex/latex_env_doc-ltx.ipynb b/nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx.ipynb
similarity index 100%
rename from usability/latex_envs/doc/latex/latex_env_doc-ltx.ipynb
rename to nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx.ipynb
diff --git a/usability/latex_envs/doc/latex/latex_env_doc-ltx.tex b/nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx.tex
similarity index 100%
rename from usability/latex_envs/doc/latex/latex_env_doc-ltx.tex
rename to nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx.tex
diff --git a/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_46_0.png b/nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_46_0.png
similarity index 100%
rename from usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_46_0.png
rename to nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_46_0.png
diff --git a/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_48_0.png b/nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_48_0.png
similarity index 100%
rename from usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_48_0.png
rename to nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_48_0.png
diff --git a/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_52_0.png b/nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_52_0.png
similarity index 100%
rename from usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_52_0.png
rename to nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_52_0.png
diff --git a/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_54_0.png b/nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_54_0.png
similarity index 100%
rename from usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_54_0.png
rename to nbextensions/usability/latex_envs/doc/latex/latex_env_doc-ltx_tmp_files/latex_env_doc-ltx_tmp_54_0.png
diff --git a/usability/latex_envs/doc/latex/main_toolbar.png b/nbextensions/usability/latex_envs/doc/latex/main_toolbar.png
similarity index 100%
rename from usability/latex_envs/doc/latex/main_toolbar.png
rename to nbextensions/usability/latex_envs/doc/latex/main_toolbar.png
diff --git a/usability/latex_envs/doc/latex_env_doc.html b/nbextensions/usability/latex_envs/doc/latex_env_doc.html
similarity index 100%
rename from usability/latex_envs/doc/latex_env_doc.html
rename to nbextensions/usability/latex_envs/doc/latex_env_doc.html
diff --git a/usability/latex_envs/doc/latex_envs.css b/nbextensions/usability/latex_envs/doc/latex_envs.css
similarity index 100%
rename from usability/latex_envs/doc/latex_envs.css
rename to nbextensions/usability/latex_envs/doc/latex_envs.css
diff --git a/usability/latex_envs/doc/main_toolbar.png b/nbextensions/usability/latex_envs/doc/main_toolbar.png
similarity index 100%
rename from usability/latex_envs/doc/main_toolbar.png
rename to nbextensions/usability/latex_envs/doc/main_toolbar.png
diff --git a/usability/latex_envs/example.png b/nbextensions/usability/latex_envs/example.png
similarity index 100%
rename from usability/latex_envs/example.png
rename to nbextensions/usability/latex_envs/example.png
diff --git a/usability/latex_envs/icon.png b/nbextensions/usability/latex_envs/icon.png
similarity index 100%
rename from usability/latex_envs/icon.png
rename to nbextensions/usability/latex_envs/icon.png
diff --git a/usability/latex_envs/initNb.js b/nbextensions/usability/latex_envs/initNb.js
similarity index 100%
rename from usability/latex_envs/initNb.js
rename to nbextensions/usability/latex_envs/initNb.js
diff --git a/usability/latex_envs/latex_envs.css b/nbextensions/usability/latex_envs/latex_envs.css
similarity index 100%
rename from usability/latex_envs/latex_envs.css
rename to nbextensions/usability/latex_envs/latex_envs.css
diff --git a/usability/latex_envs/latex_envs.js b/nbextensions/usability/latex_envs/latex_envs.js
similarity index 100%
rename from usability/latex_envs/latex_envs.js
rename to nbextensions/usability/latex_envs/latex_envs.js
diff --git a/usability/latex_envs/latex_envs.yaml b/nbextensions/usability/latex_envs/latex_envs.yaml
similarity index 100%
rename from usability/latex_envs/latex_envs.yaml
rename to nbextensions/usability/latex_envs/latex_envs.yaml
diff --git a/usability/latex_envs/latex_envs.zip b/nbextensions/usability/latex_envs/latex_envs.zip
similarity index 100%
rename from usability/latex_envs/latex_envs.zip
rename to nbextensions/usability/latex_envs/latex_envs.zip
diff --git a/usability/latex_envs/latex_envs_jup.js b/nbextensions/usability/latex_envs/latex_envs_jup.js
similarity index 100%
rename from usability/latex_envs/latex_envs_jup.js
rename to nbextensions/usability/latex_envs/latex_envs_jup.js
diff --git a/usability/latex_envs/main_toolbar.png b/nbextensions/usability/latex_envs/main_toolbar.png
similarity index 100%
rename from usability/latex_envs/main_toolbar.png
rename to nbextensions/usability/latex_envs/main_toolbar.png
diff --git a/usability/latex_envs/makezip b/nbextensions/usability/latex_envs/makezip
similarity index 100%
rename from usability/latex_envs/makezip
rename to nbextensions/usability/latex_envs/makezip
diff --git a/usability/latex_envs/readme.md b/nbextensions/usability/latex_envs/readme.md
similarity index 100%
rename from usability/latex_envs/readme.md
rename to nbextensions/usability/latex_envs/readme.md
diff --git a/usability/latex_envs/thmsInNb.js b/nbextensions/usability/latex_envs/thmsInNb.js
similarity index 100%
rename from usability/latex_envs/thmsInNb.js
rename to nbextensions/usability/latex_envs/thmsInNb.js
diff --git a/usability/latex_envs/thmsInNb4.js b/nbextensions/usability/latex_envs/thmsInNb4.js
similarity index 100%
rename from usability/latex_envs/thmsInNb4.js
rename to nbextensions/usability/latex_envs/thmsInNb4.js
diff --git a/usability/limit_output/icon.png b/nbextensions/usability/limit_output/icon.png
similarity index 100%
rename from usability/limit_output/icon.png
rename to nbextensions/usability/limit_output/icon.png
diff --git a/usability/limit_output/limit-output.yaml b/nbextensions/usability/limit_output/limit-output.yaml
similarity index 100%
rename from usability/limit_output/limit-output.yaml
rename to nbextensions/usability/limit_output/limit-output.yaml
diff --git a/usability/limit_output/main.js b/nbextensions/usability/limit_output/main.js
similarity index 100%
rename from usability/limit_output/main.js
rename to nbextensions/usability/limit_output/main.js
diff --git a/usability/linenumbers.js b/nbextensions/usability/linenumbers.js
similarity index 100%
rename from usability/linenumbers.js
rename to nbextensions/usability/linenumbers.js
diff --git a/usability/navigation-hotkeys/hotkeys.yaml b/nbextensions/usability/navigation-hotkeys/hotkeys.yaml
similarity index 100%
rename from usability/navigation-hotkeys/hotkeys.yaml
rename to nbextensions/usability/navigation-hotkeys/hotkeys.yaml
diff --git a/usability/navigation-hotkeys/icon.png b/nbextensions/usability/navigation-hotkeys/icon.png
similarity index 100%
rename from usability/navigation-hotkeys/icon.png
rename to nbextensions/usability/navigation-hotkeys/icon.png
diff --git a/usability/navigation-hotkeys/main.js b/nbextensions/usability/navigation-hotkeys/main.js
similarity index 100%
rename from usability/navigation-hotkeys/main.js
rename to nbextensions/usability/navigation-hotkeys/main.js
diff --git a/usability/no_exec_dunder.js b/nbextensions/usability/no_exec_dunder.js
similarity index 100%
rename from usability/no_exec_dunder.js
rename to nbextensions/usability/no_exec_dunder.js
diff --git a/usability/noscroll.js b/nbextensions/usability/noscroll.js
similarity index 100%
rename from usability/noscroll.js
rename to nbextensions/usability/noscroll.js
diff --git a/usability/python-markdown/main.js b/nbextensions/usability/python-markdown/main.js
similarity index 100%
rename from usability/python-markdown/main.js
rename to nbextensions/usability/python-markdown/main.js
diff --git a/wiki-images/python-markdown-post.png b/nbextensions/usability/python-markdown/python-markdown-post.png
similarity index 100%
rename from wiki-images/python-markdown-post.png
rename to nbextensions/usability/python-markdown/python-markdown-post.png
diff --git a/wiki-images/python-markdown-pre.png b/nbextensions/usability/python-markdown/python-markdown-pre.png
similarity index 100%
rename from wiki-images/python-markdown-pre.png
rename to nbextensions/usability/python-markdown/python-markdown-pre.png
diff --git a/usability/python-markdown/python-markdown.png b/nbextensions/usability/python-markdown/python-markdown.png
similarity index 100%
rename from usability/python-markdown/python-markdown.png
rename to nbextensions/usability/python-markdown/python-markdown.png
diff --git a/usability/python-markdown/python-markdown.yaml b/nbextensions/usability/python-markdown/python-markdown.yaml
similarity index 100%
rename from usability/python-markdown/python-markdown.yaml
rename to nbextensions/usability/python-markdown/python-markdown.yaml
diff --git a/usability/read-only.js b/nbextensions/usability/read-only.js
similarity index 100%
rename from usability/read-only.js
rename to nbextensions/usability/read-only.js
diff --git a/usability/rubberband/icon.png b/nbextensions/usability/rubberband/icon.png
similarity index 100%
rename from usability/rubberband/icon.png
rename to nbextensions/usability/rubberband/icon.png
diff --git a/usability/rubberband/main.css b/nbextensions/usability/rubberband/main.css
similarity index 100%
rename from usability/rubberband/main.css
rename to nbextensions/usability/rubberband/main.css
diff --git a/usability/rubberband/main.js b/nbextensions/usability/rubberband/main.js
similarity index 100%
rename from usability/rubberband/main.js
rename to nbextensions/usability/rubberband/main.js
diff --git a/usability/rubberband/rubberband.yaml b/nbextensions/usability/rubberband/rubberband.yaml
similarity index 100%
rename from usability/rubberband/rubberband.yaml
rename to nbextensions/usability/rubberband/rubberband.yaml
diff --git a/usability/ruler/icon.png b/nbextensions/usability/ruler/icon.png
similarity index 100%
rename from usability/ruler/icon.png
rename to nbextensions/usability/ruler/icon.png
diff --git a/usability/ruler/main.js b/nbextensions/usability/ruler/main.js
similarity index 100%
rename from usability/ruler/main.js
rename to nbextensions/usability/ruler/main.js
diff --git a/usability/ruler/ruler.yaml b/nbextensions/usability/ruler/ruler.yaml
similarity index 100%
rename from usability/ruler/ruler.yaml
rename to nbextensions/usability/ruler/ruler.yaml
diff --git a/usability/runtools/dummy.js b/nbextensions/usability/runtools/dummy.js
similarity index 100%
rename from usability/runtools/dummy.js
rename to nbextensions/usability/runtools/dummy.js
diff --git a/usability/runtools/gutter.css b/nbextensions/usability/runtools/gutter.css
similarity index 100%
rename from usability/runtools/gutter.css
rename to nbextensions/usability/runtools/gutter.css
diff --git a/usability/runtools/icon.png b/nbextensions/usability/runtools/icon.png
similarity index 100%
rename from usability/runtools/icon.png
rename to nbextensions/usability/runtools/icon.png
diff --git a/usability/runtools/main.css b/nbextensions/usability/runtools/main.css
similarity index 100%
rename from usability/runtools/main.css
rename to nbextensions/usability/runtools/main.css
diff --git a/usability/runtools/main.js b/nbextensions/usability/runtools/main.js
similarity index 100%
rename from usability/runtools/main.js
rename to nbextensions/usability/runtools/main.js
diff --git a/wiki-images/runtools.png b/nbextensions/usability/runtools/runtools.png
similarity index 100%
rename from wiki-images/runtools.png
rename to nbextensions/usability/runtools/runtools.png
diff --git a/usability/runtools/runtools.yaml b/nbextensions/usability/runtools/runtools.yaml
similarity index 100%
rename from usability/runtools/runtools.yaml
rename to nbextensions/usability/runtools/runtools.yaml
diff --git a/wiki-images/runtools_execute.png b/nbextensions/usability/runtools/runtools_execute.png
similarity index 100%
rename from wiki-images/runtools_execute.png
rename to nbextensions/usability/runtools/runtools_execute.png
diff --git a/wiki-images/runtools_marker.png b/nbextensions/usability/runtools/runtools_marker.png
similarity index 100%
rename from wiki-images/runtools_marker.png
rename to nbextensions/usability/runtools/runtools_marker.png
diff --git a/wiki-images/runtools_nb.png b/nbextensions/usability/runtools/runtools_nb.png
similarity index 100%
rename from wiki-images/runtools_nb.png
rename to nbextensions/usability/runtools/runtools_nb.png
diff --git a/wiki-images/toggle_codecells.png b/nbextensions/usability/runtools/toggle_codecells.png
similarity index 100%
rename from wiki-images/toggle_codecells.png
rename to nbextensions/usability/runtools/toggle_codecells.png
diff --git a/usability/search-replace/icon.png b/nbextensions/usability/search-replace/icon.png
similarity index 100%
rename from usability/search-replace/icon.png
rename to nbextensions/usability/search-replace/icon.png
diff --git a/usability/search-replace/main.css b/nbextensions/usability/search-replace/main.css
similarity index 100%
rename from usability/search-replace/main.css
rename to nbextensions/usability/search-replace/main.css
diff --git a/usability/search-replace/main.js b/nbextensions/usability/search-replace/main.js
similarity index 100%
rename from usability/search-replace/main.js
rename to nbextensions/usability/search-replace/main.js
diff --git a/usability/search-replace/search-replace.yaml b/nbextensions/usability/search-replace/search-replace.yaml
similarity index 100%
rename from usability/search-replace/search-replace.yaml
rename to nbextensions/usability/search-replace/search-replace.yaml
diff --git a/usability/search.js b/nbextensions/usability/search.js
similarity index 100%
rename from usability/search.js
rename to nbextensions/usability/search.js
diff --git a/usability/skip-traceback/icon.png b/nbextensions/usability/skip-traceback/icon.png
similarity index 100%
rename from usability/skip-traceback/icon.png
rename to nbextensions/usability/skip-traceback/icon.png
diff --git a/usability/skip-traceback/main.js b/nbextensions/usability/skip-traceback/main.js
similarity index 100%
rename from usability/skip-traceback/main.js
rename to nbextensions/usability/skip-traceback/main.js
diff --git a/usability/skip-traceback/skip-traceback.yaml b/nbextensions/usability/skip-traceback/skip-traceback.yaml
similarity index 100%
rename from usability/skip-traceback/skip-traceback.yaml
rename to nbextensions/usability/skip-traceback/skip-traceback.yaml
diff --git a/usability/toggle_all_line_number.js b/nbextensions/usability/toggle_all_line_number.js
similarity index 100%
rename from usability/toggle_all_line_number.js
rename to nbextensions/usability/toggle_all_line_number.js
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..b4c7b3a
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,105 @@
+# Install notebook extensions
+
+from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir, jupyter_runtime_dir
+from traitlets.config.loader import Config, JSONFileConfigLoader
+import IPython.extensions
+import os
+import sys
+import logging
+import json
+
+#
+if len(sys.argv) == 2 and sys.argv[1] == "install":
+ print("Installing Jupyter notebook extensions")
+
+exit()
+
+# http://stackoverflow.com/questions/12683834/how-to-copy-directory-recursively-in-python-and-overwrite-all
+def recursive_overwrite(src, dest, ignore=None):
+ if os.path.isdir(src):
+ if not os.path.isdir(dest):
+ os.makedirs(dest)
+ files = os.listdir(src)
+ if ignore is not None:
+ ignored = ignore(src, files)
+ else:
+ ignored = set()
+ for f in files:
+ if f not in ignored:
+ recursive_overwrite(os.path.join(src, f),
+ os.path.join(dest, f),
+ ignore)
+ else:
+ shutil.copyfile(src, dest)
+
+#
+# Get the local cofiguration file path
+#
+from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir
+config_dir = jupyter_config_dir()
+data_dir = jupyter_data_dir()
+
+print("Configuration files directory: %s" % config_dir)
+print("Extensions and templates path: %s" % data_dir)
+
+#
+# Install files
+# Indiscriminately copy all files from the nbextensions, extensions and template directories
+# Currently there is no other way, because there is no definition of a notebook extension package
+#
+
+# copy extensions to IPython extensions directory
+src = 'extensions'
+destination = os.path.join(data_dir, 'extensions')
+print("Install Python extensions to %s" % extensions)
+recursive_overwrite(src, destination)
+
+# Install templates
+src = 'extensions'
+destination = os.path.join(data_dir, 'templates')
+templates = os.path.join(jupyter_data_dir(), 'templates')
+print("Install templates to %s" % destination)
+recursive_overwrite(src, destination)
+
+# Install nbextensions
+src = 'nbextensions'
+destination = os.path.join(data_dir, 'nbextensions')
+print("Install notebook extensions to %s" % destination)
+recursive_overwrite(src, destination)
+
+#
+# Update nbconvert configuration
+#
+fname = os.path.join(jupyter_config_dir(), 'jupyter_nbconvert_config.json')
+print("Configuring %s" % fname)
+cl = JSONFileConfigLoader(fname)
+config = cl.load_config()
+newconfig=Config()
+# Set template path, pre- and postprocessors of notebook extensions
+newconfig.Exporter.template_path = [os.path.join(data_dir, 'templates') ]
+newconfig.Exporter.preprocessors = ["codefolding.CodeFoldingPreprocessor", "pymdpreprocessor.PyMarkdownPreprocessor" ]
+newconfig.NbConvertApp.postprocessor_class = 'embed.EmbedPostProcessor'
+config.merge(newconfig)
+config.version = 1
+s=json.dumps(config, indent=2, separators=(',', ': '), sort_keys=True)
+with open(fname, 'w') as f:
+ f.write(s)
+
+
+
+
+#
+# Update notebook configuration
+#
+fname = os.path.join(config_dir, 'jupyter_notebook_config.json')
+print("Configuring %s" % fname)
+cl = JSONFileConfigLoader(fname, log=log)
+config = cl.load_config()
+newconfig=Config()
+# Add server extension of /nbextension/ configuration tool
+newconfig.NotebookApp.server_extensions = [ "nbextensions" ]
+config.merge(newconfig)
+config.version = 1
+s=json.dumps(config, indent=2, separators=(',', ': '), sort_keys=True)
+with open(fname, 'w') as f:
+ f.write(s)
diff --git a/usability/hide_input/hide_input.tpl b/templates/hide_input.tpl
similarity index 100%
rename from usability/hide_input/hide_input.tpl
rename to templates/hide_input.tpl
diff --git a/usability/runtools/hide_input_output.tpl b/templates/hide_input_output.tpl
similarity index 100%
rename from usability/runtools/hide_input_output.tpl
rename to templates/hide_input_output.tpl
diff --git a/config/nbextensions.html b/templates/nbextensions.html
similarity index 68%
rename from config/nbextensions.html
rename to templates/nbextensions.html
index 365943a..e80c369 100644
--- a/config/nbextensions.html
+++ b/templates/nbextensions.html
@@ -1,37 +1,37 @@
-{% extends "page.html" %}
-
-{% block title %}{{page_title}}{% endblock %}
-
-{% block stylesheet %}
-{{super()}}
-{% endblock %}
-
-{% block params %}
-
-data-base-url='{{base_url}}'
-data-extension-list='{{extension_list}}'
-
-{% endblock %}
-
-{% block headercontainer %}
-
-Notebook Extension Configuration
-
-{% endblock %}
-
-{% block header %}
-
-{% endblock %}
-
-{% block site %}
-
-
-
-{% endblock %}
-
-{% block script %}
-
- {{super()}}
-
-
-{% endblock %}
+{% extends "page.html" %}
+
+{% block title %}{{page_title}}{% endblock %}
+
+{% block stylesheet %}
+{{super()}}
+{% endblock %}
+
+{% block params %}
+
+data-base-url='{{base_url}}'
+data-extension-list='{{extension_list}}'
+
+{% endblock %}
+
+{% block headercontainer %}
+
+{{page_title}}
+ Readme
'
+{% endblock %}
+
+{% block header %}
+
+{% endblock %}
+
+{% block site %}
+
+
+
+{% endblock %}
+
+{% block script %}
+
+ {{super()}}
+
+
+{% endblock %}
diff --git a/templates/rendermd.html b/templates/rendermd.html
new file mode 100755
index 0000000..7644f27
--- /dev/null
+++ b/templates/rendermd.html
@@ -0,0 +1,37 @@
+{% extends "page.html" %}
+
+{% block title %}{{page_title}}{% endblock %}
+
+{% block stylesheet %}
+{{super()}}
+{% endblock %}
+
+{% block params %}
+
+data-base-url='{{base_url}}'
+data-md-url='{{render_url}}'
+
+{% endblock %}
+
+{% block headercontainer %}
+
+{{ page_title }}
+
+{% endblock %}
+
+{% block header %}
+
+{% endblock %}
+
+{% block site %}
+
+
+
+{% endblock %}
+
+{% block script %}
+
+ {{super()}}
+
+
+{% endblock %}
diff --git a/usability/hide_input/ipython_nbconvert_config.py b/usability/hide_input/ipython_nbconvert_config.py
deleted file mode 100644
index 396edd1..0000000
--- a/usability/hide_input/ipython_nbconvert_config.py
+++ /dev/null
@@ -1,7 +0,0 @@
-c = get_config()
-
-#Export all the notebooks in the current directory to the sphinx_howto format.
-c.NbConvertApp.notebooks = ['*.ipynb']
-c.NbConvertApp.export_format = 'slides'
-c.Exporter.template_file = 'hide_input'
-c.Exporter.filters = {'strip_output_prompt': 'strip_output_prompt.strip_output_prompt'}
diff --git a/wiki-images/breakpoint_ext.png b/wiki-images/breakpoint_ext.png
deleted file mode 100644
index de4ef89..0000000
Binary files a/wiki-images/breakpoint_ext.png and /dev/null differ
diff --git a/wiki-images/breakpoint_ext_buttons.png b/wiki-images/breakpoint_ext_buttons.png
deleted file mode 100644
index e932750..0000000
Binary files a/wiki-images/breakpoint_ext_buttons.png and /dev/null differ
diff --git a/wiki-images/cellstate-1.png b/wiki-images/cellstate-1.png
deleted file mode 100644
index a978978..0000000
Binary files a/wiki-images/cellstate-1.png and /dev/null differ
diff --git a/wiki-images/cellstate-2.png b/wiki-images/cellstate-2.png
deleted file mode 100644
index bc07c55..0000000
Binary files a/wiki-images/cellstate-2.png and /dev/null differ
diff --git a/wiki-images/cellstate-3.png b/wiki-images/cellstate-3.png
deleted file mode 100644
index e964bc5..0000000
Binary files a/wiki-images/cellstate-3.png and /dev/null differ
diff --git a/wiki-images/help_panel_ext.png b/wiki-images/help_panel_ext.png
deleted file mode 100644
index d932aa2..0000000
Binary files a/wiki-images/help_panel_ext.png and /dev/null differ
diff --git a/wiki-images/help_panel_ext_button.png b/wiki-images/help_panel_ext_button.png
deleted file mode 100644
index 55d51b3..0000000
Binary files a/wiki-images/help_panel_ext_button.png and /dev/null differ
diff --git a/wiki-images/nbconvert-button.png b/wiki-images/nbconvert-button.png
deleted file mode 100644
index d466a72..0000000
Binary files a/wiki-images/nbconvert-button.png and /dev/null differ
diff --git a/wiki-images/notebook-configuration.png b/wiki-images/notebook-configuration.png
deleted file mode 100644
index 0cfb705..0000000
Binary files a/wiki-images/notebook-configuration.png and /dev/null differ
diff --git a/wiki-images/read_only_ext.png b/wiki-images/read_only_ext.png
deleted file mode 100644
index 5df3a5f..0000000
Binary files a/wiki-images/read_only_ext.png and /dev/null differ