')
- cell.element.prepend(el)
- el.click( click_solution_lock)
+ var el = $('
');
+ cell.element.prepend(el);
+ el.click( click_solution_lock);
found_solution = true
}
+ rubberband.load_ipython_extension()
}
-})
+});
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/usability/hide_input/hide_input.tpl b/nbextensions/usability/hide_input/hide_input.tpl
similarity index 100%
rename from usability/hide_input/hide_input.tpl
rename to nbextensions/usability/hide_input/hide_input.tpl
diff --git a/usability/hide_input/ipython_nbconvert_config.py b/nbextensions/usability/hide_input/ipython_nbconvert_config.py
similarity index 100%
rename from usability/hide_input/ipython_nbconvert_config.py
rename to nbextensions/usability/hide_input/ipython_nbconvert_config.py
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 69%
rename from usability/latex_envs/latex_envs.yaml
rename to nbextensions/usability/latex_envs/latex_envs.yaml
index e14afc2..5f876f0 100644
--- a/usability/latex_envs/latex_envs.yaml
+++ b/nbextensions/usability/latex_envs/latex_envs.yaml
@@ -1,7 +1,7 @@
Type: IPython Notebook Extension
Name: (some) LaTeX environments for Jupyter
Description: Enable to use laTeX environments in Jupyter's markdown cells
-Link: https://github.com/jfbercher/IPython-notebook-extensions/tree/master/testing/latex_envs/
+Link: readme.md
Icon: icon.png
Main: latex_envs.js
Compatibility: 3.x, Jupyter (4.x)
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/limit_output/readme.md b/nbextensions/usability/limit_output/readme.md
similarity index 71%
rename from usability/limit_output/readme.md
rename to nbextensions/usability/limit_output/readme.md
index 489d55e..61406dc 100644
--- a/usability/limit_output/readme.md
+++ b/nbextensions/usability/limit_output/readme.md
@@ -2,10 +2,10 @@ This extension limits the number of characters a codecell can output as text. Th
[](https://youtu.be/U26ujuPXf00)
-You can set the number of characters in the notebook extensions configration page or use the ConfigManager:
+You can set the number of characters using the ConfigManager:
```Python
from IPython.html.services.config import ConfigManager
ip = get_ipython()
-cm = ConfigManager(parent=ip)
+cm = ConfigManager(parent=ip, profile_dir=ip.profile_dir.location)
cm.update('notebook', {"limit_output": 1000})
```
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 58%
rename from usability/navigation-hotkeys/hotkeys.yaml
rename to nbextensions/usability/navigation-hotkeys/hotkeys.yaml
index 0f58db8..75acd8a 100644
--- a/usability/navigation-hotkeys/hotkeys.yaml
+++ b/nbextensions/usability/navigation-hotkeys/hotkeys.yaml
@@ -1,7 +1,7 @@
Type: IPython Notebook Extension
Name: Navigation-Hotkeys
Description: Additional hotkeys for easier navigation in the notebook
-Link: https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/navigation_hotkeys
+Link: readme.md
Icon: icon.png
Main: main.js
-Compatibility: 3.x
+Compatibility: 4.x
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/nbextensions/usability/navigation-hotkeys/main.js b/nbextensions/usability/navigation-hotkeys/main.js
new file mode 100644
index 0000000..3261460
--- /dev/null
+++ b/nbextensions/usability/navigation-hotkeys/main.js
@@ -0,0 +1,236 @@
+// add custom shortcuts
+
+define([
+ 'base/js/namespace',
+ 'jquery'
+], function(IPython, $) {
+ "use strict";
+
+ var add_command_shortcuts = {
+ 'esc' : {
+ help : 'edit mode',
+ help_index : 'aa',
+ handler : function() {
+ IPython.notebook.edit_mode();
+ return false;
+ }
+ },
+
+ 'home' : {
+ help : 'go to top',
+ help_index : 'ga',
+ handler : function() {
+ IPython.notebook.select(0);
+ IPython.notebook.scroll_to_top();
+ return false;
+ }
+ },
+
+ 'end' : {
+ help : 'go to bottom',
+ help_index : 'ga',
+ handler : function() {
+ var ncells = IPython.notebook.ncells();
+ IPython.notebook.select(ncells-1);
+ IPython.notebook.scroll_to_bottom();
+ return false;
+ }
+ },
+
+ 'pageup' : {
+ help : 'page up',
+ help_index : 'aa',
+ handler : function() {
+ var wh = 0.6 * $(window).height();
+ var cell = IPython.notebook.get_selected_cell();
+ var h = 0;
+ /* loop until we have enough cells to span the size of the notebook window (= one page) */
+ do {
+ h += cell.element.height();
+ IPython.notebook.select_prev();
+ cell = IPython.notebook.get_selected_cell();
+ } while ( h < wh );
+ var cp = cell.element.position();
+ var sp = $('body').scrollTop();
+ if ( cp.top < sp) {
+ IPython.notebook.scroll_to_cell(IPython.notebook.get_selected_index(), 0);
+ }
+ cell.focus_cell();
+ return false;
+ }
+ },
+
+ 'pagedown' : {
+ help : 'page down',
+ help_index : 'aa',
+ handler : function() {
+
+ /* jump to bottom if we are already in the last cell */
+ var ncells = IPython.notebook.ncells();
+ if ( IPython.notebook.get_selected_index()+1 == ncells) {
+ IPython.notebook.scroll_to_bottom();
+ return false;
+ }
+
+ var wh = 0.6*$(window).height();
+ var cell = IPython.notebook.get_selected_cell();
+ var h = 0;
+
+ /* loop until we have enough cells to span the size of the notebook window (= one page) */
+ do {
+ h += cell.element.height();
+ IPython.notebook.select_next();
+ cell = IPython.notebook.get_selected_cell();
+ } while ( h < wh );
+ cell.focus_cell();
+ return false;
+ }
+ },
+
+ 'shift-down': {
+ help : 'shift down',
+ help_index : 'aa',
+ handler : function() {
+ var index = IPython.notebook.get_selected_index();
+ if (index !== (IPython.notebook.ncells()-1) && index !== null) {
+ IPython.notebook.extend_selection('down');
+ IPython.notebook.focus_cell();
+ }
+ return false;
+ }
+ },
+
+ 'shift-up': {
+ help : 'shift down',
+ help_index : 'aa',
+ handler : function() {
+ var index = IPython.notebook.get_selected_index();
+ if (index !== 0 && index !== null) {
+ IPython.notebook.extend_selection('up');
+ IPython.notebook.focus_cell();
+ }
+ return false;
+ }
+ }
+
+ };
+
+ var add_edit_shortcuts = {
+ 'alt-add' : {
+ help : 'split cell',
+ help_index : 'eb',
+ handler : function() {
+ IPython.notebook.split_cell();
+ IPython.notebook.edit_mode();
+ return false;
+ }
+ },
+ 'alt-subtract' : {
+ help : 'merge cell',
+ help_index : 'eb',
+ handler : function() {
+ var i = IPython.notebook.get_selected_index();
+ if (i > 0) {
+ var l = IPython.notebook.get_cell(i-1).code_mirror.lineCount();
+ IPython.notebook.merge_cell_above();
+ IPython.notebook.get_selected_cell().code_mirror.setCursor(l,0);
+ }
+ }
+ },
+ 'shift-enter' : {
+ help : 'run cell, select next codecell',
+ help_index : 'bb',
+ handler : function() {
+ IPython.notebook.execute_cell_and_select_below();
+ var rendered = IPython.notebook.get_selected_cell().rendered;
+ var ccell = IPython.notebook.get_selected_cell().cell_type;
+ if (rendered === false || ccell === 'code') IPython.notebook.edit_mode();
+ return false;
+ }
+ },
+ 'ctrl-enter' : {
+ help : 'run cell',
+ help_index : 'bb',
+ handler : function() {
+ var cell = IPython.notebook.get_selected_cell();
+ var mode = cell.mode;
+ cell.execute();
+ if (mode === "edit") IPython.notebook.edit_mode();
+ return false;
+ }
+ },
+ 'alt-n' : {
+ help : 'toggle line numbers',
+ help_index : 'xy',
+ handler : function() {
+ var cell = IPython.notebook.get_selected_cell();
+ cell.toggle_line_numbers();
+ return false;
+ }
+ },
+ 'pagedown' : {
+ help : 'page down',
+ help_index : 'xy',
+ handler : function() {
+
+ var ic = IPython.notebook.get_selected_index();
+ var cells = IPython.notebook.get_cells();
+ var i, h=0;
+ for (i=0; i < ic; i ++) {
+ h += cells[i].element.height();
+ }
+ var cur = cells[ic].code_mirror.getCursor();
+ h += cells[ic].code_mirror.defaultTextHeight() * cur.line;
+ IPython.notebook.element.animate({scrollTop:h}, 0);
+ return false;
+ }
+ },
+ 'pageup' : {
+ help : 'page down',
+ help_index : 'xy',
+ handler : function() {
+
+ var ic = IPython.notebook.get_selected_index();
+ var cells = IPython.notebook.get_cells();
+ var i, h=0;
+ for (i=0; i < ic; i ++) {
+ h += cells[i].element.height();
+ }
+ var cur =cells[ic].code_mirror.getCursor();
+ h += cells[ic].code_mirror.defaultTextHeight() * cur.line;
+ IPython.notebook.element.animate({scrollTop:h}, 0);
+ return false;
+ }
+ },
+ 'ctrl-y' : {
+ help : 'toggle markdown/code',
+ handler : function() {
+ var cell = IPython.notebook.get_selected_cell();
+ var cur = cell.code_mirror.getCursor();
+ if (cell.cell_type == 'code') {
+ IPython.notebook.command_mode();
+ IPython.notebook.to_markdown();
+ IPython.notebook.edit_mode();
+ cell = IPython.notebook.get_selected_cell();
+ cell.code_mirror.setCursor(cur);
+ } else if (cell.cell_type == 'markdown') {
+ IPython.notebook.command_mode();
+ IPython.notebook.to_code();
+ IPython.notebook.edit_mode();
+ cell = IPython.notebook.get_selected_cell();
+ cell.code_mirror.setCursor(cur);
+ }
+ return false;
+ }
+ }
+ };
+
+ var load_ipython_extension = function() {
+ IPython.keyboard_manager.edit_shortcuts.add_shortcuts(add_edit_shortcuts);
+ IPython.keyboard_manager.command_shortcuts.add_shortcuts(add_command_shortcuts);
+ };
+ var extension = {
+ load_ipython_extension : load_ipython_extension
+ };
+ return extension;
+});
diff --git a/nbextensions/usability/navigation-hotkeys/readme.md b/nbextensions/usability/navigation-hotkeys/readme.md
new file mode 100644
index 0000000..cf6cc27
--- /dev/null
+++ b/nbextensions/usability/navigation-hotkeys/readme.md
@@ -0,0 +1,24 @@
+Hotkeys in
+
+## Edit Mode
+
+| Hotkey | Description |
+|------------|-------------|
+| `pageup` | scroll page up |
+| `pagedown` | scroll page down |
+| `Alt`- `+` | Split cell and keep cursor position |
+| `Alt`- `-` | Combine cell and keep cursor position |
+| `Alt`-`n` | Toggle line number display in current codecell |
+| `Shift`-`Enter` | Execute cell, goto next cell and stay in edit mode if next cell is a code cell or unredered markdown cell |
+| `Ctrl`-`Enter` | Execute cell and stay in edit mode if cell is a code cell |
+| `Ctrl`-`y` | toggle celltype between markdown and code |
+
+## Command Mode
+
+| Hotkey | Description |
+|------------|-------------|
+| `esc` | toggle to edit mode |
+| `home` | Go to top of notebook |
+| `end` | Go to bottom of notebook |
+| `pageup` | scroll page up |
+| `pagedown` | scroll page down |
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 98%
rename from usability/python-markdown/main.js
rename to nbextensions/usability/python-markdown/main.js
index 2c71564..507a707 100644
--- a/usability/python-markdown/main.js
+++ b/nbextensions/usability/python-markdown/main.js
@@ -17,10 +17,6 @@ define([
'notebook/js/textcell'
], function(IPython, $, cell, security, marked, events,textcell) {
"use strict";
- if (IPython.version[0] < 3) {
- console.log("This extension requires IPython 3.x");
- return
- }
/*
* Find Python expression enclosed in {{ }}, execute and add to text as
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/python-markdown/readme.md b/nbextensions/usability/python-markdown/readme.md
similarity index 74%
rename from usability/python-markdown/readme.md
rename to nbextensions/usability/python-markdown/readme.md
index 576442a..40e84e7 100644
--- a/usability/python-markdown/readme.md
+++ b/nbextensions/usability/python-markdown/readme.md
@@ -13,6 +13,8 @@ It will be displayed as:
a = 1.23
```
+[](https://youtu.be/_wLwLsgkExc)
+
## Further examples
Before rendering the markdown cell:

@@ -20,25 +22,23 @@ Before rendering the markdown cell:
After rendering the markdown cell:

+Python code is only executed when the notebook is trusted. So if your original Python code is still shown in rendered markdown output, please make sure your notebook is trusted.
**Caution:** There is no restriction in the expression you can embedd in `{{ }}`. Be careful as you might crash your browser if you return too large datasets.
Also, images in markdown will be removed due to the HTML sanitizer after a reload.
## Installation
-There are different versions of this extension for the 2.x or 3.x version of IPython. Please make sure you use the correct one by selecting the `2.x` or `master` branch in the repository.
+Install the master version of the IPython-notebook-extensions repository as explained on the main wiki page.
-Copy `python-markdown.js` to the `nbextensions` directory of your IPython notebook server.
-Then load the using
+Then load the extension from within the IPyton notebook:
```javascript
%%javascript
-IPython.load_extensions('python-markdown')
+IPython.load_extensions('IPython-notebook-extensions-master/usability/python-markdown/main');
```
-You can add the `IPython.load_extensions('python-markdown')` call to your local `custom.js` file to have the extension automatically loaded. See the IPython documentation or the main make of this Wiki for details.
In order to have `nbconvert` show the preprocessed output, copy the `pymdpreprocessor.py` file to a location in your `PYTHONPATH`and add or extend the following line to your `ipython_nbconvert_config.py` configuration file:
-`c.Exporter.preprocessors = [ 'pymdpreprocessor.PyMarkdownPreprocessor' ]`. Make sure you have defined `
-c = get_config()` beforehand.
+`c.Exporter.preprocessors = [ 'pymdpreprocessor.PyMarkdownPreprocessor' ]`
## Internals
The extension overrides the `textcell.MarkdownCell.prototype.render` function and searches for a Python expression enclosed in double curly braced `{{
}}`. It then executes the expression and replaces it with the result returned from Python, embedded in a `` tag.
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/nbextensions/usability/rubberband/readme.md b/nbextensions/usability/rubberband/readme.md
new file mode 100644
index 0000000..842712a
--- /dev/null
+++ b/nbextensions/usability/rubberband/readme.md
@@ -0,0 +1,31 @@
+Multi-Cell selection using a rubberband. This extension is only available for IPython version 3.x.
+
+Description
+===========
+The *rubberband* extension allows selecting multiple cells. Cells are selected by pressing `shift` or `ctrl`+`shift` + left mouse button click and dragging the rubber band over the cells.
+
+* `shift` + left mouse button : select cells that are currently touched by the rubberband
+* `ctrl` + `shift` + left mouse button : select cells that were touched by the rubberband
+
+The `ctrl`+`shift` action is useful when scrolling inside the notebook. Scrolling is activated when the mouse reaches the upper or lower boundary of the notebook area. For now, the mouse has to be moved to achieve continuous scrolling.
+
+A short video demonstrating the rubberband extension can be found here:
+[](http://youtu.be/TOPfWhqa3oI)
+
+
+Two other extensions make use of this feature: exercise and chrome_clipboard.
+
+Installation
+============
+Copy the `rubberband` directory to a new `/nbextensions/usability/rubberband` directory of your user's IPython directory and add
+```javascript
+IPython.load_extensions('usability/rubberband/main')
+```
+to your `custom.js` file. Take a look at the general installation instructions in the Wiki if you are unsure how to proceed.
+
+Internals
+=========
+
+New metadata element added to each cell:
+* `cell.metadata.selected` - means this cell is selected
+
diff --git a/usability/rubberband/rubberband.yaml b/nbextensions/usability/rubberband/rubberband.yaml
similarity index 66%
rename from usability/rubberband/rubberband.yaml
rename to nbextensions/usability/rubberband/rubberband.yaml
index 14319e3..643a505 100644
--- a/usability/rubberband/rubberband.yaml
+++ b/nbextensions/usability/rubberband/rubberband.yaml
@@ -1,7 +1,7 @@
Type: IPython Notebook Extension
Name: Rubberband
Description: The rubberband extension allows selecting multiple cells
-Link: https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Rubberband
+Link: readme.md
Icon: icon.png
Main: main.js
Compatibility: 4.x
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/readme.md b/nbextensions/usability/ruler/readme.md
similarity index 100%
rename from usability/ruler/readme.md
rename to nbextensions/usability/ruler/readme.md
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/usability/runtools/readme.md b/nbextensions/usability/runtools/readme.md
similarity index 100%
rename from usability/runtools/readme.md
rename to nbextensions/usability/runtools/readme.md
diff --git a/usability/runtools/runtools.png b/nbextensions/usability/runtools/runtools.png
similarity index 100%
rename from usability/runtools/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/usability/runtools/runtools_execute.png b/nbextensions/usability/runtools/runtools_execute.png
similarity index 100%
rename from usability/runtools/runtools_execute.png
rename to nbextensions/usability/runtools/runtools_execute.png
diff --git a/usability/runtools/runtools_marker.png b/nbextensions/usability/runtools/runtools_marker.png
similarity index 100%
rename from usability/runtools/runtools_marker.png
rename to nbextensions/usability/runtools/runtools_marker.png
diff --git a/usability/runtools/runtools_nb.png b/nbextensions/usability/runtools/runtools_nb.png
similarity index 100%
rename from usability/runtools/runtools_nb.png
rename to nbextensions/usability/runtools/runtools_nb.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/nbextensions/usability/search-replace/readme.md b/nbextensions/usability/search-replace/readme.md
new file mode 100644
index 0000000..16d34de
--- /dev/null
+++ b/nbextensions/usability/search-replace/readme.md
@@ -0,0 +1,8 @@
+This extension provides a notebook-wide search&replace toolbar.
+
+
+
+It uses the codemirror `search` and `searchcursor` add ons.
+
+## Installation
+Install the master version of the IPython-notebook-extensions repository as explained on the main wiki page.
diff --git a/nbextensions/usability/search-replace/search-replace.yaml b/nbextensions/usability/search-replace/search-replace.yaml
new file mode 100644
index 0000000..f5b9126
--- /dev/null
+++ b/nbextensions/usability/search-replace/search-replace.yaml
@@ -0,0 +1,7 @@
+Type: IPython Notebook Extension
+Name: Search-Replace
+Description: Search and replace
+Link: readme.md
+Icon: icon.png
+Main: main.js
+Compatibility: 4.x
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/readme.md b/nbextensions/usability/skip-traceback/readme.md
similarity index 91%
rename from usability/skip-traceback/readme.md
rename to nbextensions/usability/skip-traceback/readme.md
index b9efc6a..921ba1f 100644
--- a/usability/skip-traceback/readme.md
+++ b/nbextensions/usability/skip-traceback/readme.md
@@ -2,8 +2,8 @@ This extension hides Python tracebacks and only displays the error type an name.

-After loading the extension, only newly executed cells are affected. Previous tracebacks will remain visible until the
-corresponding cell is executed again.
+After loading the extension, only newly executed cells are affected. Previous tracebacks will remain visible until the
+ corresponding cell is executed again.
If you press the button on the toolbar with the exclamation mark, you can turn on tracebacks again.
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..7ef1f90
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,172 @@
+# Install notebook extensions
+
+from jupyter_core.paths import jupyter_config_dir, jupyter_data_dir
+from traitlets.config.loader import Config, JSONFileConfigLoader
+import os
+import sys
+import json
+import shutil
+
+marker = '#--- nbextensions configuration ---'
+
+if len(sys.argv) == 2 and sys.argv[1] == "install":
+ print("Installing Jupyter notebook extensions")
+else:
+ print("To install the notebook extensions use 'python setup.py install'")
+ 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)
+
+
+def remove_old_config(config):
+ """ Remove old configuration entries
+
+ :param config: python configuration data
+ """
+ marker_found = []
+ lines = config.splitlines()
+ for i, l in enumerate(lines):
+ if l.find(marker) >= 0:
+ marker_found.append(i)
+ start = marker_found[0]
+ end = marker_found[-1]
+ return '\n'.join(lines[0:start] + lines[end+1:])
+
+
+def update_config(config_file, newconfig_file):
+ """ Update .py configuration file with new path to extensions
+
+ :param config_file: name of the existing python config file
+ :param newconfig_file: name of the config file to be written into the existing python config file
+ """
+ if os.path.isfile(config_file) is True:
+ f = open(config_file, 'r')
+ config = f.read()
+ f.close()
+ else:
+ config = ''
+
+ # add config
+ f = open(newconfig_file, 'r')
+ new_config = f.read()
+ f.close()
+
+ if config.find(marker) >= 0:
+ config = remove_old_config(config)
+
+ config = marker + '\n' + new_config + '\n' + marker + '\n' + config
+
+ # write config file
+ f = open(config_file, 'w')
+ f.write(config)
+ f.close()
+
+
+#
+# 1. Get the local cofiguration file path
+#
+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)
+
+# now test if path exists
+if os.path.exists(config_dir) is False:
+ os.mkdir(config_dir)
+if os.path.exists(data_dir) is False:
+ os.mkdir(data_dir)
+
+#
+# 2. 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" % destination)
+recursive_overwrite(src, destination)
+
+# Install templates
+src = 'templates'
+destination = os.path.join(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)
+
+
+#
+# 3. Update nbconvert configuration
+#
+json_config = os.path.join(jupyter_config_dir(), 'jupyter_nbconvert_config.json')
+print("Configuring %s" % json_config)
+if os.path.isfile(json_config) is True:
+ cl = JSONFileConfigLoader(json_config)
+ config = cl.load_config()
+else:
+ config = 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 = ["pre_codefolding.CodeFoldingPreprocessor", "pre_pymarkdown.PyMarkdownPreprocessor"]
+newconfig.NbConvertApp.postprocessor_class = 'post_embedhtml.EmbedPostProcessor'
+config.merge(newconfig)
+config.version = 1
+s=json.dumps(config, indent=2, separators=(',', ': '), sort_keys=True)
+with open(json_config, 'w') as f:
+ f.write(s)
+
+py_config = os.path.join(jupyter_config_dir(), 'jupyter_nbconvert_config.py')
+print("Configuring %s" % py_config)
+
+new_py_config = 'jupyter_nbconvert_config.py'
+update_config(py_config, new_py_config)
+
+#
+# 4. Update notebook configuration
+#
+fname = os.path.join(config_dir, 'jupyter_notebook_config.json')
+print("Configuring %s" % fname)
+if os.path.isfile(json_config) is True:
+ cl = JSONFileConfigLoader(json_config)
+ config = cl.load_config()
+else:
+ config = 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)
+
+ py_config = os.path.join(jupyter_config_dir(), 'jupyter_notebook_config.py')
+print("Configuring %s" % py_config)
+
+new_py_config = 'jupyter_notebook_config.py'
+update_config(py_config, new_py_config)
diff --git a/templates/hide_input.tpl b/templates/hide_input.tpl
new file mode 100644
index 0000000..044b0f0
--- /dev/null
+++ b/templates/hide_input.tpl
@@ -0,0 +1,20 @@
+{%- extends 'slides_reveal.tpl' -%}
+
+{% block input_group %}
+{%- if cell.metadata.input_collapsed -%}
+{%- else -%}
+
+{{ super() }}
+
+{%- endif -%}
+{% endblock input_group %}
+
+{% block output %}
+
+{%- if cell.metadata.input_collapsed -%}
+ {{ super() | strip_output_prompt }}
+{%- else -%}
+ {{ super() }}
+{%- endif -%}
+
+{% endblock output %}
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 95%
rename from config/nbextensions.html
rename to templates/nbextensions.html
index 0601a44..fa518a4 100644
--- a/config/nbextensions.html
+++ b/templates/nbextensions.html
@@ -1,47 +1,47 @@
-{% 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 %}
-
-
-
- Configuration for Notebook Extensions
- (more Information)
-
-
-
- hide extensions without explicit compatibility
- (they may break your notebook environment,
- but can be useful to show for extension development)
-
-
-{% 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 %}
+
+
+
+ Configuration for Notebook Extensions
+ (more Information)
+
+
+
+ hide extensions without explicit compatibility
+ (they may break your notebook environment,
+ but can be useful to show for extension development)
+
+
+{% endblock %}
+
+{% block header %}
+
+{% endblock %}
+
+{% block site %}
+
+
+
+{% endblock %}
+
+{% block script %}
+
+ {{super()}}
+
+
+{% endblock %}
diff --git a/config/rendermd.html b/templates/rendermd.html
similarity index 100%
rename from config/rendermd.html
rename to templates/rendermd.html
diff --git a/tests/data/Untitled.ipynb b/tests/data/Untitled.ipynb
new file mode 100644
index 0000000..ace058d
--- /dev/null
+++ b/tests/data/Untitled.ipynb
@@ -0,0 +1,59 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "a=1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Markdown Cell"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.4.1"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/tests/data/icon.png b/tests/data/icon.png
new file mode 100644
index 0000000..09d28ac
Binary files /dev/null and b/tests/data/icon.png differ
diff --git a/tests/test-postprocessors.py b/tests/test-postprocessors.py
new file mode 100644
index 0000000..e69de29
diff --git a/usability/dragdrop/embed.py b/usability/dragdrop/embed.py
deleted file mode 100644
index 9715ecd..0000000
--- a/usability/dragdrop/embed.py
+++ /dev/null
@@ -1,53 +0,0 @@
-"""PostProcessor for embedding markdown images in HTML files."""
-from __future__ import print_function
-#-----------------------------------------------------------------------------
-#Copyright (c) 2013, the IPython Development Team.
-#
-#Distributed under the terms of the Modified BSD License.
-#
-#The full license is in the file COPYING.txt, distributed with this software.
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-# Imports
-#-----------------------------------------------------------------------------
-
-import os
-import re
-import base64
-import urllib
-
-from IPython.utils.traitlets import Bool, Unicode, Int
-
-from IPython.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]
- self.log.info("embedding url: %s, format: %s" % (url, imgformat))
- data = urllib.urlopen(url).read()
- b64_data=base64.b64encode(data)
- if imgformat == "svg":
- img = '' + data + '
'
- 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/dragdrop/main.js b/usability/dragdrop/main.js
deleted file mode 100644
index 6c30bab..0000000
--- a/usability/dragdrop/main.js
+++ /dev/null
@@ -1,163 +0,0 @@
-// Allow drag&drop of images into a notebook
-// Tested with Firefox and Chrome
-
-define([
- 'base/js/namespace',
- 'jquery',
- "base/js/events"
-], function(IPython, $, events) {
- "use strict";
-
- /* http://stackoverflow.com/questions/3231459/create-unique-id-with-javascript */
- function uniqueid(){
- // always start with a letter (for DOM friendlyness)
- var idstr=String.fromCharCode(Math.floor((Math.random()*25)+65));
- do {
- // between numbers and characters (48 is 0 and 90 is Z (42-48 = 90)
- var ascicode=Math.floor((Math.random()*42)+48);
- if (ascicode<58 || ascicode>64){
- // exclude all chars between : (58) and @ (64)
- idstr+=String.fromCharCode(ascicode);
- }
- } while (idstr.length<32);
-
- return (idstr);
- }
-
- var send_to_server = function(name,path,msg) {
- if (name == '') {
- name = uniqueid() + '.' + msg.match(/data:image\/(\S+);/)[1];
- }
- path = path.substring(0, path.lastIndexOf('/')) + '/';
- if (path === '/') path = '';
- var url = '//' + location.host + '/api/contents/' + path + name;
- var img = msg.replace(/(^\S+,)/, ''); // strip header
- //console.log("send_to_server:", url, img);
- var data = {'name': name, 'format':'base64', 'content': img, 'type': 'file'};
- var settings = {
- processData : false,
- cache : false,
- type : "PUT",
- dataType : "json",
- data : JSON.stringify(data),
- headers : {'Content-Type': 'text/plain'},
- async : false,
- success : function (data, status, xhr) {
- var new_cell = IPython.notebook.insert_cell_below('markdown');
- var str = '
';
- new_cell.set_text(str);
- new_cell.execute();
- },
- error : function() {console.log('Data transfer for drag-and-drop failed.'); }
- };
- $.ajax(url, settings);
- };
-
- /* the dragover event needs to be canceled to allow firing the drop event */
- window.addEventListener('dragover', function(event){
- if (event.preventDefault) {
- event.preventDefault();
- }
- });
-
- /* allow dropping an image in notebook */
- window.addEventListener('drop', function(event){
- var cell = IPython.notebook.get_selected_cell();
- event.preventDefault();
- if(event.stopPropagation) {event.stopPropagation();}
- if (event.dataTransfer.items != undefined) {
- /* Chrome here */
- var items = event.dataTransfer.items;
- for (var i = 0; i < items.length; i++) {
- /* data coming from local file system, must be an image to allow dropping*/
- if (items[i].kind == 'file' && items[i].type.indexOf('image/') !== -1) {
-
- var blob = items[i].getAsFile();
- var filename = blob.name;
- var reader = new FileReader();
- reader.onload = ( function(evt) {
- send_to_server(filename, IPython.notebook.notebook_path, evt.target.result);
- if(event.stopPropagation) {event.stopPropagation();}
- } );
- reader.readAsDataURL(blob);
- } else {
- console.log("Unsupported type:", items[i].kind);
- }
- }
- } else {
- /* Firefox here */
- var files = event.dataTransfer.files;
- if (files.length == 0) {
- var filename = event.dataTransfer.getData('application/x-moz-file-promise-dest-filename');
- var data = event.dataTransfer.getData('text/plain');
- if (filename.length == 0) {
- url = "";
- filename = '';
- } else {
- url = data;
- data = "";
- }
- /* data coming from browser:
- * url - image is given as an url
- * data - image is a base64 blob
- */
- //console.log("type:",url," name:", filename," path:", IPython.notebook.notebook_path," url:", url);
- send_to_server(filename, IPython.notebook.notebook_path, data);
- return;
- }
- /* data coming from local file system, must be an image to allow dropping*/
- for (var i=0; i < files.length; i++) {
- var blob = event.dataTransfer.files[0];
- if (blob.type.indexOf('image/') !== -1) {
- var filename = blob.name;
- var url = event.view.location.origin;
- var reader = new FileReader();
- reader.onload = ( function(evt) {
- //console.log("file"," name:", filename," path:", IPython.notebook.notebook_path," url:", url);
- send_to_server(filename, IPython.notebook.notebook_path, evt.target.result);
- event.preventDefault();
- } );
- reader.readAsDataURL(blob);
- } else {
- console.log("Unsupported type:", blob.type);
- }
-
- }
- }
- });
-
- /*
- * make sure we do not drop images into a codemirror text field
- */
- var checktype = function(cm,event) {
- if (event.dataTransfer.items != undefined)
- {
- event.codemirrorIgnore = true;
- }
- var blob = event.dataTransfer.files[0];
-
- if (event.dataTransfer.files.length > 0 && blob.type.indexOf('image/') !== -1) {
- event.codemirrorIgnore = true;
- }
- };
-
- var create_cell = function (event,nbcell,nbindex) {
- var cell = nbcell.cell;
- if ((cell instanceof IPython.CodeCell)) {
- cell.code_mirror.on('drop', checktype);
- }
- };
-
- var cells = IPython.notebook.get_cells();
- for(var i in cells){
- var cell = cells[i];
- if ((cell instanceof IPython.CodeCell)) {
- cell.code_mirror.on('drop', checktype);
- }
- }
-
- events.on('create.Cell',create_cell);
-});
-
-
-
diff --git a/usability/dragdrop/readme.md b/usability/dragdrop/readme.md
deleted file mode 100644
index a5cc65e..0000000
--- a/usability/dragdrop/readme.md
+++ /dev/null
@@ -1,26 +0,0 @@
-This IPython notebook extension allows dragging&dropping images from the desktop or other programs into a notebook.
-A new markdown cell is created below the currently selected cell and the image is embedded.
-The notebook has been tested with Firefox and Chrome.
-
-A demo video showing drag&drop of images is here:
-http://youtu.be/buAL1bTZ73c
-
-## Installation
-
-You can manually load the extension from within the IPyton notebook:
-```javascript
-%%javascript
-IPython.load_extensions('nbextensions/usability/dragdrop');
-```
-
-For installation instructions using the nbextensions config tool, please see the
-[Readme](/rendermd/nbextensions/config/readme.md)
-
-## Internals
-The image will be uploaded to the server into the directory where your notebook resides. This means, the image is not
-copied into the notebook itself, it will only be linked to. The markdown cell in the notebook will contain this tag:
-`
`
-
-If you run `nbconvert` to generate a HTML file, this image will remain outside of the html file. You can embedd all
-images by calling `nbconvert` with the option `--post=embed.EmbedPostProcessor`. The file `embed.py`, located in the
-same directory of this extension needs to be in `PYTHONPATH` to be found.
\ No newline at end of file
diff --git a/usability/navigation-hotkeys/main.js b/usability/navigation-hotkeys/main.js
deleted file mode 100644
index 82bd9ad..0000000
--- a/usability/navigation-hotkeys/main.js
+++ /dev/null
@@ -1,206 +0,0 @@
-// add custom shortcuts
-
-"use strict";
-
-var add_command_shortcuts = {
- 'esc' : {
- help : 'edit mode',
- help_index : 'aa',
- handler : function (event) {
- IPython.notebook.edit_mode();
- return false;
- }
- },
-
- 'home' : {
- help : 'go to top',
- help_index : 'ga',
- handler : function (event) {
- IPython.notebook.select(0);
- IPython.notebook.scroll_to_top()
- return false;
- }
- },
-
- 'end' : {
- help : 'go to bottom',
- help_index : 'ga',
- handler : function (event) {
- var ncells = IPython.notebook.ncells();
- IPython.notebook.select(ncells-1);
- IPython.notebook.scroll_to_bottom()
- return false;
- }
- },
-
- 'pageup' : {
- help : 'page up',
- help_index : 'aa',
- handler : function (event) {
- var wh = 0.6 * $(window).height();
- var cell = IPython.notebook.get_selected_cell();
- var h = 0;
- /* loop until we have enough cells to span the size of the notebook window (= one page) */
- do {
- h += cell.element.height();
- IPython.notebook.select_prev();
- cell = IPython.notebook.get_selected_cell();
- } while ( h < wh )
- var cp = cell.element.position();
- var sp = $('body').scrollTop();
- if ( cp.top < sp) {
- IPython.notebook.scroll_to_cell(IPython.notebook.get_selected_index());
- }
- cell.focus_cell();
- return false;
- }
- },
-
- 'pagedown' : {
- help : 'page down',
- help_index : 'aa',
- handler : function (event) {
-
- /* jump to bottom if we are already in the last cell */
- var ncells = IPython.notebook.ncells();
- if ( IPython.notebook.get_selected_index()+1 == ncells) {
- IPython.notebook.scroll_to_bottom();
- return false;
- }
-
- var wh = 0.6*$(window).height();
- var cell = IPython.notebook.get_selected_cell();
- var h = 0;
-
- /* loop until we have enough cells to span the size of the notebook window (= one page) */
- do {
- h += cell.element.height();
- IPython.notebook.select_next();
- cell = IPython.notebook.get_selected_cell();
- } while ( h < wh )
- cell.focus_cell();
- return false;
- }
- },
- };
-
-IPython.keyboard_manager.command_shortcuts.add_shortcuts(add_command_shortcuts);
-
-var add_edit_shortcuts = {
- 'Alt-add' : {
- help : 'split cell',
- help_index : 'eb',
- handler : function (event) {
- IPython.notebook.split_cell();
- IPython.notebook.edit_mode();
- return false;
- }
- },
- 'alt-subtract' : {
- help : 'merge cell',
- help_index : 'eb',
- handler : function (event) {
- var i = IPython.notebook.get_selected_index();
- if (i > 0) {
- var c = IPython.notebook.get_cell(i-1);
- var l = c.code_mirror.lineCount();
- IPython.notebook.merge_cell_above();
- var c = IPython.notebook.get_selected_cell();
- c.code_mirror.setCursor(l,0);
- }
- }
- },
- 'shift-enter' : {
- help : 'run cell, select next codecell',
- help_index : 'bb',
- handler : function (event) {
- IPython.notebook.execute_cell_and_select_below();
- var rendered = IPython.notebook.get_selected_cell().rendered;
- var ccell = IPython.notebook.get_selected_cell().cell_type;
- if (rendered === false || ccell === 'code') IPython.notebook.edit_mode();
- return false;
- }
- },
- 'ctrl-enter' : {
- help : 'run cell',
- help_index : 'bb',
- handler : function (event) {
- var cell = event.notebook.get_selected_cell();
- var mode = cell.mode;
- cell.execute();
- if (mode === "edit") IPython.notebook.edit_mode();
- return false;
- }
- },
- 'alt-n' : {
- help : 'toggle line numbers',
- help_index : 'xy',
- handler : function (event) {
- var cell = IPython.notebook.get_selected_cell();
- cell.toggle_line_numbers();
- return false;
- }
- },
- 'pagedown' : {
- help : 'page down',
- help_index : 'xy',
- handler : function (event) {
-
- var ic = IPython.notebook.get_selected_index();
- var cells = IPython.notebook.get_cells();
- var i, h=0;
- for (i=0; i < ic; i ++) {
- var cell=cells[i];
- h += cell.element.height();
- }
- var cell = cells[ic];
- var cur =cell.code_mirror.getCursor();
- h += cell.code_mirror.defaultTextHeight() * cur.line;
- IPython.notebook.element.animate({scrollTop:h}, 0);
- return false;
- }
- },
- 'pageup' : {
- help : 'page down',
- help_index : 'xy',
- handler : function (event) {
-
- var ic = IPython.notebook.get_selected_index();
- var cells = IPython.notebook.get_cells();
- var i, h=0;
- for (i=0; i < ic; i ++) {
- var cell=cells[i];
- h += cell.element.height();
- }
- var cell = cells[ic];
- var cur =cell.code_mirror.getCursor();
- h += cell.code_mirror.defaultTextHeight() * cur.line;
- IPython.notebook.element.animate({scrollTop:h}, 0);
- return false;
- }
- },
- 'ctrl-y' : {
- help : 'toggle markdown/code',
- handler : function (event) {
- var cell = IPython.notebook.get_selected_cell();
- if (cell.cell_type == 'code') {
- var cur = cell.code_mirror.getCursor();
- IPython.notebook.command_mode();
- IPython.notebook.to_markdown();
- IPython.notebook.edit_mode();
- cell = IPython.notebook.get_selected_cell();
- cell.code_mirror.setCursor(cur);
- } else if (cell.cell_type == 'markdown') {
- var cur = cell.code_mirror.getCursor();
- IPython.notebook.command_mode();
- IPython.notebook.to_code();
- IPython.notebook.edit_mode();
- cell = IPython.notebook.get_selected_cell();
- cell.code_mirror.setCursor(cur);
- }
- return false;
- }
- },
- };
-
-IPython.keyboard_manager.edit_shortcuts.add_shortcuts(add_edit_shortcuts);
diff --git a/usability/python-markdown/python-markdown-post.png b/usability/python-markdown/python-markdown-post.png
deleted file mode 100644
index 3c95198..0000000
Binary files a/usability/python-markdown/python-markdown-post.png and /dev/null differ
diff --git a/usability/python-markdown/python-markdown-pre.png b/usability/python-markdown/python-markdown-pre.png
deleted file mode 100644
index 5226d95..0000000
Binary files a/usability/python-markdown/python-markdown-pre.png and /dev/null differ
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/codefolding_firstline_folded.png b/wiki-images/codefolding_firstline_folded.png
deleted file mode 100644
index 4ce9908..0000000
Binary files a/wiki-images/codefolding_firstline_folded.png and /dev/null differ
diff --git a/wiki-images/codefolding_firstline_unfolded.png b/wiki-images/codefolding_firstline_unfolded.png
deleted file mode 100644
index f421e00..0000000
Binary files a/wiki-images/codefolding_firstline_unfolded.png and /dev/null differ
diff --git a/wiki-images/codefolding_indent_folded_1.png b/wiki-images/codefolding_indent_folded_1.png
deleted file mode 100644
index e5b98b7..0000000
Binary files a/wiki-images/codefolding_indent_folded_1.png and /dev/null differ
diff --git a/wiki-images/codefolding_indent_folded_2.png b/wiki-images/codefolding_indent_folded_2.png
deleted file mode 100644
index 287e292..0000000
Binary files a/wiki-images/codefolding_indent_folded_2.png and /dev/null differ
diff --git a/wiki-images/codefolding_indent_unfolded.png b/wiki-images/codefolding_indent_unfolded.png
deleted file mode 100644
index 0e07bb7..0000000
Binary files a/wiki-images/codefolding_indent_unfolded.png and /dev/null differ
diff --git a/wiki-images/execution-timings-box.png b/wiki-images/execution-timings-box.png
deleted file mode 100644
index 401edc0..0000000
Binary files a/wiki-images/execution-timings-box.png and /dev/null differ
diff --git a/wiki-images/execution-timings-menu.png b/wiki-images/execution-timings-menu.png
deleted file mode 100644
index fa129d3..0000000
Binary files a/wiki-images/execution-timings-menu.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/hide_input_all_hide.png b/wiki-images/hide_input_all_hide.png
deleted file mode 100644
index a15486a..0000000
Binary files a/wiki-images/hide_input_all_hide.png and /dev/null differ
diff --git a/wiki-images/hide_input_all_show.png b/wiki-images/hide_input_all_show.png
deleted file mode 100644
index 8d7e030..0000000
Binary files a/wiki-images/hide_input_all_show.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/printview-button.png b/wiki-images/printview-button.png
deleted file mode 100644
index e98073d..0000000
Binary files a/wiki-images/printview-button.png and /dev/null differ
diff --git a/wiki-images/python-markdown-post.png b/wiki-images/python-markdown-post.png
deleted file mode 100644
index 3c95198..0000000
Binary files a/wiki-images/python-markdown-post.png and /dev/null differ
diff --git a/wiki-images/python-markdown-pre.png b/wiki-images/python-markdown-pre.png
deleted file mode 100644
index 5226d95..0000000
Binary files a/wiki-images/python-markdown-pre.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
diff --git a/wiki-images/runtools.png b/wiki-images/runtools.png
deleted file mode 100644
index 234357b..0000000
Binary files a/wiki-images/runtools.png and /dev/null differ
diff --git a/wiki-images/runtools_execute.png b/wiki-images/runtools_execute.png
deleted file mode 100644
index f3d649b..0000000
Binary files a/wiki-images/runtools_execute.png and /dev/null differ
diff --git a/wiki-images/runtools_marker.png b/wiki-images/runtools_marker.png
deleted file mode 100644
index 72a22b9..0000000
Binary files a/wiki-images/runtools_marker.png and /dev/null differ
diff --git a/wiki-images/runtools_nb.png b/wiki-images/runtools_nb.png
deleted file mode 100644
index 7a783d6..0000000
Binary files a/wiki-images/runtools_nb.png and /dev/null differ
diff --git a/wiki-images/toggle_codecells.png b/wiki-images/toggle_codecells.png
deleted file mode 100644
index 1457de9..0000000
Binary files a/wiki-images/toggle_codecells.png and /dev/null differ