jekyll_reveal_generator 0.2.0.alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.editorconfig +23 -0
 - data/.gitignore +11 -0
 - data/.rspec +3 -0
 - data/Gemfile +4 -0
 - data/README.md +80 -0
 - data/Rakefile +22 -0
 - data/bin/console +14 -0
 - data/bin/rake +17 -0
 - data/bin/setup +8 -0
 - data/bin/thor +17 -0
 - data/exe/jekyll_reveal_generator +4 -0
 - data/exe/jrg +4 -0
 - data/jekyll_reveal_generator.gemspec +34 -0
 - data/lib/jekyll_reveal_generator/cli.rb +21 -0
 - data/lib/jekyll_reveal_generator/create_new_presentation.rb +108 -0
 - data/lib/jekyll_reveal_generator/create_slide.rb +82 -0
 - data/lib/jekyll_reveal_generator/defaults.rb +56 -0
 - data/lib/jekyll_reveal_generator/final_message.txt +34 -0
 - data/lib/jekyll_reveal_generator/utils.rb +59 -0
 - data/lib/jekyll_reveal_generator/version.rb +3 -0
 - data/lib/jekyll_reveal_generator.rb +6 -0
 - data/templates/presentation/.gitignore +4 -0
 - data/templates/presentation/Gemfile +3 -0
 - data/templates/presentation/Rakefile +11 -0
 - data/templates/presentation/_config.yml +12 -0
 - data/templates/presentation/_publish.yml.tt +3 -0
 - data/templates/presentation/setup.sh +10 -0
 - data/templates/presentation/source/_data/info.yml.tt +11 -0
 - data/templates/presentation/source/_includes/slide_footer.html +4 -0
 - data/templates/presentation/source/_includes/slide_header.html +4 -0
 - data/templates/presentation/source/_includes/slides.html +3 -0
 - data/templates/presentation/source/_layouts/printed_notes.html +22 -0
 - data/templates/presentation/source/_layouts/slide.html +3 -0
 - data/templates/presentation/source/_layouts/slideshow.html +37 -0
 - data/templates/presentation/source/_slides/00-00-title-slide.md +37 -0
 - data/templates/presentation/source/_slides/00-01-code-sample.html +39 -0
 - data/templates/presentation/source/css/printed_styles.sass +23 -0
 - data/templates/presentation/source/css/styles.sass +66 -0
 - data/templates/presentation/source/css/zenburn.css +80 -0
 - data/templates/presentation/source/index.html +3 -0
 - data/templates/presentation/source/js/revealConfig.js +117 -0
 - data/templates/presentation/source/notes.html +3 -0
 - data/templates/slides/blank_slide.html.tt +7 -0
 - data/templates/slides/blank_slide.markdown.tt +7 -0
 - data/templates/slides/bullet_slide.html.tt +18 -0
 - data/templates/slides/bullet_slide.markdown.tt +16 -0
 - data/templates/slides/image_left_slide.html.tt +31 -0
 - data/templates/slides/image_left_slide.markdown.tt +32 -0
 - data/templates/slides/image_right_slide.html.tt +31 -0
 - data/templates/slides/image_right_slide.markdown.tt +32 -0
 - data/templates/slides/multi_slide.html.tt +19 -0
 - data/templates/slides/multi_slide.markdown.tt +23 -0
 - data/templates/slides/standard_slide.html.tt +10 -0
 - data/templates/slides/standard_slide.markdown.tt +10 -0
 - data/templates/slides/title_slide.html.tt +10 -0
 - data/templates/slides/title_slide.markdown.tt +9 -0
 - data/templates/slides/two_up_slide.html.tt +32 -0
 - data/templates/slides/two_up_slide.markdown.tt +24 -0
 - metadata +229 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d08fa0c08fb27a44a96e0ef462523bd849a6c91f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ce77550f90689c4ec42a2cf6edf0dbed5cc54499
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: '05092d82c726399926066eebdf1977059859889b625805ca4ea43374645d0a2760a1339215ce77c739c684b93d1ed3391b24995f7af45a10f8924908cbc2cb55'
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9939bfe3445a393611cb69d62e492f3e8866a83318e663b0c03555b4ff5308806a3eab44f013813bfc452b9812e2cb00772e7862dd85f34b6f28eb141e398188
         
     | 
    
        data/.editorconfig
    ADDED
    
    | 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # EditorConfig is awesome: http://EditorConfig.org
         
     | 
| 
      
 2 
     | 
    
         
            +
            # Sample (and default) .editorconfig file for projects
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            # top-most EditorConfig file
         
     | 
