<div dir="ltr"><div>After PyCon, I&#39;m incredibly excited about everything I can do with the Notebook and planning to make a LOT of rather large notebooks - so many that it would be really nice to include a table of contents in each notebook, with internal links to sections in the same notebook, plus ideally to other notebooks from the same directory.  I&#39;m thinking about how to do that; pardon my shaky understanding of HTML and JS, I&#39;m no web developer.<br>
</div><div><br></div><div>Right now, headings in the markdown cells generate simple HTML headings like:</div><div><br></div><div>&lt;h2&gt;Subtraction&lt;/h2&gt;</div><div><br></div><div>If they wrapped each one in a named anchor, like</div>
<div><br></div><div>&lt;a name=&quot;Subtraction&quot;&gt;&lt;h2&gt;Subtraction&lt;/h2&gt;&lt;/a&gt;</div><div><br></div><div>then I think we could make a %toc magic that would send back an object with a text list of H1s and H2s and a _repr_html_ that would generate</div>
<div><br></div><div>&lt;ol&gt;</div><div>  &lt;li&gt;&lt;a href=&quot;#Subtraction&quot;&gt;Subtraction&lt;/a&gt;&lt;/li&gt;</div><div>  ... (etc)</div><div>&lt;/ol&gt;</div><div><br></div><div>Does that sound like a workable approach?  Would hacking frontend/html/notebook/static/pagedown/Markdown.Converter.js be the right place to wrap the headings?</div>
<div><br></div><div>I guess a second question would be - to make links to other notebooks in the directory - I could search through the .ipynb files in the directory to make links, but if I find headers in MyNiftyNotebook.ipynb and make links like &lt;a href=&quot;MyNiftyNotebook#AboutBacon&quot;&gt;, they&#39;ll 404 because the pages actually have URLs like &quot;<a href="http://127.0.0.1:8888/9375859a-4f33-473c-a078-8e77ce51856f">http://127.0.0.1:8888/9375859a-4f33-473c-a078-8e77ce51856f</a>&quot;.  How can I make a link to a notebook?</div>
<div><br></div><div>This StackOverflow answer don&#39;t seem promising:</div><div><a href="http://stackoverflow.com/questions/12590611/links-between-ipython-notebooks">http://stackoverflow.com/questions/12590611/links-between-ipython-notebooks</a></div>
<div><br></div><div>If it is currently impossible, would it be bad (or impossible) to hack the server so that it could respond to /NotebookName URLs as well as to UUIDs?  Presumably a running server keeps track of the relationship between its .ipynb filenames and the assigned UUIDs somewhere.</div>
<div><br></div><div>Anyway, even a TOC that can&#39;t cross boundaries between notebooks would be a great start.</div><div><br></div><div>If anybody wants to grab this and run with it, feel free to seize the glory.  I&#39;m happy to use it as a simple user if someone else wants to write the code.</div>
<div>-- <br></div>- Catherine<br><a href="http://catherinedevlin.blogspot.com" target="_blank">http://catherinedevlin.blogspot.com</a><br>
</div>