##// END OF EJS Templates
normalize unicode notebook filenames...
normalize unicode notebook filenames used in comparison check for notebook name change. Unless the filenames are normalized, unchanged names may result in false positives for a name change (e.g. OS X uses NFD on the filesystem, so u'\xfc' roundtripped to the filesystem will be u'u\u0308'), which can result in the first save of a notebook after open performing the following actions: 1. save the recently opened notebook 2. `old_name != new_name`, so name change detected 3. delete old_name (which is actually new_name), which ultimately deletes the just-saved notebook In master, this has a symptom of the first checkpoint failing because the first save actually deleted the file, and you can't checkpoint a notebook that doesn't exist. closes #3360

File last commit:

r10736:057141f0
r10777:9585bda6
Show More
notebook.html
242 lines | 11.7 KiB | text/html | HtmlLexer
{% extends "page.html" %}
{% block stylesheet %}
{% if mathjax_url %}
<script type="text/javascript" src="{{mathjax_url}}?config=TeX-AMS_HTML-full&delayStartupUntil=configured" charset="utf-8"></script>
{% endif %}
<script type="text/javascript">
// MathJax disabled, set as null to distingish from *missing* MathJax,
// where it will be undefined, and should prompt a dialog later.
window.mathjax_url = "{{mathjax_url}}";
</script>
<link rel="stylesheet" href="{{ static_url("components/codemirror/lib/codemirror.css") }}">
{{super()}}
<link rel="stylesheet" href="{{ static_url("notebook/css/override.css") }}" type="text/css" />
{% endblock %}
{% block params %}
data-project={{project}}
data-base-project-url={{base_project_url}}
data-base-kernel-url={{base_kernel_url}}
data-read-only={{read_only and not logged_in}}
data-notebook-id={{notebook_id}}
class="notebook_app"
{% endblock %}
{% block header %}
<span id="save_widget">
<span id="notebook_name"></span>
<span id="checkpoint_status"></span>
<span id="autosave_status"></span>
</span>
{% endblock %}
{% block site %}
<div id="menubar_container">
<div id="menubar">
<ul id="menus">
<li><a href="#">File</a>
<ul>
<li id="new_notebook"><a href="#">New</a></li>
<li id="open_notebook"><a href="#">Open...</a></li>
<hr/>
<li id="copy_notebook"><a href="#">Make a Copy...</a></li>
<li id="rename_notebook"><a href="#">Rename...</a></li>
<li id="save_checkpoint"><a href="#">Save and Checkpoint</a></li>
<hr/>
<li id="restore_checkpoint"><a href="#">Revert to Checkpoint</a>
<ul>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
</li>
<hr/>
<li><a href="#">Download as</a>
<ul>
<li id="download_ipynb"><a href="#">IPython (.ipynb)</a></li>
<li id="download_py"><a href="#">Python (.py)</a></li>
</ul>
</li>
<!--<hr/>
<li id="print_notebook"><a href="/{{notebook_id}}/print" target="_blank">Print View</a></li>-->
<hr/>
<li id="kill_and_exit"><a href="#" >Close and halt</a></li>
</ul>
</li>
<li><a href="#">Edit</a>
<ul>
<li id="cut_cell"><a href="#">Cut Cell</a></li>
<li id="copy_cell"><a href="#">Copy Cell</a></li>
<li id="paste_cell_above" class="ui-state-disabled"><a href="#">Paste Cell Above</a></li>
<li id="paste_cell_below" class="ui-state-disabled"><a href="#">Paste Cell Below</a></li>
<li id="paste_cell_replace" class="ui-state-disabled"><a href="#">Paste Cell &amp; Replace</a></li>
<li id="delete_cell"><a href="#">Delete Cell</a></li>
<li id="undelete_cell" class="ui-state-disabled"><a href="#">Undo Delete Cell</a></li>
<hr/>
<li id="split_cell"><a href="#">Split Cell</a></li>
<li id="merge_cell_above"><a href="#">Merge Cell Above</a></li>
<li id="merge_cell_below"><a href="#">Merge Cell Below</a></li>
<hr/>
<li id="move_cell_up"><a href="#">Move Cell Up</a></li>
<li id="move_cell_down"><a href="#">Move Cell Down</a></li>
<hr/>
<li id="select_previous"><a href="#">Select Previous Cell</a></li>
<li id="select_next"><a href="#">Select Next Cell</a></li>
</ul>
</li>
<li><a href="#">View</a>
<ul>
<li id="toggle_header"><a href="#">Toggle Header</a></li>
<li id="toggle_toolbar"><a href="#">Toggle Toolbar</a></li>
</ul>
</li>
<li><a href="#">Insert</a>
<ul>
<li id="insert_cell_above"><a href="#">Insert Cell Above</a></li>
<li id="insert_cell_below"><a href="#">Insert Cell Below</a></li>
</ul>
</li>
<li><a href="#">Cell</a>
<ul>
<li id="run_cell"><a href="#">Run</a></li>
<li id="run_cell_in_place"><a href="#">Run in Place</a></li>
<li id="run_all_cells"><a href="#">Run All</a></li>
<li id="run_all_cells_above"><a href="#">Run All Above</a></li>
<li id="run_all_cells_below"><a href="#">Run All Below</a></li>
<hr/>
<li id="to_code"><a href="#">Code</a></li>
<li id="to_markdown"><a href="#">Markdown </a></li>
<li id="to_raw"><a href="#">Raw Text</a></li>
<li id="to_heading1"><a href="#">Heading 1</a></li>
<li id="to_heading2"><a href="#">Heading 2</a></li>
<li id="to_heading3"><a href="#">Heading 3</a></li>
<li id="to_heading4"><a href="#">Heading 4</a></li>
<li id="to_heading5"><a href="#">Heading 5</a></li>
<li id="to_heading6"><a href="#">Heading 6</a></li>
<hr/>
<li id="toggle_output"><a href="#">Toggle Current Output</a></li>
<li id="all_outputs"><a href="#">All Output</a>
<ul>
<li id="expand_all_output"><a href="#">Expand</a></li>
<li id="scroll_all_output"><a href="#">Scroll Long</a></li>
<li id="collapse_all_output"><a href="#">Collapse</a></li>
<li id="clear_all_output"><a href="#">Clear</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Kernel</a>
<ul>
<li id="int_kernel"><a href="#">Interrupt</a></li>
<li id="restart_kernel"><a href="#">Restart</a></li>
</ul>
</li>
<li><a href="#">Help</a>
<ul>
<li><a href="http://ipython.org/documentation.html" target="_blank">IPython Help</a></li>
<li><a href="http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html" target="_blank">Notebook Help</a></li>
<li id="keyboard_shortcuts"><a href="#">Keyboard Shortcuts</a></li>
<hr/>
<li><a href="http://docs.python.org" target="_blank">Python</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/" target="_blank">NumPy</a></li>
<li><a href="http://docs.scipy.org/doc/scipy/reference/" target="_blank">SciPy</a></li>
<li><a href="http://docs.sympy.org/dev/index.html" target="_blank">SymPy</a></li>
<li><a href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a></li>
</ul>
</li>
</ul>
</div>
<div id="notification_area">
</div>
</div>
<div id="maintoolbar"></div>
<div id="ipython-main-app">
<div id="notebook_panel">
<div id="notebook"></div>
<div id="pager_splitter"></div>
<div id="pager_container">
<div id='pager_button_area'>
</div>
<div id="pager"></div>
</div>
</div>
</div>
<div id='tooltip' class='ipython_tooltip' style='display:none'></div>
{% endblock %}
{% block script %}
{{super()}}
<script src="{{ static_url("components/codemirror/lib/codemirror.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/addon/mode/loadmode.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/addon/mode/multiplex.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/addon/mode/overlay.js") }}" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/codemirror-ipython.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/htmlmixed/htmlmixed.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/xml/xml.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/javascript/javascript.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/css/css.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/rst/rst.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/markdown/markdown.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/codemirror/mode/gfm/gfm.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/marked/lib/marked.js") }}" charset="utf-8"></script>
<script src="{{ static_url("components/highlight.js/build/highlight.pack.js") }}" charset="utf-8"></script>
<script src="{{ static_url("dateformat/date.format.js") }}" charset="utf-8"></script>
<script src="{{ static_url("base/js/events.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("base/js/utils.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/layoutmanager.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/mathjaxutils.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/outputarea.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/cell.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/celltoolbar.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/codecell.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/completer.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/textcell.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("services/kernels/js/kernel.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/savewidget.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/quickhelp.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/pager.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/menubar.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/toolbar.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/maintoolbar.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/notebook.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/notificationwidget.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/notificationarea.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/tooltip.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/config.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/main.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/contexthint.js") }}" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/celltoolbarpresets/default.js") }}" type="text/javascript" charset="utf-8"></script>
<script src="{{ static_url("notebook/js/celltoolbarpresets/slideshow.js") }}" type="text/javascript" charset="utf-8"></script>
{% endblock %}