nerdshow

Presentation software for nerds with smartphone remote control

npm install nerdshow
9 downloads in the last week
31 downloads in the last month

nerdshow

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

Slides

Remote Control

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. .</div><div class="slide">
  • Run generator nerdshow-generate presentation.json
  • Run presentation nerdshow . --debug
  • Open an html5 browser http://localhost:8008/
  • Open remote control http://localhost:8008/nerdshow/rc/

Usage

Run Generator

Usage: nerdshow-generate <path/to/presentation.json> [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-<option>, e.g. --no-socketio-enabled.

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.3.0"
  • or as a command-line option: --nerdshow-folder http://hgoebl.github.io/nerdshow/rt/0.3.0

Be aware that github.io will not serve files over https so if your presentation is served via https, this won't work.

Run Presentation

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: http://localhost:8008/

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

  • When zooming (Ctrl+Click Source-Code) all images disappear (background + img)
  • HowTo documentation + enhance example
  • Provide a boilerplate/template for new presentation (nerdshow-create)
  • Implement/Test incremental page updates (ul/li elements coming item by item)
  • Switch to Full-Screen-Mode when presentation starts (or when pressing F5)
  • Isolate different presentations delivered by the same server
  • Generate a QR-Code for the remote control URL
  • Add support for SyntaxHighlighter (from Alex Gorbatschev)
  • Output error message when used with IE <= 9
  • Write some test code
  • Generate impress.js Slides (Positioning slides along paths/patterns)
  • Provide CSS for print (showing all slides and div.class='handout'
  • Migrate generation code to assemble or provide an assemble plugin

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:

General / Overviews

S5

Utilities / Helpers

Similar Tools and Utilities

npm loves you