Code Monkey home page Code Monkey logo

showoff's Introduction

Showoff Presenter

Showoff is a slideshow presentation tool with a twist. It runs as a web application, with audience interactivity features. This means that your audience can follow along in their own browsers, can download supplemental materials, can participate in quizzes or polls, post questions for the presenter, etc. By default, their slideshows will synchronize with the presenter, but they can switch to self-navigation mode.

Presenter view

Showoff allows you to author your presentation slides in Markdown, then organize them with a showoff.json file. This file also contains metadata about the presentation, such as the title, any password protection, etc.

Then you just run showoff serve in the presentation directory and open a browser window.

Functionality

Beyond the standard presentation functionality, Showoff provides:

  • Live presenter tools:

    • presenter view that display notes, tree representation of presentation, and other tools
    • execute code in many languages (Javascript, Ruby, Python, Puppet, etc) live and display results
    • show a pre-show slideshow while you wait to start
    • let audience members download slides, code samples or other supplementary material
    • show a countdown timer to help keep you on pace.
    • show synchronized, hidden notes on another browser (like an iphone)
  • Live audience tools:

    • audience can pull up the presentation on their own browsers
    • presentation is synchronized to track the presenter's
    • call up a menu of sections/slides at any time to navigate directly to slides
    • independent navigation so that audience members can go back or catch up as you talk
    • allow the audience to provide pace feedback and ask questions of the presenter
    • allow the audience to provide content feedback on the material
  • Content creation and distribution functionality:

    • generate supplemental material based on slide tags
    • generate printed versions of the presentation including handout notes
    • password protect any URL path to keep control over different views of content
    • automatically generate a Table of Contents
    • provide buttons for one-click issue reporting for presentation materials
    • open the current slide in a Markdown editor
    • open the current slide in an online editor such as Github's repository editor
    • track how much time audience members spend on specific slides
    • generate a static form of the presentation and upload it to Github Pages
    • generate a Heroku app to serve your presentation from
    • automatically generate presentations from an outline

Due to it being plain text, you can easily version control it, you can easily move sections between presentations, and you can rearrange or remove sections easily.

Installation

Showoff is distributed as a RubyGem. Simply install it like any other gem. Showoff will run out of the box on OS X and most Linux distributions. To install on Windows, you'll need to install both Ruby and the Ruby DevKit for compiling native extensions.

gem install showoff

Documentation

Please see the user manual on the Showoff homepage for further information.

You can also generate a nice & pretty local copy of the user manual by running rake doc in your clone of the repository. The generated HTML will be saved in the docs directory.

Contributing

See the CONTRIB.md file for how to contribute to this project

showoff's People

Contributors

alexch avatar andersjanmyr avatar badboy avatar bgentry avatar binford2k avatar davetron5000 avatar defunkt avatar gerapeldoorn avatar goncalossilva avatar grundprinzip avatar justsee avatar kbl avatar kjhenner avatar klynton avatar krisb avatar marrero984 avatar michaelhackett avatar mocoso avatar nekototori avatar nono avatar op-ct avatar raphink avatar rctay avatar rick avatar schacon avatar simonwistow avatar technoweenie avatar timfel avatar wanix avatar ymendel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

showoff's Issues

Slides with bullets incremental can´t be shown via /presenter

I create a presentation named Foo

showoff create Foo

cd into the directory and start showoff

cd Foo
showoff serve

