         # This approach to public "editor"/viewer types is temporary.
         if extra_opts.public_access
             opts.read_only = true
-            if filename_extension_notilde(filename) == 'html'
+            fn_extension = filename_extension_notilde(filename)
+            if fn_extension == 'html'
                 if opts.content.indexOf("#ipython_notebook") != -1
                     editor = new JupyterNBViewer(@, filename, opts.content)
                 else
                     editor = new StaticHTML(@, filename, opts.content, extra_opts)
                 return editor
+            if fn_extension == 'ipynb'
+                return new JupyterNBViewerEmbedded(@, filename, opts.content)
 
         # These are used *ONLY* for development purposes; it allows us to easily
         # circumvent everything else for testing.

    else
        return 'fa-file-o'

PUBLIC_ACCESS_UNSUPPORTED = ['terminal','latex','history','tasks','course','ipynb', 'chat', 'git', 'template']

# public access file types *NOT* yet supported
# (this should quickly shrink to zero)

        @element = jupyter.jupyter_nbviewer(@editor, @filename, @content, @opts)
        @wrapped = @element.data('jupyter_nbviewer')

class JupyterNBViewerEmbedded extends FileEditor
    constructor: (@editor, @filename, @content, opts) ->
        @element = templates.find(".salvus-editor-static-html").clone()
        @init_buttons()

    init_buttons: () =>

    show: () =>
        if not @is_active()
            return
        if not @iframe?
            @iframe = @element.find(".salvus-editor-static-html-content").find('iframe')
            @iframe.attr('src', '//nbviewer.jupyter.org/urls/cloud.sagemath.com/14eed217-2d3c-4975-a381-b69edcb40e0e/raw/scratch/1_notmnist.ipynb')
        @element.show()
        @element.css(top:@editor.editor_top_position())
        @element.maxheight(offset:18)
        @iframe.maxheight()

#############################################
# Editor for HTML/Markdown/ReST documents
#############################################
