Would it be better to add the .ipynb to the name in the function that walks the file system instead of doing it right before display?  That way, if somebody changes the file ext that IPython uses, it will display correctly.