I didn`t touch anything in the default slide.

!SLIDE 
# My Presentation #

!SLIDE bullets incremental
# Bullet Points #

* first point
* second point
* third point

Now i open a presenter on localhost:9090/presenter.
It opens with the Slide "My Presentation". After pressing SPACE and advancing to the next slide "Bullet points" pressing SPACE doesn´t work anymore. I can´t show the bulletpoints.

Even if i insert a slide after the "Bulltetpoint" slide, it does not advance.
I tried this on Mac OSX 10.9.2 with Firefox, Safari and Chrome.

Opening localhost:9090 (without presenter) shows everything as expected and incremental bulletpoints do work.

Opening localhost:9090 (as follower of a presenter) does not work in this context, because the presenter stucks.

Opening the presenter and a slave window also is woking odd. I can navigate the slave window, it does change the presenter and followers, but if the slave window shows bullets incremental, these are neither shown in the presenter nor in the following windows. After all bullets are shown and the slave advances to a new slide, this slide is shown in the presenter and the followers.

Is there anything I can do, to get the presenter working correct ?

Include a high-contrast css style/theme

A high-contrast (or rather, light text on dark background) theme for the slides, and a means to switch to it using a keyboard shortcut, would be a useful feature.

What is the timer widget for?

Our fork has this little timer widget in the upper left of the presenter view. You enter a number of minutes and hit start. The timer widget turns red when it expires...

But what's it for? How's it intended to be different from the built in p for pause functionality?

I ask partly because it's not implemented well, whatever it's supposed to do, and I'd like to update it to be useful.

Uninitialized constant

Hi,

I'm getting this error when launching showoff

NameError - uninitialized constant EventMachine::WebSocket::HandlerFactory:

Running showoff (0.9.6.1) pulled from commit fc7d95f

Add noprint page tag

Prevent slide from displaying in onepage view. This will likely need a new /print endpoint.

Headers & Footers

We need page numbers, titles etc.

Top [ left, center, right ]
Bottom [ left, center, right ]

Page number.
section title,
course name,
copyright info

These are not blocking 1.0, but if I have time post content creation or in disconnected "down" time, then I'll work on them.

Add interactive quiz feature

The slide deck should have the capability of embedding quiz slides into the deck. The students would be following along on their laptops and when we hit a quiz slide, they'd submit answers. This would help me as the instructor to gauge how well they're picking up the material and wether pace needs to be adjusted or topics need to be revisited.

A database of the answers would be part of the deliverables after the presentation.

Table of contents

The onepage and printed PDF output need to have a built in table of contents that's linked to the sections.

html entities seem to be converted into invalid unicode or the like

Text containing smart quotes was pasted into the presentation. I replaced it with the proper ’ html entity. To my gob smacking surprise, it had no effect on the end result. Is showoff and/or the markdown engine converting it internally?

Filing this to remind myself to come back to it later.

Presenter mode not automatically open the slave popup

Some browsers (cough, cough, chrome) do icky things with automatically opened windows. For example, the url bar & tab bar, etc. are disabled so you can't really use that window. Windows opened as a result of a user click are treated like normal windows.

To work around this, Showoff should not automatically pop up a window, but should require you to click the slave window button.

Pre-show functionality doesn't appear to work

I have tried this with Firefox, Chromium and Rekonq.

All of these have a white box with no images on, and a grey box in the bottom left corner showing a countdown timer.

Checking the access logs created in the console shows that the images aren't being loaded, and using the web developer tools suggests that there's no content in the pre-show div either.

Happy to have the documentation updated, or I can raise a pull request with updated docs, if someone will point me in the right direction for where to put the files?

issue when using gem thin v2.0.0.pre

Found that the application would fail with the following error when you used thin gem 2.0.0.pre, but when you downgrade to thin version 1.3.1 things work fine.

[root@showoff bin]# showoff

/usr/local/rvm/gems/ruby-2.1.1/gems/sinatra-websocket-0.3.0/lib/sinatra-websocket/ext/thin/connection.rb:16:in `block in included': undefined method `pre_process' for class `Thin::Connection' (NameError)
    from /usr/local/rvm/gems/ruby-2.1.1/gems/sinatra-websocket-0.3.0/lib/sinatra-websocket/ext/thin/connection.rb:6:in `class_eval'
    from /usr/local/rvm/gems/ruby-2.1.1/gems/sinatra-websocket-0.3.0/lib/sinatra-websocket/ext/thin/connection.rb:6:in `included'
    from /usr/local/rvm/gems/ruby-2.1.1/gems/sinatra-websocket-0.3.0/lib/sinatra-websocket/ext/thin/connection.rb:76:in `include'
    from /usr/local/rvm/gems/ruby-2.1.1/gems/sinatra-websocket-0.3.0/lib/sinatra-websocket/ext/thin/connection.rb:76:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/gems/ruby-2.1.1/gems/sinatra-websocket-0.3.0/lib/sinatra-websocket.rb:4:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/gems/ruby-2.1.1/gems/showoff-0.9.7.1/lib/showoff.rb:8:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/rvm/gems/ruby-2.1.1/gems/showoff-0.9.7.1/bin/showoff:4:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.1.1/bin/showoff:23:in `load'
    from /usr/local/rvm/gems/ruby-2.1.1/bin/showoff:23:in `<main>'
    from /usr/local/rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
    from /usr/local/rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'

Here is a full list of all the gems i installed on a CentOs 6.5 machine

