Skip to content

Commit

Permalink
add Railsbridge Open Workshops to README; ignore generated "doc" dir
Browse files Browse the repository at this point in the history
  • Loading branch information
alexch committed Jul 27, 2011
1 parent d6d0e75 commit aff99a3
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 26 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -16,6 +16,7 @@ tmtags
## PROJECT::GENERAL
coverage
rdoc
doc
pkg
*.gem
.bundle
Expand Down
87 changes: 61 additions & 26 deletions README.rdoc
Expand Up @@ -7,7 +7,7 @@ hatred in my heart for Keynote and yet it is by far the best in the field.

The idea is that you setup your markdown slide files in section subdirectories
and then startup the showoff server in that directory. It will read in your
showoff.json file for which sections go in which order and then will give
<tt>showoff.json</tt> file for which sections go in which order and then will give
you a URL to present from.

It can:
Expand All @@ -26,21 +26,24 @@ It might will can:

* show a timer - elapsed / remaining
* perform simple animations of images moving between keyframes
* show syncronized, hidden notes on another browser (like an iphone)
* show synchronized, hidden notes on another browser (like an iphone)
* show audience questions / comments (twitter or direct)
* let audience members go back / catch up as you talk
* let audience members vote on sections (?)
* broadcast itself on Bonjour
* let audience members download slides, code samples or other supplementary material
* let you write on the slide with your mouse, madden-style via canvas
* automatically resize text to fit screen

Some of the nice things are that you can easily version control it, you
can easily move sections between presentations, and you can rearrange or
remove sections easily.

= Usage

ShowOff is meant to be run in a ShowOff formatted repository - that means that it has a showoff.json file and a number of sections (subdirectories) with markdown files for the slides you're presenting.
ShowOff is meant to be run in a ShowOff formatted repository - that means that
it has a <tt>showoff.json</tt> file and a number of sections (subdirectories) with
markdown files for the slides you're presenting.

$ gem install showoff
$ git clone (showoff-repo)
Expand All @@ -50,11 +53,16 @@ ShowOff is meant to be run in a ShowOff formatted repository - that means that i
If you run 'showoff' in the example subdirectory of ShowOff itself, it will
show an example presentation, so you can see what it's like.

You can also run 'showoff serve' inside a section subdirectory. If there is no
<tt>showoff.json</tt> file then it will make its best guess, creating a presentation
from all `.md` files in alphabetical order in the given (or current)
directory.

= Slide Format

You can break your slides up into sections of however many subdirectories deep
you need. ShowOff will recursively check all the directories mentioned in
your showoff.json file for any markdown files (.md). Each markdown file can
your <tt>showoff.json</tt> file for any markdown files (.md). Each markdown file can
have any number of slides in it, separating each slide with the '!SLIDE'
keyword and optional slide styles.

Expand All @@ -77,7 +85,7 @@ the following contents:
That represents two slides, the first contains just a large title, and the
second is faded into view showing the title and three bullets that are then
incrementally shown. In order for ShowOff to see those slides, your
showoff.json file needs to look something like this:
<tt>showoff.json</tt> file needs to look something like this:

