High carb slides
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



HighCarb is a framework to create presentations.

The presentation is based on Deck.js


$ gem install highcarb

Generate a presentation project

The -g flag generate a new tree with the base for the presentation

$ highcarb -g /my/slides/foobar

Adding content

The generated tree is something like

├── assets
│   ├── README
│   ├── base.scss
│   ├── custom.js
│   └── vendor
│       └── deck.js
│           ├── ...
│           └── ...
├── slides
│   └── 0001.haml
└── snippets
    └── README


The content can be wrote in HAML, MarkDown or in raw HTML.

The generator will concatenate all the files when the presentation is shown.

Special tags

%snippet is used to load a file from the snippets directory.

%asset load a file from the assets directory. If the file is an image, an img will be created. If it is a CSS file (or SCSS), a link tag will be used. And, for JavaScript files, a script tag is used.

If type asset type can not be determined by the MIME type, a CSS class can be added to the asset tag to force the type. The class can be image, style or javascript

If the asset is something else, a link will be added with an anchor.

%external can be used to create link to external pages. The shown text is shorted to be less noisy.


Every file from the asset directory is accessible from the http://domain/asset/ URL.


With this files

├── assets
│   ├── hacks.js
    └── first.png
└── snippets
    └── README

We could write

  %asset hacks.js

    %h1 First slide
    %asset first.png

    %h1 Second one

      %li.slide this
      %li.slide and
      %li.slide that
        See this:
        %external http://somewhere.tld/sometime

View the presentation

  $ highcarb /my/slides/foobar

Some options are available with the --help flag.

With the defaults options the web server will listen on 9090, so the presentation can be see at http://localhost:9090/

There is no need to restart the server if the content is changed. Everything will be regenerated when reload the page in the browser. The HTML generated for the snippets is cached. The cached key is the MD5 sum of the content.