OK I found a way to do it.
- Install hide_code... It will not work, though.
- Try to install it with (with dir="~/.ipython" or whatever)
import hide_code.hide_code as hc;
dir = "<full path to Jupyter config directory>";
hc.install(dir)
It will still not work, but it will copy a javascript file (hide_code.js) into that directory. We will use it in a bit.
- Let's find where those nbextensions are. Find one of them. For example, keyboard_shortcut_editor:
cd ~
find -name keyboard_shortcut_editor
Mine finds it ./.local/share/jupyter/nbextensions/keyboard_shortcut_editor
Yours should be there too.
- Go to that directory
cd ./.local/share/jupyter/nbextensions/
ls
You see full list of various extensions. Let's copy one of them into hide_copy:
cp -r hide_input hide_code
cd hide_code
ls
- The important file there is main.js. Replace it with that hide_code.js from ~./ipython
cp ~./ipython/hide_code.js ./main.js
- Rename hide-input.yaml with hide-code.yaml and edit the content accordingly. Mainly, replace all Hide_Input references to Hide_Code. You can edit readme.md as well, but that doesn't matter. Because, the main thing, you created a new extension.
Now, if you launch your jupyter and go to http://localhost:8888/nbextensions, you will see Hide Code. And if click on that checkbox, it's on. Here are snapshots:


It is a weird sequence. But it worked for me. And the main thing, it puts it right where it needs to be. Hide_code actually needs to be a part of Nbextensions. I don't know why it is not. That way it's easy to turn it on and off any way you like it.