Skip to content

Elixir -> HTML/JavaScript based presentation framework intended for showing Elixir code

License

Notifications You must be signed in to change notification settings

Cobenian/Presentex

Repository files navigation

Presentex

A HTML based presentation framework for Elixir.

Why use Presentex?

  • It has very simple understandable HTML, CSS and JavaScript
  • It works offline
  • It has only three dependencies
    • jQuery
    • highlight.js
    • flowtype.js
  • It has a very simple way to provide Elixir code samples
  • It uses a larger default font size than most presentation frameworks
  • All slides are generated from Elixir data structures

License Information

Usage

Add the dependency to your mix.exs file:

  defp deps do
    [{:presentex, "~> 0.0.10"}]
  end

Make sure that you do not use version 0.0.1, it will not work.

  Do *NOT* use version 0.0.1, it is known to be buggy.

You can create Presentex presentations using the standard Elixir tool mix.

  • Create a mix project if you don't have one already
  • Create a file with the content of your slides
  • Run mix gen.presentation <output-dir> <slide-content-file>

Then simply open the /index.html file in your browser. No internet connection is required.

Slides

The slides all belong in one file. They are separated by commas.

View a sample slide file at test/sample_slides.ex

The generated output of test/sample_slides.ex is also checked in under the sample directory.

The slide types are:

Title with subtitle

  [title: "Elixir for noobs", subtitle: "A better way to program"]

Heading

  [heading: "New Features"]

Paragraph of text

  "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
  tempor incididunt ut labore et dolore magna aliqua."

Bullet list of items

  ["Improved error handling", "Fixed memory leak in mysql driver",
    "Added UTF-8 support in library"]

A quote

  [blockquote: "To code, or not to code. That is a dumb question.",
    author: "Bryan Weber"]

Elixir code

There are three different ways to include Elixir code.

  Source.code(

      defmodule Ticket do
        def process(tkt, new_status) do
          tkt
          |> Workflow.Engine.status
          |> Workflow.Engine.transition new_status
        end
      end

  )
  [elixir: """

  defmodule Foo do
    def bar do
      IO.puts "quux"
    end
  end

  """]
  [code: """

  defmodule Foo do
    def bar do
      IO.puts "quux"
    end
  end

  """]

Source Code (for languages other than Elixir)

The list of supported languages can be found at highlight.js

  [code: """

  PrepareAlarm = fun(Room) ->
      io:format("Alarm set in ~s.~n",[Room]),
      fun() -> io:format(
                 "Alarm tripped in ~s! Call Batman!~n",
                 [Room])
      end
  end.

  """, lang: "erlang"]

Raw HTML

  <div>
    <blink>We don't miss these days...</blink>
  </div>

Release Notes

0.0.10

Changing title only slide type to heading.

0.0.9

Changing default style from 'idea' to 'tomorrow'.

0.0.8

Fixing the font sizes to not be quite so large.

0.0.7

Fixing the css so flowtype.js actually resizes text.

0.0.6

Added flowtype.js for smarter font size handling.

0.0.5

Fixed a formatting issue with Elixir source code.

0.0.4

Added documentation

0.0.3

Added [elixir: ""] slide type.

0.0.2

Added mix task that generates the presentation based on the slides input.

0.0.1

Buggy release, do NOT use this version.

About

Elixir -> HTML/JavaScript based presentation framework intended for showing Elixir code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published