Generate HTML presentations, serve presentation files and control presentation with mobile device.
* create your presentation by editing Markdown and/or HTML snippets * Syntax highlighting (by now only for JavaScript) * remote control your presentation with your smartphone * share a presentation across many browser instances (on distributed PCs)
The name?
This tool will probably only be used by nerds and the presentations will be for nerds ==> nerdshow!
Demo
$3
* *
$3
The remote control software only works when pages are served by node.js. In this demo you can see only the mobile application. It is not connected with a presentation.
*
Generate Presentations
* Copy examples/empty to local folder * Edit presentation.json * add Markdown and/or html files and add them to presentation.json (slides array) * Markdown extension: insert raw html by placing '.' in the first column, e.g. .
* Since v0.4.0:
are generated automatically by runtime (from until next ) * Run generator nerdshow-generate presentation.json * Run presentation nerdshow . --debug * Open an html5 browser * Open remote control
Usage
$3
`` Usage: nerdshow-generate [options]
Options: --nerdshow-folder base url for nerdshow runtime [default: "/nerdshow"] --socketio-enabled disable socket-io for static html [default: true] --hijs-enabled highlight code as javascript [default: true] --zoom-enabled enable zoom.js (Ctrl+Click) [default: false] --help, -h show help and exit `
To disable an option, enter --no-
If you want to host a presentation on a web-server, you can save space when you reference the nerdshow runtime-files:
* Either hard-wired in you presentation.json file: "nerdshow-folder": "http://hgoebl.github.io/nerdshow/rt/0.4.0" * or as a command-line option: --nerdshow-folder http://hgoebl.github.io/nerdshow/rt/0.4.0
Be aware that github.io will not serve files over https so if your presentation is served via https, this won't work.
$3
` Usage: nerdshow path/to/presentation [options]
Options: --port TCP port of web server [default: "8008"] --encoding, -e character-set of stdin input [default: "utf8"] --debug output for easier debugging [default: false] --help, -h show help and exit `
If you run 'nerdshow' w/out a path to a presentation folder, it will serve the examples folder:
Installation
You can install nerdshow locally or globally. This depends on how much your presentations are spread across your file system. If you put them in one location, I would install it locally, if not, then globally (add option -g):
npm install nerdshow [-g]
TODO / Bugs
* Provide a boilerplate/template for new presentation (nerdshow-create) * Provide CSS for print (showing all slides and div.class='handout' * Add support for SyntaxHighlighter (from Alex Gorbatschev) * Migrate generation code to assemble or provide an assemble plugin * Provide grunt plugin (and gulp.js) * When zooming (Ctrl+Click Source-Code) all images disappear (background + img) * HowTo documentation + enhance example * Implement/Test incremental page updates (ul/li elements coming item by item) * Isolate different presentations delivered by the same server * Generate a QR-Code for the remote control URL * Output error message when used with IE <= 9 * Write some test code * Generate impress.js Slides (Positioning slides along paths/patterns)
License
MIT (see LICENSE file)
Credits
* S5 Presentation diascope Original Source comes from minad/diascope * JavaScript Syntax Highlighter hijs` from cloudhead * See package.json (marked, express, socket-io, optimist, mote, cheerio) * jQuery and jQuery Mobile
See also
Here you can find information about similar tools, the S5 format and some fancy new alternative implementations for HTML-based slide shows: