Use symbolic links.
Let's assume you have a directory under your home where you keep all your presentations. From the directory where you installed reveal.js run:
ln -s ~/presentations presentations
Then in the browser visit http://localhost:8000/presentations to get a list of all your presentation files (except of course if one of them is named index.html). Click any one of them to show it.
Note: If your presentations are located outside the server's root directory (the directory where you installed reveal.js), reveal.js resource links have to be absolute and not relative. This way, they'll get picked up as relative to the root directory (where reveal.js resides) instead of the current directory (where the presentations reside).
E.g. in the example presentation file, you would need to turn these lines:
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/black.css">
<link rel="stylesheet" href="lib/css/zenburn.css">
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
{ src: 'plugin/markdown/marked.js' },
{ src: 'plugin/markdown/markdown.js' },
{ src: 'plugin/notes/notes.js', async: true },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
into:
<link rel="stylesheet" href="/css/reveal.css">
<link rel="stylesheet" href="/css/theme/black.css">
<link rel="stylesheet" href="/lib/css/zenburn.css">
<script src="/lib/js/head.min.js"></script>
<script src="/js/reveal.js"></script>
{ src: '/plugin/markdown/marked.js' },
{ src: '/plugin/markdown/markdown.js' },
{ src: '/plugin/notes/notes.js', async: true },
{ src: '/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
ln -s
won't work here. It might work with Windows symbolic links though; I will have to try it and see. – Camaraderie