         opts.read_only = true
         switch @ext
             when 'ipynb'
-                @view_doc = jupyter_history_viewer_jquery_shim(@syncstring)
-                @element.find("a[href=\"#show-diff\"]").hide()
-            when 'ipynb2'
-                @view_doc = jupyter.jupyter_notebook(@, @_open_file_path, opts).data("jupyter_notebook")
-                @element.find("a[href=\"#show-diff\"]").hide()
+                if @jupyter_classic()
+                    @view_doc = jupyter.jupyter_notebook(@, @_open_file_path, opts).data("jupyter_notebook")
+                    @element.find("a[href=\"#show-diff\"]").hide()
+                else
+                    @view_doc = jupyter_history_viewer_jquery_shim(@syncstring)
+                    @element.find("a[href=\"#show-diff\"]").hide()
             when 'tasks'
                 @view_doc = tasks.task_list(undefined, undefined, {viewer:true}).data('task_list')
                 @element.find("a[href=\"#show-diff\"]").hide()

            @_open_file_path = @_path
        @ext = misc.filename_extension(@_path)
        if @ext == 'ipynb'
            @_path = misc.meta_file(@_path, 'jupyter2')
        if @ext == 'ipynb2'
            @_path = '.' + @_path + require('./editor_jupyter').IPYTHON_SYNCFILE_EXTENSION
        if s.head
            @_path = s.head + '/' + @_path


    set_doc: (time) =>
        if not time?
            return
        if @ext == 'ipynb' and not @jupyter_classic()
            @view_doc.set_version(time)
        else
            val = @syncstring.version(time).to_str()
            switch @ext
                when 'ipynb'  # must be classic since not handled above
                    @view_doc.dom.set(val)
                when 'tasks'
                    @view_doc.set_value(val)