| 
      
 5 
     | 
    
         
            +
            root = true
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # Unix-style newlines with a newline ending every file
         
     | 
| 
      
 8 
     | 
    
         
            +
            [*]
         
     | 
| 
      
 9 
     | 
    
         
            +
            end_of_line = lf
         
     | 
| 
      
 10 
     | 
    
         
            +
            insert_final_newline = true
         
     | 
| 
      
 11 
     | 
    
         
            +
            charset = utf-8
         
     | 
| 
      
 12 
     | 
    
         
            +
            indent_style = space
         
     | 
| 
      
 13 
     | 
    
         
            +
            indent_size = 2
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            # Tab indentation (no size specified)
         
     | 
| 
      
 16 
     | 
    
         
            +
            [Makefile]
         
     | 
| 
      
 17 
     | 
    
         
            +
            indent_style = tab
         
     | 
| 
      
 18 
     | 
    
         
            +
            indent_size = 1
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            # Matches the exact files either package.json or .travis.yml
         
     | 
| 
      
 21 
     | 
    
         
            +
            [{package.json,.travis.yml}]
         
     | 
| 
      
 22 
     | 
    
         
            +
            indent_style = space
         
     | 
| 
      
 23 
     | 
    
         
            +
            indent_size = 2
         
     | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.rspec
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,80 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # JekyllRevealGenerator
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Generate Jekyll-Reveal.js Slide Presentations
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            You should be familiar with [Jekyll] and [Reveal] to use this generator
         
     | 
| 
      
 6 
     | 
    
         
            +
            effectively.
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            [Jekyll]: http://jekyllrb.com "The blog-aware static site generator"
         
     | 
| 
      
 9 
     | 
    
         
            +
            [Reveal]: http://lab.hakim.se/reveal-js/#/ "The HTML presentation framework"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## Installation
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Install it yourself as:
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                $ gem install jekyll_reveal_generator
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ## Usage
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              	$ jekyll_reveal_generator help
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            or
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                $ jrg help
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            To create a new presentation, use `init`:
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                $ jrg init my_prez
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            and answer the prompts. This will run the `setup.sh` script and
         
     | 
| 
      
 30 
     | 
    
         
            +
            initialize a git repository and make the first commit.
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            To create a slide, from the presentation root directory, run:
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                $ cd my_pres
         
     | 
| 
      
 35 
     | 
    
         
            +
                $ jrg slide
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            and answer the prompts.
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            The included Rakefile has two tasks, `serve` and `publish`:
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            * `serve` launches the jekyll server on port 4000
         
     | 
| 
      
 42 
     | 
    
         
            +
            * `publish` builds the presentation adding the `_publish.yml`
         
     | 
| 
      
 43 
     | 
    
         
            +
              configuration to the normal configuration
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            ## Templates
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            The slide presentation template is in the `templates/presentation/`
         
     | 
| 
      
 48 
     | 
    
         
            +
            directory.
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            The new slide templates are in `templates/slides`
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            There is no provision for adding or modifying the templates.
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            ## Development
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            After checking out the repo, run `bin/setup` to install
         
     | 
| 
      
 57 
     | 
    
         
            +
            dependencies. Then, run `rake test` to run the tests. You can also run
         
     | 
| 
      
 58 
     | 
    
         
            +
            `bin/console` for an interactive prompt that will allow you to
         
     | 
| 
      
 59 
     | 
    
         
            +
            experiment.
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            To install this gem onto your local machine, run `bundle exec rake
         
     | 
| 
      
 62 
     | 
    
         
            +
            install`. To release a new version, update the version number in
         
     | 
| 
      
 63 
     | 
    
         
            +
            `version.rb`, and then run `bundle exec rake release`, which will
         
     | 
| 
      
 64 
     | 
    
         
            +
            create a git tag for the version, push git commits and tags, and push
         
     | 
