Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
alexch committed May 8, 2011
1 parent 186bedc commit 5368fa8
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 ## PROJECT::GENERAL
coverage coverage
rdoc rdoc
doc
pkg pkg
*.gem *.gem
.bundle .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 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 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. you a URL to present from.


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


* show a timer - elapsed / remaining * show a timer - elapsed / remaining
* perform simple animations of images moving between keyframes * 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) * show audience questions / comments (twitter or direct)
* let audience members go back / catch up as you talk * let audience members go back / catch up as you talk
* let audience members vote on sections (?) * let audience members vote on sections (?)
* broadcast itself on Bonjour * broadcast itself on Bonjour
* let audience members download slides, code samples or other supplementary material * let audience members download slides, code samples or other supplementary material
* let you write on the slide with your mouse, madden-style via canvas * 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 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 can easily move sections between presentations, and you can rearrange or
remove sections easily. remove sections easily.


= Usage = 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 $ gem install showoff
$ git clone (showoff-repo) $ 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 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. 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 = Slide Format


You can break your slides up into sections of however many subdirectories deep You can break your slides up into sections of however many subdirectories deep
you need. ShowOff will recursively check all the directories mentioned in 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' have any number of slides in it, separating each slide with the '!SLIDE'
keyword and optional slide styles. 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 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 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 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"} {"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: You can manage the presentation with the following keys:


* space, cursor right: next slide * space, cursor right: next slide
* cursor left: previous slide * shift-space, cursor left: previous slide
* d: debug mode * d: debug mode
* c: table of contents (vi) * c, t: table of contents (vi)
* f: toggle footer * f: toggle footer
* z: toggle help * z, ?: toggle help
* p: toggle preshow * 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 = Preshow


If you want to show a slideshow while you wait to speak, you can run a preshow. Add a +_preshow+ directory 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 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 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. 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 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 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 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. 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. 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>help</tt>] Shows list of commands or help for one command
[<tt>heroku</tt>] Setup your presentation to serve on Heroku [<tt>heroku</tt>] Setup your presentation to serve on Heroku
[<tt>github</tt>] Setup your presentation to serve on GitHub Pages [<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>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 Add a new slide at the end in a given dir


*Aliases* *Aliases*
* <tt><b>new</b></tt> * <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. These options are specified *after* the command.


[<tt>-d, --dir=dir</tt>] Slide dir (where to put a new slide file) [<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>-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>-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>-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>-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 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. 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. These options are specified *after* the command.


[<tt>-d, --slidedir=arg</tt>] sample slide directory name <i>( default: <tt>one</tt>)</i> [<tt>-d, --slidedir=arg</tt>] sample slide directory name <i>( default: <tt>one</tt>)</i>
[<tt>-n, --nosamples</tt>] Dont create sample slides [<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 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 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. 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. 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. 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>-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>-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>-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. 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>-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>-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 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, 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 http://localhost:9090/pdf


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


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



= Real World Usage = Real World Usage


So far, ShowOff has been used in the following presentations (and many others): So far, ShowOff has been used in the following presentations (and many others):
Expand Down Expand Up @@ -424,6 +457,8 @@ So far, ShowOff has been used in the following presentations (and many others):
http://github.com/nono/Presentations/tree/master/20100703_25_promising_projects_in_50_minutes/ http://github.com/nono/Presentations/tree/master/20100703_25_promising_projects_in_50_minutes/
* 11th Libre Software Meeting 2010 - Ruby 1.9, The future of Ruby? - Bruno Michel * 11th Libre Software Meeting 2010 - Ruby 1.9, The future of Ruby? - Bruno Michel
http://github.com/nono/Presentations/tree/master/20100708_RMLL_Ruby_1.9/ http://github.com/nono/Presentations/tree/master/20100708_RMLL_Ruby_1.9/
* 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. If you use it for something, please let me know so I can add it.
Expand Down

0 comments on commit 5368fa8

Please sign in to comment.