New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
allow customized template and static file paths for the notebook web app #1135
Conversation
This should be handled instead by tying into IPython configuration system. But a question: are you copying over the contents of IPython's template and static dirs to your own? |
i was going to do it like this:
if there's a simpler way (for instance, a handler for static file serving that's aware of such overlay folder semantics and something similar for the template loader), I'd of course use that instead. i haven't looked at the configuration system yet. If you want me to re-write the functionality with it, can you give me a pointer where to look first? |
Two options:
I might prefer 2., because it allows further customization that IPython doesn't have to be aware of - the user can talk directly to tornado. |
The code now works, with ipython notebook --NotebookApp.webapp_settings="{'static_path':'...'}" custom css files and other static things can be supplied. I've written a bit of code that merges two folders (a base and an overlay) with as few symlinks as possible into a third, new folder. Should this functionality become part of the notebook app or should I keep it to myself? |
Thanks, looks good. Thoughts, @ellisonbg? You might post the extra code to the Cookbook. |
Pinging @juliantaylor, as this might help him with packaging that doesn't like static files served from source trees. |
I really like this change. |
these changes are essentially untested, but I think they look okay. I'll be unavailable for a couple of hours now. |
Now we have a bit of a problem. Handling mathjax separately means that currently setting the static path and putting mathjax in there will not result in local mathjax being found without separately specifying that mathjax is in there as well. If you simply replace the hardcoded check in _mathjax_url_default for the old static path with a check for the user-set value (this should be done anyway), the need for the extra MathJax-related handling goes away. I'm not convinced (yet) that we need to handle our static files being spread across the filesystem, when a user-set static-dir covers that case. |
the commits that were available before are now available in my branch "custom_mathjax_path": |
Great, looks good to me, now. |
this last change just adds blocks for the titles to layout.html and notebook.html, so that branding would be easier without overriding the whole layout and notebook templates. |
Just a note to keep track - the most recent change conflicts with #1125, which replaces the header text with an image, so whichever one of these we merge first will force the other to rebase. |
Please submit the changes to the header in a separate pull request. It will require further discussion that is unrelated to this one. |
i've reverted the commit. it wasn't so important anyway, can be done later without trouble |
settings for tornado web application can now be specified via the NotebookApp.webapp_settings configurable. This principally allows users/admins to serve custom templates, css, and javascript, without having to modify IPython's shipped sources. closes ipython#1135
Hello,
I'd like to distribute a few notebooks with my library that form kind of an interactive tutorial. I want to use images and styles from my website and do a few other small things. Thus it's very helpful to be able to specify overrides to the paths the notebook web app uses. Since it's buried in the NotebookApp, I thought using a global overrides dictionary might be a more elegant solution than to add parameters everywhere.
Please let me know what you think.