showoff 0.3.3 → 0.3.4
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.
- data/README.rdoc +5 -0
 - data/bin/showoff +16 -0
 - data/lib/showoff.rb +26 -8
 - data/lib/showoff_utils.rb +19 -0
 - metadata +3 -3
 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -276,6 +276,7 @@ added where your cursor was.  Binding this to a keybinding can allow you to add 
     | 
|
| 
       276 
276 
     | 
    
         
             
            [<tt>create</tt>] Create new showoff presentation
         
     | 
| 
       277 
277 
     | 
    
         
             
            [<tt>help</tt>] Shows list of commands or help for one command
         
     | 
| 
       278 
278 
     | 
    
         
             
            [<tt>heroku</tt>] Setup your presentation to serve on Heroku
         
     | 
| 
      
 279 
     | 
    
         
            +
            [<tt>github</tt>] Setup your presentation to serve on GitHub Pages
         
     | 
| 
       279 
280 
     | 
    
         
             
            [<tt>serve</tt>] Serves the showoff presentation in the current directory
         
     | 
| 
       280 
281 
     | 
    
         
             
            [<tt>static</tt>] Generate static version of presentation
         
     | 
| 
       281 
282 
     | 
    
         | 
| 
         @@ -320,6 +321,10 @@ Setup your presentation to serve on Heroku 
     | 
|
| 
       320 
321 
     | 
    
         | 
| 
       321 
322 
     | 
    
         
             
            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.
         
     | 
| 
       322 
323 
     | 
    
         | 
| 
      
 324 
     | 
    
         
            +
            === <tt>github</tt>
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
            Generates a static version of your site and puts it in a gh-pages branch for static serving on GitHub.
         
     | 
| 
      
 327 
     | 
    
         
            +
             
     | 
| 
       323 
328 
     | 
    
         
             
            ==== Options
         
     | 
| 
       324 
329 
     | 
    
         
             
            These options are specified *after* the command.
         
     | 
| 
       325 
330 
     | 
    
         | 
    
        data/bin/showoff
    CHANGED
    
    | 
         @@ -7,6 +7,14 @@ require 'gli' 
     | 
|
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            include GLI
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
      
 10 
     | 
    
         
            +
            desc 'Show ShowOff version'
         
     | 
| 
      
 11 
     | 
    
         
            +
            long_desc 'This command shows the currently installed version of ShowOff'
         
     | 
| 
      
 12 
     | 
    
         
            +
            command [:version] do |c|
         
     | 
| 
      
 13 
     | 
    
         
            +
              c.action do |global_options,options,args|
         
     | 
| 
      
 14 
     | 
    
         
            +
                puts "ShowOff Version " + ShowOff::Version
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       10 
18 
     | 
    
         
             
            desc 'Create new showoff presentation'
         
     | 
| 
       11 
19 
     | 
    
         
             
            arg_name 'dir_name'
         
     | 
| 
       12 
20 
     | 
    
         
             
            long_desc '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.'
         
     | 
| 
         @@ -25,6 +33,14 @@ command [:create,:init] do |c| 
     | 
|
| 
       25 
33 
     | 
    
         
             
              end
         
     | 
| 
       26 
34 
     | 
    
         
             
            end
         
     | 
| 
       27 
35 
     | 
    
         | 
| 
      
 36 
     | 
    
         
            +
            desc 'Puts your showoff presentation into a gh-pages branch'
         
     | 
| 
      
 37 
     | 
    
         
            +
            long_desc 'Generates a static version of your presentation into your gh-pages branch for publishing to GitHub Pages'
         
     | 
| 
      
 38 
     | 
    
         
            +
            command :github do |c|
         
     | 
| 
      
 39 
     | 
    
         
            +
              c.action do |global_options,options,args|
         
     | 
| 
      
 40 
     | 
    
         
            +
                ShowOffUtils.github
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
       28 