[root@showoff ~]# gem install showoff
Fetching: rack-1.5.2.gem (100%)
Successfully installed rack-1.5.2
Fetching: rack-protection-1.5.2.gem (100%)
Successfully installed rack-protection-1.5.2
Fetching: tilt-1.4.1.gem (100%)
Successfully installed tilt-1.4.1
Fetching: sinatra-1.4.4.gem (100%)
Successfully installed sinatra-1.4.4
Fetching: gli-2.9.0.gem (100%)
Successfully installed gli-2.9.0
Fetching: blankslate-2.1.2.4.gem (100%)
Successfully installed blankslate-2.1.2.4
Fetching: parslet-1.5.0.gem (100%)
Successfully installed parslet-1.5.0
Fetching: htmlentities-4.3.1.gem (100%)
Successfully installed htmlentities-4.3.1
Fetching: eventmachine-1.0.3.gem (100%)
Building native extensions.  This could take a while...
Successfully installed eventmachine-1.0.3
Fetching: eventmachine-le-1.1.6.gem (100%)
Building native extensions.  This could take a while...
Successfully installed eventmachine-le-1.1.6
Fetching: http_parser.rb-0.5.3.gem (100%)
Building native extensions.  This could take a while...
Successfully installed http_parser.rb-0.5.3
Fetching: preforker-0.1.1.gem (100%)
Successfully installed preforker-0.1.1
Fetching: thin-2.0.0.pre.gem (100%)
Successfully installed thin-2.0.0.pre
Fetching: addressable-2.3.5.gem (100%)
Successfully installed addressable-2.3.5
Fetching: em-websocket-0.3.8.gem (100%)
Successfully installed em-websocket-0.3.8
Fetching: sinatra-websocket-0.3.0.gem (100%)
Successfully installed sinatra-websocket-0.3.0
Fetching: redcarpet-3.1.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed redcarpet-3.1.1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
Fetching: mini_portile-0.5.2.gem (100%)
Successfully installed mini_portile-0.5.2
Fetching: nokogiri-1.6.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.1
Fetching: showoff-0.9.7.1.gem (100%)
Successfully installed showoff-0.9.7.1
20 gems installed

Add cache busting

Presenters keep getting the wrong images showing up. Add some cache busting to avoid that.

Feedback features should be more interactive

@abuxton suggests that

  1. A presenter should be able to mark off questions as answered
  2. When an audience member asks a question, they should have a visual indication that their question exists in the queue and should be notified when the presenter marks it as answered.

Image are too big

Hi,

I work with this repository: https://github.com/blackheaven/git-intro-if
My gems are:

blankslate (2.1.2.4)
bluecloth (2.2.0)
bundler (1.2.3)
curb (0.8.3)
gli (2.5.3)
json (1.7.6)
nokogiri (1.5.6)
parslet (1.5.0)
pdfkit (0.5.2)
rack (1.4.2)
rack-protection (1.3.2)
rake (10.0.3)
rmagick (2.13.1)
rubygems-bundler (1.1.0)
rvm (1.11.3.5)
showoff (0.7.0)
sinatra (1.3.3)
tilt (1.3.3)

I have a problem: my images are too big.
Is there a way to resize them?

For help,
Thanks by advance.

Make keymap customizable

Allow the user to customize the keymap via a .showoffrc or similar. Also, clean up the keystroke handling.

Revisit how styles are processed.

We currently have multiple layers of processing for markdown, html entities, etc. This need to go away so we don't have to double, triple escape, and cross our fingers and hope nothing blows up.

Presenter Index reports NaN

When visiting http://localhost:9090/presenter for a Showoff presentation, there is a Table Of Contents listing and a slide progress counter on the left-hand side of the presenter's view.

Bug: When clicking on any of the slides in the TOC, the progress indicator changes to "NaN/255 - Nan%" and the URL visits the #NaN anchor tag, which jumps to the first slide. The presentation controls (arrows or clicking) are then broken until the page is refreshed.

Audience questions should be saved for later reference

@abuxton suggests that questions asked be saved in some form. This facilitates presentation followup, as the presenter can collect these questions, annotate them with answers and/or links to documentation and email them around.

Simplest solution would be to just dump them into a text file, but I want to put some more thought into a possibly more elegant solution.

improve syntax highlighter

write proper grammars that parse all puppet code correctly.
Known fail cases:

  • Class::Resource['title']
  • <<||>>

Add yaml highlighting

Provide 'code review' option

When called with a command line option, the slide out toolbar should have an Edit on GitHub button that would allow reviewers to quickly correct issues and submit pull requests.

Never ending popup windows

If access the presenter mode from Firefox, and Chrome if puppets are allowed, the window showing the slides opens, which repeatedly opens another copy of itself.

This is a never ending loop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.