| 
      
 65 
     | 
    
         
            +
            the `.gem` file to [rubygems.org](https://rubygems.org).
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            This gem utilizes [Thor] as a generator.
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            ## Testing
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            Testing is using [RSpec] for unit testing, and [Aruba] for
         
     | 
| 
      
 72 
     | 
    
         
            +
            command-line testing.
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            [RSpec]: http://rspec.info/ "Behavior-Driven Development for Ruby. Making TDD Productive and Fun"
         
     | 
| 
      
 75 
     | 
    
         
            +
            [Aruba]: https://github.com/cucumber/aruba "Test command-line applications with Cucumber-Ruby, Rspec, or Minitest"
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            ## Contributing
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            Bug reports and pull requests are welcome on GitHub
         
     | 
| 
      
 80 
     | 
    
         
            +
            at <https://github.com/tamouse/jekyll_reveal_generator>.
         
     | 
    
        data/Rakefile
    ADDED
    
    | 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "bundler/gem_tasks"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            begin
         
     | 
| 
      
 4 
     | 
    
         
            +
              require 'rspec/core/rake_task'
         
     | 
| 
      
 5 
     | 
    
         
            +
              RSpec::Core::RakeTask.new(:spec)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              require 'cucumber'
         
     | 
| 
      
 8 
     | 
    
         
            +
              require 'cucumber/rake/task'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              Cucumber::Rake::Task.new(:features) do |t|
         
     | 
| 
      
 11 
     | 
    
         
            +
                t.cucumber_opts = "features --format pretty"
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              task :default => [:spec, :features]
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 17 
     | 
    
         
            +
              $stderr.puts "Could not load Cucumber"
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            task :serve do |t|
         
     | 
| 
      
 21 
     | 
    
         
            +
              sh 'bundle exec jekyll serve'
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
    
        data/bin/console
    ADDED
    
    | 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require "bundler/setup"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "jekyll_reveal_generator"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # You can add fixtures and/or initialization code here to make experimenting
         
     | 
| 
      
 7 
     | 
    
         
            +
            # with your gem easier. You can also use a different console, if you like.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            # (If you use this, don't forget to add pry to your Gemfile!)
         
     | 
| 
      
 10 
     | 
    
         
            +
            require "pry"
         
     | 
| 
      
 11 
     | 
    
         
            +
            Pry.start
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            # require "irb"
         
     | 
| 
      
 14 
     | 
    
         
            +
            # IRB.start(__FILE__)
         
     | 
    
        data/bin/rake
    ADDED
    
    | 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
            #
         
     | 
| 
      
 4 
     | 
    
         
            +
            # This file was generated by Bundler.
         
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            # The application 'rake' is installed as part of a gem, and
         
     | 
| 
      
 7 
     | 
    
         
            +
            # this file is here to facilitate running it.
         
     | 
| 
      
 8 
     | 
    
         
            +
            #
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            require "pathname"
         
     | 
| 
      
 11 
     | 
    
         
            +
            ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
         
     | 
| 
      
 12 
     | 
    
         
            +
              Pathname.new(__FILE__).realpath)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            require "rubygems"
         
     | 
| 
      
 15 
     | 
    
         
            +
            require "bundler/setup"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            load Gem.bin_path("rake", "rake")
         
     | 
    
        data/bin/setup
    ADDED
    
    
    
        data/bin/thor
    ADDED
    
    | 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
            #
         
     | 
| 
      
 4 
     | 
    
         
            +
            # This file was generated by Bundler.
         
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            # The application 'thor' is installed as part of a gem, and
         
     | 
| 
      
 7 
     | 
    
         
            +
            # this file is here to facilitate running it.
         
     | 
| 
      
 8 
     | 
    
         
            +
            #
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            require "pathname"
         
     | 
| 
      
 11 
     | 
    
         
            +
            ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
         
     | 
| 
      
 12 
     | 
    
         
            +
              Pathname.new(__FILE__).realpath)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            require "rubygems"
         
     | 