44 
     | 
    
         
             
            desc 'Serves the showoff presentation in the current directory'
         
     | 
| 
       29 
45 
     | 
    
         
             
            desc 'Setup your presentation to serve on Heroku'
         
     | 
| 
       30 
46 
     | 
    
         
             
            arg_name 'heroku_name'
         
     | 
    
        data/lib/showoff.rb
    CHANGED
    
    | 
         @@ -9,13 +9,13 @@ require 'fileutils' 
     | 
|
| 
       9 
9 
     | 
    
         
             
            begin
         
     | 
| 
       10 
10 
     | 
    
         
             
              require 'RMagick'
         
     | 
| 
       11 
11 
     | 
    
         
             
            rescue LoadError
         
     | 
| 
       12 
     | 
    
         
            -
              puts 'image sizing disabled - install RMagick'
         
     | 
| 
      
 12 
     | 
    
         
            +
              $stderr.puts 'image sizing disabled - install RMagick'
         
     | 
| 
       13 
13 
     | 
    
         
             
            end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            begin
         
     | 
| 
       16 
16 
     | 
    
         
             
              require 'pdfkit'
         
     | 
| 
       17 
17 
     | 
    
         
             
            rescue LoadError
         
     | 
| 
       18 
     | 
    
         
            -
              puts 'pdf generation disabled - install PDFKit'
         
     | 
| 
      
 18 
     | 
    
         
            +
              $stderr.puts 'pdf generation disabled - install PDFKit'
         
     | 
| 
       19 
19 
     | 
    
         
             
            end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
            begin
         
     | 
| 
         @@ -26,9 +26,10 @@ rescue LoadError 
     | 
|
| 
       26 
26 
     | 
    
         
             
            end
         
     | 
| 
       27 
27 
     | 
    
         
             
            require 'pp'
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
29 
     | 
    
         
             
            class ShowOff < Sinatra::Application
         
     | 
| 
       31 
30 
     | 
    
         | 
| 
      
 31 
     | 
    
         
            +
              Version = VERSION = '0.3.4'
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       32 
33 
     | 
    
         
             
              attr_reader :cached_image_size
         
     | 
| 
       33 
34 
     | 
    
         | 
| 
       34 
35 
     | 
    
         
             
              set :views, File.dirname(__FILE__) + '/../views'
         
     | 
| 
         @@ -125,7 +126,7 @@ class ShowOff < Sinatra::Application 
     | 
|
| 
       125 
126 
     | 
    
         
             
                  paths.pop
         
     | 
| 
       126 
127 
     | 
    
         
             
                  path = paths.join('/')
         
     | 
| 
       127 
128 
     | 
    
         
             
                  replacement_prefix = static ?
         
     | 