[
{"section":"one"}
Expand Down Expand Up @@ -147,13 +155,20 @@ The transitions are provided by jQuery Cycle plugin. See http://www.malsup.com/j
You can manage the presentation with the following keys:

* space, cursor right: next slide
* cursor left: previous slide
* shift-space, cursor left: previous slide
* d: debug mode
* c: table of contents (vi)
* c, t: table of contents (vi)
* f: toggle footer
* z: toggle help
* z, ?: toggle help
* p: toggle preshow

= Showing plain old markdown

If a markdown file has no !SLIDE keywords, then showoff will treat every line
beginning with a single hash -- i.e. every H1 -- as a new slide in "bullets"
style. Remember that you can't specify classes or transitions in this mode,
and as soon as you add one !SLIDE you need them everywhere.

= Preshow

If you want to show a slideshow while you wait to speak, you can run a preshow. Add a +_preshow+ directory
Expand All @@ -166,7 +181,7 @@ audience in the meantime. Press 'p' again to stop, or wait until the timer runs

To insert custom JavaScript into your presentation you can either place it into
a file (with extension .js) into the root directory of your presentation or you
can embed a <script>-element directly into your slides. This JavaScript will be
can embed a <+script+> element directly into your slides. This JavaScript will be
executed—as usually—as soon as it is loaded.

If you want to trigger some JavaScript as soon as a certain page is shown or
Expand Down Expand Up @@ -223,7 +238,7 @@ The same applies to the *showoff:prev* event, of course.

To insert custom Stylesheets into your presentation you can either place it into
a file (with extension .css) into the root directory of your presentation or
you can embed a <+link+>-element directly into your slides. This stylesheet will
you can embed a <+link+> element directly into your slides. This stylesheet will
be applied as soon as it is loaded.

The content generated by the slide is wrapped with a +div+ with the class .+content+ like this.
Expand Down Expand Up @@ -311,27 +326,34 @@ added where your cursor was. Binding this to a keybinding can allow you to add
[<tt>help</tt>] Shows list of commands or help for one command
[<tt>heroku</tt>] Setup your presentation to serve on Heroku
[<tt>github</tt>] Setup your presentation to serve on GitHub Pages
[<tt>serve</tt>] Serves the showoff presentation in the current directory
[<tt>serve</tt>] Serves the showoff presentation in the current directory (or a given dir)
[<tt>static</tt>] Generate static version of presentation

=== <tt>add [title]</tt>

== <tt>showoff add [title]</tt>

Add a new slide at the end in a given dir

*Aliases*
* <tt><b>new</b></tt>

Outputs or creates a new slide. With -d and -n, a new slide is created in the given dir, numbered to appear as the last slide in that dir (use -u to avoid numbering). Without those, outputs the slide markdown to stdout (useful for shelling out from your editor). You may also specify a source file to use for a code slide
Outputs or creates a new slide. With -d and -n, a new slide is created in the given dir, numbered to appear
as the last slide in that dir (use -u to avoid numbering). Without those, outputs the slide markdown to
stdout (useful for shelling out from your editor). You may also specify a source file to use for a code
slide.

=== options for add

==== Options
These options are specified *after* the command.

[<tt>-d, --dir=dir</tt>] Slide dir (where to put a new slide file)
[<tt>-n, --name=basename</tt>] Slide name (name of the new slide file)
[<tt>-s, --source=path to file</tt>] Include code from the given file as the slide body
[<tt>-t, --style, --type=valid showoff style/type</tt>] Slide Type/Style <i>( default: <tt>title</tt>)</i>
[<tt>-u, --nonumber</tt>] Dont number the slide, use the given name verbatim
=== <tt>create dir_name</tt>


== <tt>showoff create dir_name</tt>

Create new showoff presentation

Expand All @@ -340,57 +362,68 @@ Create new showoff presentation

This command helps start a new showoff presentation by setting up the proper directory structure for you. It takes the directory name you would like showoff to create for you.

==== Options
=== options for create

These options are specified *after* the command.

[<tt>-d, --slidedir=arg</tt>] sample slide directory name <i>( default: <tt>one</tt>)</i>
[<tt>-n, --nosamples</tt>] Dont create sample slides
=== <tt>help [command]</tt>


== <tt>showoff help [command]</tt>

Shows list of commands or help for one command

=== <tt>heroku heroku_name</tt>

== <tt>showoff heroku heroku_name</tt>

Setup your presentation to serve on Heroku

Creates the Gemfile and config.ru file needed to push a showoff pres to heroku. It will then run heroku create for you to register the new project on heroku and add the remote for you. Then all you need to do is commit the new created files and run git push heroku to deploy.

=== <tt>github</tt>

== <tt>showoff github</tt>

Generates a static version of your site and puts it in a gh-pages branch for static serving on GitHub.

==== Options
=== options for github
These options are specified *after* the command.

[<tt>-f, --force</tt>] force overwrite of existing Gemfile/.gems and config.ru files if they exist
[<tt>-g, --dotgems</tt>] Use older-style .gems file instead of bundler-style Gemfile
[<tt>-p, --password=arg</tt>] add password protection to your heroku site
=== <tt>serve </tt>

Serves the showoff presentation in the current directory

== <tt>showoff serve </tt>

Serves the showoff presentation in the current directory

==== Options
==== options for serve
These options are specified *after* the command.

[<tt>-f, --pres_file=arg</tt>] Presentation file <i>(default: <tt>showoff.json</tt>)</i>
[<tt>-h, --host=arg</tt>] Host or ip to run on <i>( default: <tt>localhost</tt>)</i>
[<tt>-p, --port=arg</tt>] Port on which to run <i>( default: <tt>9090</tt>)</i>
=== <tt>static name</tt>


== <tt>showoff static name</tt>

Generate static version of presentation

=== PDF

= PDF
Append a "/pdf" to the end of your presentation URL, and a PDF will be generated within the browser. For example,
http://localhost:9090/pdf

=== ZSH completion

= ZSH completion
You can complete commands and options in ZSH, by installing a script:

mkdir -p $HOME/.zsh/Completion
cp script/_showoff $HOME/.zsh/Completion
echo 'fpath=(~/.zsh/Completion $fpath)' >> $HOME/.zshrc


= Real World Usage

So far, ShowOff has been used in the following presentations (and many others):
Expand Down Expand Up @@ -426,6 +459,8 @@ So far, ShowOff has been used in the following presentations (and many others):
http://github.com/nono/Presentations/tree/master/20100708_RMLL_Ruby_1.9/
* Lone Star PHP 2011 - Drupal - Chris Christensen
https://github.com/christianchristensen/Presentations/tree/master/20110611-lonestarphp-drupal
* Railsbridge Open Workshops - Sarah Allen, Sarah Mei, and Alex Chaffee
http://github.com/alexch/workshop


If you use it for something, please let me know so I can add it.
Expand Down

0 comments on commit aff99a3

Please sign in to comment.