| 
      
 15 
     | 
    
         
            +
            require "bundler/setup"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            load Gem.bin_path("thor", "thor")
         
     | 
    
        data/exe/jrg
    ADDED
    
    
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            lib = File.expand_path('../lib', __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'jekyll_reveal_generator/version'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 7 
     | 
    
         
            +
              spec.name          = "jekyll_reveal_generator"
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.version       = JekyllRevealGenerator::VERSION
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.authors       = ["Tamara Temple"]
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.email         = ["tamouse@gmail.com"]
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              spec.summary       = %q{Generate Jekyll-Reveal.js Slides}
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.description   = %q{Generate a slide presentation that uses Jekyll and Reveal.js}
         
     | 
| 
      
 14 
     | 
    
         
            +
              spec.homepage      = "https://github.com/tamouse/jekyll_reveal_generator"
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              spec.files         = `git ls-files -z`.split("\x0").reject do |f|
         
     | 
| 
      
 17 
     | 
    
         
            +
                f.match(%r{^(test|spec|features)/})
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
              spec.bindir        = "exe"
         
     | 
| 
      
 20 
     | 
    
         
            +
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         
     | 
| 
      
 21 
     | 
    
         
            +
              spec.require_paths = ["lib"]
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_dependency "bundler"
         
     | 
| 
      
 24 
     | 
    
         
            +
              spec.add_dependency "rake"
         
     | 
| 
      
 25 
     | 
    
         
            +
              spec.add_dependency "thor"
         
     | 
| 
      
 26 
     | 
    
         
            +
              spec.add_dependency "recursive-open-struct"
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              spec.add_development_dependency "cucumber"
         
     | 
| 
      
 29 
     | 
    
         
            +
              spec.add_development_dependency "aruba", "~> 1.0.0-alpha.2"
         
     | 
| 
      
 30 
     | 
    
         
            +
              spec.add_development_dependency "rspec"
         
     | 
| 
      
 31 
     | 
    
         
            +
              spec.add_development_dependency "faker"
         
     | 
| 
      
 32 
     | 
    
         
            +
              spec.add_development_dependency "pry-byebug"
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "thor"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "yaml"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "json"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "logger"
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "recursive-open-struct"
         
     | 
| 
      
 6 
     | 
    
         
            +
            require "jekyll_reveal_generator/defaults"
         
     | 
| 
      
 7 
     | 
    
         
            +
            require "jekyll_reveal_generator/create_new_presentation"
         
     | 
| 
      
 8 
     | 
    
         
            +
            require "jekyll_reveal_generator/create_slide"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            $logger = Logger.new(STDERR)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            module JekyllRevealGenerator
         
     | 
| 
      
 13 
     | 
    
         
            +
              class Cli < Thor
         
     | 
| 
      
 14 
     | 
    
         
            +
                include Thor::Actions
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                add_runtime_options!
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                register(JekyllRevealGenerator::CreateNewPresentation, "init", "init", "Creates a new jekyll-reveal presentation")
         
     | 
| 
      
 19 
     | 
    
         
            +
                register(JekyllRevealGenerator::CreateSlide, "slide", "slide", "Create a new slide")
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,108 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "yaml"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "thor"
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module JekyllRevealGenerator
         
     | 
| 
      
 5 
     | 
    
         
            +
              class CreateNewPresentation < Thor::Group
         
     | 
| 
      
 6 
     | 
    
         
            +
                include Thor::Actions
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                add_runtime_options!
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                desc "Creates a new Jekyll-Reveal Presentation"
         
     | 
| 
      
 11 
     | 
    
         
            +
                argument :folder, type: :string, desc: "Folder to generate new presention"
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                attr_accessor :init_options
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                def init
         
     | 
| 
      
 16 
     | 
    
         
            +
                  self.init_options = RecursiveOpenStruct.new({
         
     | 
| 
      
 17 
     | 
    
         
            +
                      title: '',
         
     | 
| 
      
 18 
     | 
    
         
            +
                      description: '',
         
     | 
| 
      
 19 
     | 
    
         
            +
                      author: {
         
     | 
| 
      
 20 
     | 
    
         
            +
                        name: '',
         
     | 
| 
      
 21 
     | 
    
         
            +
                        email: '',
         
     | 
| 
      
 22 
     | 
    
         
            +
                        twitter: '',
         
     | 
| 
      
 23 
     | 
    
         
            +
                        github: ''
         
     | 
| 
      
 24 
     | 
    
         
            +
                      },
         
     | 
| 
      
 25 
     | 
    
         
            +
                      venue: {
         
     | 
| 
      
 26 
     | 
    
         
            +
                        name: '',
         
     | 
| 
      
 27 
     | 
    
         
            +
                        ssid: '',
         
     | 
| 
      
 28 
     | 
    
         
            +
                        password: ''
         
     | 
| 
      
 29 
     | 
    
         
            +
                      },
         
     | 
| 
      
 30 
     | 
    
         
            +
                      publishing: {
         
     | 
| 
      
 31 
     | 
    
         
            +
                        site_url: '',
         
     | 
| 
      
 32 
     | 
    
         
            +
                        base_url: '',
         
     | 
| 
      
 33 
     | 
    
         
            +
                        destination: 'docs'
         
     | 
| 
      
 34 
     | 
    
         
            +
                      }
         
     | 
| 
      
 35 
     | 
    
         
            +
                    }
         
     | 
| 
      
 36 
     | 
    
         
            +
                      .merge({"folder" => folder})
         
     | 
| 
      
 37 
     | 
    
         
            +
                      .merge(options))
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  self.init_options.title = ask("Title of presentation:", :green)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  if init_options.title.match(%r{\A\s*\z})
         
     | 
| 
      
 41 
     | 
    
         
            +
                    $logger.error("You must give a title")
         
     | 
| 
      
 42 
     | 
    
         
            +
                    exit -1;
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
                  self.init_options.description = ask("Description:")
         
     | 
| 
      
 45 
     | 
    
         
            +
                  self.init_options.author.name = ask("Author's name:")
         
     | 
| 
      
 46 
     | 
    
         
            +
                  self.init_options.author.email = ask("Author's email:")
         
     | 
| 
      
 47 
     | 
    
         
            +
                  self.init_options.author.twitter = ask("Author's twitter handle:")
         
     | 
| 
      
 48 
     | 
    
         
            +
                  self.init_options.author.github = ask("Author's github name:")
         
     | 
| 
      
 49 
     | 
    
         
            +
                  self.init_options.venue.name = ask("Name of venue:", default: "T.B.D.")
         
     | 
| 
      
 50 
     | 
    
         
            +
                  self.init_options.venue.ssid = ask("What is the SSID?", default: "T.B.D.")
         
     | 
| 
      
 51 
     | 
    
         
            +
                  self.init_options.venue.password = ask("What is the network password? ", default: "T.B.D.")
         
     | 
| 
      
 52 
     | 
    
         
            +
                  self.init_options.publishing.site_url = ask("What is the published site url?")
         
     | 
| 
      
 53 
     | 
    
         
            +
                  self.init_options.publishing.base_url = ask("What is the base URL for the published site?")
         
     | 
| 
      
 54 
     | 
    
         
            +
                  self.init_options.publishing.destination = ask("What is the destination folder for the published site?", default: "docs")
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                  puts init_options.to_h.to_yaml
         
     | 
| 
      
 57 
     | 
    
         
            +
                  unless yes?("Is this correct?", :red)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    $logger.error("quitting, try again")
         
     | 
| 
      
 59 
     | 
    
         
            +
                    exit -1;
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
                  puts "Creating site"
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                def self.source_root
         
     | 
| 
      
 65 
     | 
    
         
            +
                  File.expand_path("../../../templates", __FILE__)
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                def intiialize_directory
         
     | 
| 
      
 69 
     | 
    
         
            +
                  config = {
         
     | 
| 
      
 70 
     | 
    
         
            +
                    verbose: init_options.quiet || true,
         
     | 
| 
      
 71 
     | 
    
         
            +
                    force: init_options.force || false,
         
     | 
| 
      
 72 
     | 
    
         
            +
                    pretend: init_options.pretend || false,
         
     | 
| 
      
 73 
     | 
    
         
            +
                    quiet: init_options.quient || false
         
     | 
| 
      
 74 
     | 
    
         
            +
                  }
         
     | 
| 
      
 75 
     | 
    
         
            +
                  empty_directory(init_options.folder, config)
         
     | 
| 
      
 76 
     | 
    
         
            +
                  destination_root = init_options.folder
         
     | 
| 
      
 77 
     | 
    
         
            +
                  directory("presentation", init_options.folder, config)
         
     | 
| 
      
 78 
     | 
    
         
            +
                end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                def initialize_presentation
         
     | 
| 
      
 81 
     | 
    
         
            +
                  if defined? Bundler
         
     | 
| 
      
 82 
     | 
    
         
            +
                    Bundler.with_clean_env do
         
     | 
| 
      
 83 
     | 
    
         
            +
                      run_initial_directory_setup
         
     | 
| 
      
 84 
     | 
    
         
            +
                    end
         
     | 
| 
      
 85 
     | 
    
         
            +
                  else
         
     | 
| 
      
 86 
     | 
    
         
            +
                    run_initial_directory_setup
         
     | 
| 
      
 87 
     | 
    
         
            +
                  end
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                def final_message
         
     | 
| 
      
 91 
     | 
    
         
            +
                  msg = File.read(File.expand_path("../final_message.txt", __FILE__))
         
     | 
| 
      
 92 
     | 
    
         
            +
                  say(msg, :green)
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                private
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                def run_initial_directory_setup
         
     | 
| 
      
 98 
     | 
    
         
            +
                  inside(init_options.folder) do
         
     | 
| 
      
 99 
     | 
    
         
            +
                    run 'git init'
         
     | 
| 
      
 100 
     | 
    
         
            +
                    run 'sh setup.sh'
         
     | 
| 
      
 101 
     | 
    
         
            +
                    run 'git add --all -v'
         
     | 
| 
      
 102 
     | 
    
         
            +
                    run 'git commit -m "Initial Commit"'
         
     | 
| 
      
 103 
     | 
    
         
            +
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
              end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,82 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "recursive-open-struct"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "yaml"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "thor"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "jekyll_reveal_generator/utils"
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "pathname"
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            module JekyllRevealGenerator
         
     | 
| 
      
 8 
     | 
    
         
            +
              class CreateSlide < Thor::Group
         
     | 
| 
      
 9 
     | 
    
         
            +
                include Thor::Actions
         
     | 
| 
      
 10 
     | 
    
         
            +
                include JekyllRevealGenerator::Utils
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                SLIDE_STYLES = [
         
     | 
| 
      
 13 
     | 
    
         
            +
                  'blank',
         
     | 
| 
      
 14 
     | 
    
         
            +
                  'bullet',
         
     | 
| 
      
 15 
     | 
    
         
            +
                  'image_left',
         
     | 
| 
      
 16 
     | 
    
         
            +
                  'image_right',
         
     | 
| 
      
 17 
     | 
    
         
            +
                  'multi',
         
     | 
| 
      
 18 
     | 
    
         
            +
                  'standard',
         
     | 
| 
      
 19 
     | 
    
         
            +
                  'title',
         
     | 
| 
      
 20 
     | 
    
         
            +
                  'two_up'
         
     | 
| 
      
 21 
     | 
    
         
            +
                ]
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                SLIDE_FORMATS = ['html', 'markdown']
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                add_runtime_options!
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                class_option(:working_dir, default: Pathname.pwd,
         
     | 
| 
      
 29 
     | 
    
         
            +
                  desc: "Working Directory; root of presentation",
         
     | 
| 
      
 30 
     | 
    
         
            +
                  type: :string, aliases: ['--WD'])
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                desc "Creates a new slide"
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                attr_accessor :slide_options
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def slide
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  self.slide_options = RecursiveOpenStruct.new({
         
     | 
| 
      
 39 
     | 
    
         
            +
                      title: '',
         
     | 
| 
      
 40 
     | 
    
         
            +
                      group: 0,
         
     | 
| 
      
 41 
     | 
    
         
            +
                      sequence: 0,
         
     | 
| 
      
 42 
     | 
    
         
            +
                      slug: '',
         
     | 
| 
      
 43 
     | 
    
         
            +
                      format: 'html',
         
     | 
| 
      
 44 
     | 
    
         
            +
                      style: 'standard'
         
     | 
| 
      
 45 
     | 
    
         
            +
                    }
         
     | 
| 
      
 46 
     | 
    
         
            +
                      .merge(options))
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  self.slide_options.working_dir = Pathname.new(slide_options.working_dir)
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                  Dir.chdir(slide_options.working_dir) do |wd|
         
     | 
| 
      
 51 
     | 
    
         
            +
                    self.slide_options.group = ask("Group?", default: last_slide_group).to_i
         
     | 
| 
      
 52 
     | 
    
         
            +
                    $logger.debug("slide_options.group: #{slide_options.group}")
         
     | 
| 
      
 53 
     | 
    
         
            +
                    self.slide_options.sequence = ask("Sequence?", default: last_slide_sequence(slide_options.group) + 1).to_i
         
     | 
| 
      
 54 
     | 
    
         
            +
                  end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                  self.slide_options.title = ask("Title of slide?")
         
     | 
| 
      
 57 
     | 
    
         
            +
                  self.slide_options.slug = ask("Slide slug?", default: slide_slug(slide_options))
         
     | 
| 
      
 58 
     | 
    
         
            +
                  self.slide_options.format = ask("Format? [#{SLIDE_FORMATS.join(", ")}]", limit_to: SLIDE_FORMATS, default: slide_options.format)
         
     | 
| 
      
 59 
     | 
    
         
            +
                  self.slide_options.style = ask("Slide style? [#{SLIDE_STYLES.join(", ")}]",
         
     | 
| 
      
 60 
     | 
    
         
            +
                    limit_to: SLIDE_STYLES,
         
     | 
| 
      
 61 
     | 
    
         
            +
                    default: 'standard')
         
     | 
| 
      
 62 
     | 
    
         
            +
                  $logger.debug("Slide Options: \n#{slide_options.to_h.to_yaml}")
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                def self.source_root
         
     | 
| 
      
 66 
     | 
    
         
            +
                  File.expand_path("../../../templates/slides", __FILE__)
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                def create_slide
         
     | 
| 
      
 70 
     | 
    
         
            +
                  source="#{slide_options.style}_slide.#{slide_options.format}"
         
     | 
| 
      
 71 
     | 
    
         
            +
                  $logger.debug("template_file: #{source}")
         
     | 
| 
      
 72 
     | 
    
         
            +
                  target_file="#{slide_options.slug}.#{slide_options.format}"
         
     | 
| 
      
 73 
     | 
    
         
            +
                  $logger.debug("target_file: #{target_file}")
         
     | 
| 
      
 74 
     | 
    
         
            +
                  destination=slide_options.working_dir.join("source", "_slides", target_file)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  $logger.debug("destination: #{destination}")
         
     | 
| 
      
 76 
     | 
    
         
            +
                  template(source, destination)
         
     | 
| 
      
 77 
     | 
    
         
            +
                end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            module JekyllRevealGenerator
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              DEFAULT_CONFIGURATION = {
         
     | 
| 
      
 5 
     | 
    
         
            +
                title: 'My Cool Talk',
         
     | 
| 
      
 6 
     | 
    
         
            +
                subtitle: "It's the bee's knees",
         
     | 
| 
      
 7 
     | 
    
         
            +
                author: {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  name: 'Nobody',
         
     | 
| 
      
 9 
     | 
    
         
            +
                  email: 'nobody@example.com',
         
     | 
| 
      
 10 
     | 
    
         
            +
                  github: nil,
         
     | 
| 
      
 11 
     | 
    
         
            +
                  twitter: nil
         
     | 
| 
      
 12 
     | 
    
         
            +
                },
         
     | 
| 
      
 13 
     | 
    
         
            +
                collections: [
         
     | 
| 
      
 14 
     | 
    
         
            +
                  'slides'
         
     | 
| 
      
 15 
     | 
    
         
            +
                ],
         
     | 
| 
      
 16 
     | 
    
         
            +
                exclude: [
         
     | 
| 
      
 17 
     | 
    
         
            +
                  'bs-config.js',
         
     | 
| 
      
 18 
     | 
    
         
            +
                  'package.json',
         
     | 
| 
      
 19 
     | 
    
         
            +
                  'node_modules'
         
     | 
| 
      
 20 
     | 
    
         
            +
                ],
         
     | 
| 
      
 21 
     | 
    
         
            +
                kramdown: {
         
     | 
| 
      
 22 
     | 
    
         
            +
                  input: 'GFM',
         
     | 
| 
      
 23 
     | 
    
         
            +
                  hard_wrap: false,
         
     | 
| 
      
 24 
     | 
    
         
            +
                  parse_block_html: true,
         
     | 
| 
      
 25 
     | 
    
         
            +
                  parse_span_html: true
         
     | 
| 
      
 26 
     | 
    
         
            +
                }
         
     | 
| 
      
 27 
     | 
    
         
            +
              }
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              DEFAULT_PUBLISH_CONFIGURATION = {
         
     | 
| 
      
 30 
     | 
    
         
            +
                url: '',
         
     | 
| 
      
 31 
     | 
    
         
            +
                baseurl: ''
         
     | 
| 
      
 32 
     | 
    
         
            +
              }
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              DEFAULT_PACKAGE_JSON = {
         
     | 
| 
      
 36 
     | 
    
         
            +
                name: 'my-cool-talk',
         
     | 
| 
      
 37 
     | 
    
         
            +
                version: JekyllRevealGenerator::VERSION,
         
     | 
| 
      
 38 
     | 
    
         
            +
                description: "My cool talk",
         
     | 
| 
      
 39 
     | 
    
         
            +
                main: "index.js",
         
     | 
| 
      
 40 
     | 
    
         
            +
                scripts: {
         
     | 
| 
      
 41 
     | 
    
         
            +
                  "jekyll:serve": "bundle exec jekyll serve",
         
     | 
| 
      
 42 
     | 
    
         
            +
                  "jekyll:build": "bundle exec jekyll build --config=_configy.yml,_publish.yml",
         
     | 
| 
      
 43 
     | 
    
         
            +
                  "bs:serve": "browser-sync start --config bs-config.js",
         
     | 
| 
      
 44 
     | 
    
         
            +
                  "start": "concurrently \"npm run bs:serve\" \"npm run jekyll:serve\"",
         
     | 
| 
      
 45 
     | 
    
         
            +
                  "test": "echo \"Error: no tests specified\" && exit 1"
         
     | 
| 
      
 46 
     | 
    
         
            +
                },
         
     | 
| 
      
 47 
     | 
    
         
            +
                author: 'nobody',
         
     | 
| 
      
 48 
     | 
    
         
            +
                license: "MIT"
         
     | 
| 
      
 49 
     | 
    
         
            +
              }
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
              NPM_PACKAGES = [
         
     | 
| 
      
 52 
     | 
    
         
            +
                'browser-sync',
         
     | 
| 
      
 53 
     | 
    
         
            +
                'concurrently'
         
     | 
| 
      
 54 
     | 
    
         
            +
              ]
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            Congratulations, your new presentation is now ready
         
     | 
| 
      
 3 
     | 
    
         
            +
            for editing.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            You can start up a server that will point to http://localhost:4000
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                cd #{init_options.folder}
         
     | 
| 
      
 8 
     | 
    
         
            +
                bin/rake serve
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            If you add any node.js components, you can add to the setup.sh
         
     | 
| 
      
 11 
     | 
    
         
            +
            script, it would be a good place to add the "npm install" or
         
     | 
| 
      
 12 
     | 
    
         
            +
            "yarn" command.
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            I've already performed the initial git commit. You should keep
         
     | 
| 
      
 15 
     | 
    
         
            +
            committing changes as you go along.
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            The "_publish.yml" file is used to modify the links and the
         
     | 
| 
      
 18 
     | 
    
         
            +
            destination directory for publishing. This is mainly set up
         
     | 
| 
      
 19 
     | 
    
         
            +
            for publishing to github pages using the "docs/" directory on
         
     | 
| 
      
 20 
     | 
    
         
            +
            the master branch. If you want to go this way, the "_publish.yml"
         
     | 
| 
      
 21 
     | 
    
         
            +
            file settings should be something like:
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                url: "https://YOURGITHUB.github.io"
         
     | 
| 
      
 24 
     | 
    
         
            +
                baseurl: "/REPO_NAME"
         
     | 
| 
      
 25 
     | 
    
         
            +
                destination: docs
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            In the REPO_NAME settings you can specify the location for
         
     | 
| 
      
 28 
     | 
    
         
            +
            your github pages.
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            When you want to add slides, you can run "jrg" from the
         
     | 
| 
      
 31 
     | 
    
         
            +
            presentation root and answer the questions.
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                cd #{init_options.folder}
         
     | 
| 
      
 34 
     | 
    
         
            +
                jrg slide
         
     | 
| 
         @@ -0,0 +1,59 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "pathname"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module JekyllRevealGenerator
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              module Utils
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def slide_slug(o)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  pattern = "%02d-%02d-%s"
         
     | 
| 
      
 9 
     | 
    
         
            +
                  pattern % [
         
     | 
| 
      
 10 
     | 
    
         
            +
                    o.group.to_i,
         
     | 
| 
      
 11 
     | 
    
         
            +
                    o.sequence.to_i,
         
     | 
| 
      
 12 
     | 
    
         
            +
                    o.title.downcase
         
     | 
| 
      
 13 
     | 
    
         
            +
                      .gsub(/[^[:alnum:]]+/,'-')
         
     | 
| 
      
 14 
     | 
    
         
            +
                      .sub(/-+\z/,'')
         
     | 
| 
      
 15 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def group_num(file)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  file.to_s.split("-")[0].to_i
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                def sequence_num(file)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  file.to_s.split("-")[1].to_i
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                def last_slide_group(files=nil)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  files ||= slide_files
         
     | 
| 
      
 28 
     | 
    
         
            +
                  files
         
     | 
| 
      
 29 
     | 
    
         
            +
                    .map{|file| group_num(file) }
         
     | 
| 
      
 30 
     | 
    
         
            +
                    .uniq.sort.last
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                def last_slide_sequence(group, files=nil)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  files ||= slide_files
         
     | 
| 
      
 35 
     | 
    
         
            +
                  files
         
     | 
| 
      
 36 
     | 
    
         
            +
                    .reject{|file| group != group_num(file) }
         
     | 
| 
      
 37 
     | 
    
         
            +
                    .map{|file| sequence_num(file)}
         
     | 
| 
      
 38 
     | 
    
         
            +
                    .uniq.sort.last || -1
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                def slides
         
     | 
| 
      
 42 
     | 
    
         
            +
                  @slides ||= source.join(source, '_slides')
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                def slide_files
         
     | 
| 
      
 46 
     | 
    
         
            +
                  @slide_files ||= slides.children
         
     | 
| 
      
 47 
     | 
    
         
            +
                    .map{|f| f.basename}
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                def source
         
     | 
| 
      
 51 
     | 
    
         
            +
                  @source ||= root_dir.join("source")
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                def root_dir(dir=nil)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  @root_dir ||= (dir ? Pathname.new(dir) : Pathname.pwd)
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              end                                   # module Utils
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            desc "Run the jekyll development server"
         
     | 
| 
      
 3 
     | 
    
         
            +
            task :serve do |t|
         
     | 
| 
      
 4 
     | 
    
         
            +
              sh 'bundle exec jekyll serve --config=_config.yml'
         
     | 
| 
      
 5 
     | 
    
         
            +
            end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            desc "Build the published version"
         
     | 
| 
      
 9 
     | 
    
         
            +
            task :publish do |t|
         
     | 
| 
      
 10 
     | 
    
         
            +
              sh 'bundle exec jekyll build --config=_config.yml,_publish.yml'
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     |