| 
       128 
     | 
    
         
            -
                    %(img src="file 
     | 
| 
      
 129 
     | 
    
         
            +
                    %(img src="./file/#{path}) :
         
     | 
| 
       129 
130 
     | 
    
         
             
                    %(img src="/image/#{path})
         
     | 
| 
       130 
131 
     | 
    
         
             
                  slide.gsub(/img src=\"(.*?)\"/) do |s|
         
     | 
| 
       131 
132 
     | 
    
         
             
                    img_path = File.join(path, $1)
         
     | 
| 
         @@ -241,7 +242,7 @@ class ShowOff < Sinatra::Application 
     | 
|
| 
       241 
242 
     | 
    
         
             
                  if static
         
     | 
| 
       242 
243 
     | 
    
         
             
                    @title = ShowOffUtils.showoff_title
         
     | 
| 
       243 
244 
     | 
    
         
             
                    @slides = get_slides_html(static)
         
     | 
| 
       244 
     | 
    
         
            -
                    @asset_path = " 
     | 
| 
      
 245 
     | 
    
         
            +
                    @asset_path = "./"
         
     | 
| 
       245 
246 
     | 
    
         
             
                  end
         
     | 
| 
       246 
247 
     | 
    
         
             
                  erb :index
         
     | 
| 
       247 
248 
     | 
    
         
             
                end
         
     | 
| 
         @@ -273,14 +274,14 @@ class ShowOff < Sinatra::Application 
     | 
|
| 
       273 
274 
     | 
    
         
             
                    href = clean_link(link['src'])
         
     | 
| 
       274 
275 
     | 
    
         
             
                    assets << href if href
         
     | 
| 
       275 
276 
     | 
    
         
             
                  end
         
     | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
      
 277 
     | 
    
         
            +
             
     | 
| 
       277 
278 
     | 
    
         
             
                  css = Dir.glob("#{options.public}/**/*.css").map { |path| path.gsub(options.public + '/', '') }
         
     | 
| 
       278 
279 
     | 
    
         
             
                  assets << css
         
     | 
| 
       279 
280 
     | 
    
         | 
| 
       280 
281 
     | 
    
         
             
                  js = Dir.glob("#{options.public}/**/*.js").map { |path| path.gsub(options.public + '/', '') }
         
     | 
| 
       281 
282 
     | 
    
         
             
                  assets << js
         
     | 
| 
       282 
283 
     | 
    
         | 
| 
       283 
     | 
    
         
            -
                  assets.uniq.join("\n") 
     | 
| 
      
 284 
     | 
    
         
            +
                  assets.uniq.join("\n")
         
     | 
| 
       284 
285 
     | 
    
         
             
                end
         
     | 
| 
       285 
286 
     | 
    
         | 
| 
       286 
287 
     | 
    
         
             
                def slides(static=false)
         
     | 
| 
         @@ -325,7 +326,7 @@ class ShowOff < Sinatra::Application 
     | 
|
| 
       325 
326 
     | 
    
         
             
                  else
         
     | 
| 
       326 
327 
     | 
    
         
             
                    out  = "#{path}/#{name}/static"
         
     | 
| 
       327 
328 
     | 
    
         
             
                    # First make a directory
         
     | 
| 
       328 
     | 
    
         
            -
                    FileUtils.makedirs( 
     | 
| 
      
 329 
     | 
    
         
            +
                    FileUtils.makedirs(out)
         
     | 
| 
       329 
330 
     | 
    
         
             
                    # Then write the html
         
     | 
| 
       330 
331 
     | 
    
         
             
                    file = File.new("#{out}/index.html", "w")
         
     | 
| 
       331 
332 
     | 
    
         
             
                    file.puts(data)
         
     | 
| 
         @@ -342,6 +343,23 @@ class ShowOff < Sinatra::Application 
     | 
|
| 
       342 
343 
     | 
    
         
             
                      next unless File.directory?(subpath) || base.match(/\.(css|js)$/)
         
     | 
| 
       343 
344 
     | 
    
         
             
                      FileUtils.copy_entry(subpath, "#{out}/#{base}")
         
     | 
| 
       344 
345 
     | 
    
         
             
                    }
         
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
                    # Set up file dir
         
     | 
| 
      
 348 
     | 
    
         
            +
                    file_dir = File.join(out, 'file')
         
     | 
| 
      
 349 
     | 
    
         
            +
                    FileUtils.makedirs(file_dir)
         
     | 
| 
      
 350 
     | 
    
         
            +
                    pres_dir = showoff.options.pres_dir
         
     | 
| 
      
 351 
     | 
    
         
            +
             
     | 
| 
      
 352 
     | 
    
         
            +
                    # ..., copy all user-defined styles and javascript files
         
     | 
| 
      
 353 
     | 
    
         
            +
                    Dir.glob("#{pres_dir}/*.{css,js}").each { |path|
         
     | 
| 
      
 354 
     | 
    
         
            +
                      FileUtils.copy(path, File.join(file_dir, File.basename(path)))
         
     | 
| 
      
 355 
     | 
    
         
            +
                    }
         
     | 
| 
      
 356 
     | 
    
         
            +
             
     | 
| 
      
 357 
     | 
    
         
            +
                    # ... and copy all needed image files
         
     | 
| 
      
 358 
     | 
    
         
            +
                    data.scan(/img src=\".\/file\/(.*?)\"/).flatten.each do |path|
         
     | 
| 
      
 359 
     | 
    
         
            +
                      dir = File.dirname(path)
         
     | 
| 
      
 360 
     | 
    
         
            +
                      FileUtils.makedirs(File.join(file_dir, dir))
         
     | 
| 
      
 361 
     | 
    
         
            +
                      FileUtils.copy(File.join(pres_dir, path), File.join(file_dir, path))
         
     | 
| 
      
 362 
     | 
    
         
            +
                    end
         
     | 
| 
       345 
363 
     | 
    
         
             
                  end
         
     | 
| 
       346 
364 
     | 
    
         
             
                end
         
     | 
| 
       347 
365 
     | 
    
         | 
    
        data/lib/showoff_utils.rb
    CHANGED
    
    | 
         @@ -91,6 +91,25 @@ class ShowOffUtils 
     | 
|
| 
       91 
91 
     | 
    
         
             
                end
         
     | 
| 
       92 
92 
     | 
    
         
             
              end
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
      
 94 
     | 
    
         
            +
              # generate a static version of the site into the gh-pages branch
         
     | 
| 
      
 95 
     | 
    
         
            +
              def self.github
         
     | 
| 
      
 96 
     | 
    
         
            +
                puts "Generating static content"
         
     | 
| 
      
 97 
     | 
    
         
            +
                ShowOff.do_static(nil)
         
     | 
| 
      
 98 
     | 
    
         
            +
                `git add static`
         
     | 
| 
      
 99 
     | 
    
         
            +
                sha = `git write-tree`.chomp
         
     | 
| 
      
 100 
     | 
    
         
            +
                tree_sha = `git rev-parse #{sha}:static`.chomp
         
     | 
| 
      
 101 
     | 
    
         
            +
                `git read-tree HEAD`  # reset staging to last-commit
         
     | 
| 
      
 102 
     | 
    
         
            +
                ghp_sha = `git rev-parse gh-pages 2>/dev/null`.chomp
         
     | 
| 
      
 103 
     | 
    
         
            +
                extra = ghp_sha != 'gh-pages' ? "-p #{ghp_sha}" : ''
         
     | 
| 
      
 104 
     | 
    
         
            +
                commit_sha = `echo 'static presentation' | git commit-tree #{tree_sha} #{extra}`.chomp
         
     | 
| 
      
 105 
     | 
    
         
            +
                `git update-ref refs/heads/gh-pages #{commit_sha}`
         
     | 
| 
      
 106 
     | 
    
         
            +
                puts "I've updated your 'gh-pages' branch with the static version of your presentation."
         
     | 
| 
      
 107 
     | 
    
         
            +
                puts "Push it to GitHub to publish it. Probably something like:"
         
     | 
| 
      
 108 
     | 
    
         
            +
                puts
         
     | 
| 
      
 109 
     | 
    
         
            +
                puts "  git push origin gh-pages"
         
     | 
| 
      
 110 
     | 
    
         
            +
                puts
         
     | 
| 
      
 111 
     | 
    
         
            +
              end
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
       94 
113 
     | 
    
         
             
              # Makes a slide as a string.
         
     | 
| 
       95 
114 
     | 
    
         
             
              # [title] title of the slide
         
     | 
| 
       96 
115 
     | 
    
         
             
              # [classes] any "classes" to include, such as 'smaller', 'transition', etc.
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: showoff
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 27
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 3
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 0.3. 
     | 
| 
      
 9 
     | 
    
         
            +
              - 4
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.3.4
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Scott Chacon
         
     |