Skip to content

Instantly share code, notes, and snippets.

@mojavelinux
Last active February 9, 2016 21:55
Show Gist options
  • Save mojavelinux/7655050 to your computer and use it in GitHub Desktop.
Save mojavelinux/7655050 to your computer and use it in GitHub Desktop.
deck.js introduction slide deck represented in AsciiDoc (using Asciidoctor shorthand notation)

Getting Started with deck.js

How to Make a Deck

Write Slides

Slide content is simple HTML.

Choose Themes

One for slide styles and one for deck transitions.

Include Extensions

Add extra functionality to your deck, or leave it stripped down.

Quick Start

When you download deck.js, it will include a file named boilerplate.html. You can immediately start editing slides in this page and viewing them in your web browser. Later on, when you are comfortable customizing the deck, you can edit the various pieces of the boilerplate or make your own to suit your needs.

The Markup

Slides are just HTML elements with a slide of slide.

<section class="slide">
  <h2>How to Make a Deck</h2>
  <ol>
    <li>
      <h3>Write Slides</h3>
      <p>Slide content is simple HTML.</p>
    </li>
    <li>
      <h3>Choose Themes</h3>
      <p>One for slide styles and one for deck transitions.</p>
    </li>
  </ol>
</section>

Style Themes

Customizes the colors, typography, and layout of slide content.

<link rel="stylesheet" href="/path/to/css/style-theme.css">

Transition Themes

Defines transitions between slides using CSS3 transitions. Less capable browsers fall back to cutaways. But you aren’t using those browsers to give your presentations, are you…​

<link rel="stylesheet" href="/path/to/css/transition-theme.css">

Extensions

Core gives you basic slide functionality with left and right arrow navigation, but you may want more. Here are the ones included in this deck:

  • deck.goto: Adds a shortcut key to jump to any slide number. Hit g, type in the slide number, and hit enter.

  • deck.hash: Enables internal linking within slides, deep linking to individual slides, and updates the address bar & a permalink anchor with each slide change.

  • deck.menu: Adds a menu view, letting you see all slides in a grid. Hit m to toggle to menu view, continue navigating your deck, and hit m to return to normal view. Touch devices can double-tap the deck to switch between views.

  • deck.navigation: Adds clickable left and right buttons for the less keyboard inclined.

  • deck.status: Adds a page number indicator. (current/total)

  • deck.scale: Scales each slide to fit within the deck container using CSS Transforms for those browsers that support them.

Each extension folder in the download package contains the necessary JavaScript, CSS, and HTML files. For a complete list of extension modules included in deck.js, check out the documentation.

Nested Slides

That last slide had a few steps. To create substeps in slides, just nest them:

<section class="slide">
  <h2>Extensions</h2>
  <p>Core gives you basic slide functionality...</p>
  <ul>
    <li class="slide">
      <h3>deck.goto</h3>
      <p>Adds a shortcut key to jump to any slide number...</p>
    </li>
    <li class="slide">...</li>
    <li class="slide">...</li>
    <li class="slide">...</li>
  </ul>
</section>

Other Elements: Images

Kitties
<img src="http://placekitten.com/600/375" alt="Kitties">

Other Elements: Blockquotes

Food is an important part of a balanced diet.
— Fran Lebowitz
<blockquote cite="http://example.org">
  <p>Food is an important part of a balanced diet.</p>
  <p><cite>Fran Lebowitz</cite></p>
</blockquote>

Other Elements: Video Embeds

Embed videos from your favorite online video service or with an HTML5 video element.

<iframe src="http://player.vimeo.com/video/1063136?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0"></iframe>

Digging Deeper

If you want to learn about making your own themes, extending deck.js, and more, check out the documentation.

@cmoulliard
Copy link

Link to the video is not correct and cannot display/embedded in HTML

<section class="slide" id="elements-videos">
<h2>Other Elements: Video Embeds</h2>
<div class="paragraph"><p>Embed videos from your favorite online video service or with an HTML5 video element.</p></div>

<div class="videoblock">
<iframe allowFullScreen height="225" mozallowfullscreen src="//player.vimeo.com/video/1063136" webkitAllowFullScreen width="400"></iframe>
</div>

<div class="listingblock">
<div class="content">
<pre>&lt;iframe src="http://player.vimeo.com/video/1063136?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="400" height="225" frameborder="0"&gt;&lt;/iframe&gt;</pre>
</div>
</div>
</section>

@cmoulliard
Copy link

We should add a table

.An example table
[width="60%",options="header"]
|==============================================
| Option          | Description
| -a 'USER GROUP' | Add 'USER' to 'GROUP'.
| -R 'GROUP'      | Disables access to 'GROUP'.
|==============================================

@cmoulliard
Copy link

And also admonitions using font awesome

NOTE: This is a note

WARNING: This is a warning

IMPORTANT: This is an important thing

TIP: This is a Tip

CAUTION: You should take care about that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment