Skip to content
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

add jupyter notebook loader and custom template #210

Closed
wants to merge 4 commits into from

Conversation

lzfxxx
Copy link

@lzfxxx lzfxxx commented Jun 11, 2018

No description provided.


def render_notebook(content):
nb = nbformat.reads(content, nbformat.NO_CONVERT)
(output, resources) = nbconvert.HTMLExporter(template_file='./klaus/templates/my_full.tpl').from_notebook_node(nb)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my_full? Confusing name :-D

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's just a little CSS modification of nbconvert template 'full', cause the width in @media setting of that template will make the html overflow the markup div. The naming is not very clear, do you have any suggestions?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see! In this case could we simply use the default template and add the CSS fixes to klaus' CSS file? Or if that doesn't work, can we use inheritance to override the CSS instead of copy-pasting the whole file?

@jonashaag
Copy link
Owner

Great idea, thanks for the patch!

I'm worried about security though; does this execute any code on server side? Or is this view only?

@lzfxxx
Copy link
Author

lzfxxx commented Jun 12, 2018

@jonashaag I think it's view only, to render the code and output in the *.ipynb (It's json format inside).

repo_objs = [FancyRepo(path) for path in repo_paths]

user_dirs = repo_paths
repo_objs = []
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes seem unrelated

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry! These changes are for my self usage. Didn't notice these commits will be related to this pull request. I've checkout a new branch and made a new pull request. It was my first time doing pull request, don't know if it's the right way 😃

Copy link
Author

@lzfxxx lzfxxx Jun 12, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#211 new request, I've moved some of your comments to there

@jonashaag
Copy link
Owner

In terms of security, XSS problems are possible at the least. So we have to account for that. Two ideas:

  • Apply a very restrictive Content Security Policy for the whole klaus application, and have 2 versions of .ipynb file viewer: a normal CSP-enabled version, and a a CSP-disabled version. We could toggle between them with a simple URL param e.g. ?nocsp.
  • Maybe we can use this SanitizeHTML preprocessor, haven't looked at it closely. Also we could have two versions of the viewer page, one which strips all <script>, <style>, <object> etc tags, and another one where everything is allowed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants