slideshow 0.8.5 → 0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/{History.txt → History.rdoc} +12 -0
- data/Manifest.txt +13 -19
- data/{README.txt → README.rdoc} +10 -15
- data/Rakefile +6 -2
- data/bin/slideshow +1 -0
- data/config/slideshow.builtin.yml +42 -0
- data/config/slideshow.yml +67 -0
- data/lib/slideshow.rb +26 -7
- data/lib/slideshow/config.rb +88 -0
- data/lib/slideshow/filters/headers_filter.rb +45 -0
- data/lib/slideshow/filters/text_filter.rb +143 -0
- data/lib/slideshow/gen.rb +111 -131
- data/lib/slideshow/helpers/analytics_helper.rb +39 -0
- data/lib/slideshow/helpers/step_helper.rb +31 -0
- data/lib/slideshow/helpers/table_helper.rb +61 -0
- data/lib/slideshow/helpers/text_helper.rb +9 -2
- data/lib/slideshow/markdown.rb +27 -0
- data/lib/slideshow/opts.rb +1 -9
- data/lib/slideshow/slide.rb +40 -0
- data/lib/slideshow/textile.rb +50 -0
- metadata +21 -32
- data/templates/fullerscreen.txt +0 -5
- data/templates/fullerscreen.txt.gen +0 -7
- data/templates/fullerscreen.txt.sample +0 -11
- data/templates/fullerscreen/footer.html.erb +0 -3
- data/templates/fullerscreen/header.html.erb +0 -27
- data/templates/fullerscreen/style.css.erb +0 -79
- data/templates/s5.txt +0 -10
- data/templates/s5.txt.gen +0 -12
- data/templates/s5.txt.sample +0 -15
- data/templates/s5/footer.html.erb +0 -4
- data/templates/s5/header.html.erb +0 -40
- data/templates/s5/opera.css +0 -7
- data/templates/s5/outline.css +0 -15
- data/templates/s5/print.css +0 -1
- data/templates/s5/s5-core.css +0 -76
- data/templates/s5/slides.js +0 -553
- data/templates/s5/style.css.erb +0 -27
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 0.9 / 2010-07-04
|
2
|
+
|
3
|
+
* Added support for !SLIDE (and alternative syntax %slide)
|
4
|
+
* Added support for comments using %, %begin/%end and %end
|
5
|
+
* Added more helpers (step, google_analytics, left/right for two-column layouts)
|
6
|
+
* Added support for Django-style expressions and statements as an alternative to <% %>
|
7
|
+
* Added support for configuring text filters in slideshow.yml
|
8
|
+
* Added support for configuring Markdown engines in slideshow.yml
|
9
|
+
* Added fetch shortcuts (configure in slideshow.yml)
|
10
|
+
* Added support for template manifests w/o .txt extensions
|
11
|
+
* Removed old options -s5,--fullerscreen (use -t s5blank or -t fullerscreen instead)
|
12
|
+
|
1
13
|
=== 0.8.5 / 2010-06-25
|
2
14
|
|
3
15
|
* Added workaround for RedCloth 4 (Java-only) multi-byte character bug
|
data/Manifest.txt
CHANGED
@@ -1,33 +1,27 @@
|
|
1
|
-
History.
|
1
|
+
History.rdoc
|
2
2
|
Manifest.txt
|
3
|
-
README.
|
3
|
+
README.rdoc
|
4
4
|
Rakefile
|
5
5
|
bin/slideshow
|
6
|
+
config/slideshow.builtin.yml
|
7
|
+
config/slideshow.yml
|
6
8
|
lib/slideshow.rb
|
9
|
+
lib/slideshow/config.rb
|
10
|
+
lib/slideshow/filters/headers_filter.rb
|
11
|
+
lib/slideshow/filters/text_filter.rb
|
7
12
|
lib/slideshow/gen.rb
|
13
|
+
lib/slideshow/helpers/analytics_helper.rb
|
8
14
|
lib/slideshow/helpers/capture_helper.rb
|
9
15
|
lib/slideshow/helpers/coderay_helper.rb
|
16
|
+
lib/slideshow/helpers/step_helper.rb
|
17
|
+
lib/slideshow/helpers/table_helper.rb
|
10
18
|
lib/slideshow/helpers/text_helper.rb
|
11
19
|
lib/slideshow/helpers/uv_helper.rb
|
20
|
+
lib/slideshow/markdown.rb
|
12
21
|
lib/slideshow/opts.rb
|
13
|
-
|
14
|
-
|
15
|
-
templates/fullerscreen.txt.sample
|
16
|
-
templates/fullerscreen/footer.html.erb
|
17
|
-
templates/fullerscreen/header.html.erb
|
18
|
-
templates/fullerscreen/style.css.erb
|
22
|
+
lib/slideshow/slide.rb
|
23
|
+
lib/slideshow/textile.rb
|
19
24
|
templates/gradient.svg.erb
|
20
|
-
templates/s5.txt
|
21
|
-
templates/s5.txt.gen
|
22
|
-
templates/s5.txt.sample
|
23
|
-
templates/s5/footer.html.erb
|
24
|
-
templates/s5/header.html.erb
|
25
|
-
templates/s5/opera.css
|
26
|
-
templates/s5/outline.css
|
27
|
-
templates/s5/print.css
|
28
|
-
templates/s5/s5-core.css
|
29
|
-
templates/s5/slides.js
|
30
|
-
templates/s5/style.css.erb
|
31
25
|
templates/s6.txt
|
32
26
|
templates/s6.txt.gen
|
33
27
|
templates/s6.txt.sample
|
data/{README.txt → README.rdoc}
RENAMED
@@ -1,6 +1,4 @@
|
|
1
|
-
=
|
2
|
-
|
3
|
-
Slide Show (S9) - A Free Web Alternative to PowerPoint and KeyNote in Ruby
|
1
|
+
= Slide Show (S9) - A Free Web Alternative to PowerPoint and KeyNote in Ruby
|
4
2
|
|
5
3
|
* http://slideshow.rubyforge.org
|
6
4
|
|
@@ -15,10 +13,8 @@ The Slide Show (S9) project also collects and welcomes themes and ships
|
|
15
13
|
|
16
14
|
Usage: slideshow [options] name
|
17
15
|
-o, --output PATH Output Path
|
18
|
-
-g, --generate Generate Slide Show Templates
|
16
|
+
-g, --generate Generate Slide Show Templates (Using Built-In S6 Pack)
|
19
17
|
-t, --template MANIFEST Template Manifest
|
20
|
-
--s5 S5-Compatible Slide Show (same as -t s5.txt)
|
21
|
-
--fullerscreen FullerScreen-Compatible Slide Show (same as -t fullerscreen.txt)
|
22
18
|
-f, --fetch URI Fetch Templates
|
23
19
|
-c, --config PATH Configuration Path (default is ~/.slideshow)
|
24
20
|
-l, --list List Installed Templates
|
@@ -27,28 +23,27 @@ The Slide Show (S9) project also collects and welcomes themes and ships
|
|
27
23
|
|
28
24
|
Examples:
|
29
25
|
|
30
|
-
slideshow microformats
|
31
|
-
slideshow microformats.textile
|
26
|
+
slideshow microformats
|
27
|
+
slideshow microformats.textile # Process slides using Textile
|
28
|
+
slideshow microformats.text # Process slides using Markdown
|
29
|
+
|
32
30
|
slideshow -o slides microformats # Output slideshow to slides folder
|
33
|
-
slideshow --s5 microformats # Use S5-compatible slide show templates
|
34
|
-
slideshow --fullerscreen microformats # Use FullerScreen-compatible slide show templates
|
35
31
|
|
36
32
|
More examles:
|
37
33
|
|
38
|
-
slideshow -g # Generate slide show templates
|
39
|
-
slideshow -g --s5 # Generate S5 compatible slide show templates
|
40
|
-
slideshow -g --fullerscreen # Generate FullerScreen compatible slide show templates
|
34
|
+
slideshow -g # Generate slide show templates using built-in S6 pack
|
41
35
|
|
42
36
|
slideshow -l # List installed slide show templates
|
43
37
|
slideshow -f s5blank # Fetch (install) S5 blank starter template from internet
|
44
|
-
slideshow -t s5blank.txt microformats # Use your own slide show templates (e.g. s5blank
|
38
|
+
slideshow -t s5blank.txt microformats # Use your own slide show templates (e.g. s5blank)
|
45
39
|
|
46
40
|
|
47
41
|
== REQUIREMENTS:
|
48
42
|
|
49
43
|
* RedCloth (Textile Markup)
|
50
|
-
*
|
44
|
+
* Kramdown (Markdown Markup)
|
51
45
|
|
46
|
+
* BlueCloth (Markdown Markup) [Optional]
|
52
47
|
* RDiscount (Markdown Markup) [Optional]
|
53
48
|
* Coderay (Syntax Highlighting) [Optional]
|
54
49
|
* Ultraviolet (Syntax Highlighting) [Optional]
|
data/Rakefile
CHANGED
@@ -13,8 +13,12 @@ Hoe.spec 'slideshow' do
|
|
13
13
|
|
14
14
|
self.extra_deps = [
|
15
15
|
['RedCloth','>= 4.0.0'],
|
16
|
-
['kramdown','>= 0.
|
16
|
+
['kramdown','>= 0.9.0']
|
17
17
|
]
|
18
18
|
|
19
|
-
self.remote_rdoc_dir = 'doc'
|
19
|
+
self.remote_rdoc_dir = 'doc'
|
20
|
+
|
21
|
+
# switch extension to .rdoc for gihub formatting
|
22
|
+
self.readme_file = 'README.rdoc'
|
23
|
+
self.history_file = 'History.rdoc'
|
20
24
|
end
|
data/bin/slideshow
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
### builtin configuration for arrays
|
2
|
+
#
|
3
|
+
# access or overwrite using nested builtin context e.g.
|
4
|
+
# builtin:
|
5
|
+
# textile:
|
6
|
+
# libs: [ whatever ]
|
7
|
+
|
8
|
+
|
9
|
+
# text filters
|
10
|
+
|
11
|
+
filters:
|
12
|
+
- comments-percent-style
|
13
|
+
- leading-headers
|
14
|
+
- skip-end-directive
|
15
|
+
- erb-django-style
|
16
|
+
- include-helper-hack
|
17
|
+
- erb
|
18
|
+
- code-block-curly-style
|
19
|
+
|
20
|
+
|
21
|
+
# markup (textile, markdown) config
|
22
|
+
|
23
|
+
textile:
|
24
|
+
extnames: [ .textile, .t ]
|
25
|
+
|
26
|
+
markdown:
|
27
|
+
extnames: [ .markdown, .m, .mark, .mkdn, .md, .txt, .text ]
|
28
|
+
|
29
|
+
# note: only kramdown is listed as a dependency in gem specs (because it's Ruby only and, thus, easy to install)
|
30
|
+
# if you want to use other markdown libs install the required/desired lib e.g.
|
31
|
+
# use gem install rdiscount for rdiscount and so on
|
32
|
+
#
|
33
|
+
# also note for now the first present markdown library gets used
|
34
|
+
# the search order is first come, first serve, that is: rdiscount, rpeg-markdown, maruku, bluecloth, kramdown (fallback, always present)
|
35
|
+
|
36
|
+
libs:
|
37
|
+
- rdiscount
|
38
|
+
- rpeg-markdown
|
39
|
+
- maruku
|
40
|
+
- bluecloth
|
41
|
+
- kramdown
|
42
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# built-in slideshow configuration
|
2
|
+
#
|
3
|
+
# override settings in:
|
4
|
+
# ~/.slideshow/slideshow.yml
|
5
|
+
# or
|
6
|
+
# ./slideshow.yml or ./.slideshow.yml
|
7
|
+
|
8
|
+
#lets you define default/fallback headers
|
9
|
+
|
10
|
+
headers:
|
11
|
+
generator: <%= Slideshow.generator %>
|
12
|
+
author: Your Name Here
|
13
|
+
email: Your Email Here
|
14
|
+
company: Your Company Here
|
15
|
+
title: Your Title Here
|
16
|
+
subtitle: Your Subtitle Here
|
17
|
+
footer: Your Footer Here
|
18
|
+
subfooter: Your Subfooter Here
|
19
|
+
date: <%= Date.today %>
|
20
|
+
|
21
|
+
# todo: use nested config?? eg.
|
22
|
+
# gradient:
|
23
|
+
# theme: dark
|
24
|
+
# color1:
|
25
|
+
gradient-theme: dark
|
26
|
+
gradient-color1: red
|
27
|
+
gradient-color2: black
|
28
|
+
|
29
|
+
# todo: use nested config??
|
30
|
+
#
|
31
|
+
# ultraviolet (uv) | coderay (cr)
|
32
|
+
code-engine: uv
|
33
|
+
# Text Mate Hyperlink for Source?
|
34
|
+
code-txmt: false
|
35
|
+
# todo: add code-linenumbers??
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
# shortcuts for fetching template packs
|
40
|
+
# map shortcut to URI
|
41
|
+
|
42
|
+
fetch:
|
43
|
+
s6blank: http://github.com/geraldb/slideshow-s6-blank/raw/master/s6blank.txt
|
44
|
+
s5blank: http://github.com/geraldb/slideshow-s5-blank/raw/master/s5blank.txt
|
45
|
+
s5themes: http://github.com/geraldb/slideshow-s5-themes/raw/master/s5themes.txt
|
46
|
+
fullerscreen: http://github.com/geraldb/slideshow-fullerscreen/raw/master/fullerscreen.txt
|
47
|
+
slidy: http://github.com/geraldb/slideshow-slidy/raw/master/slidy.txt
|
48
|
+
g5: http://github.com/geraldb/slideshow-google-html5-slides/raw/master/g5.txt
|
49
|
+
slippy: http://github.com/geraldb/slideshow-slippy/raw/master/slippy.txt
|
50
|
+
|
51
|
+
# your google analytics code
|
52
|
+
analytics:
|
53
|
+
google: UA-XXX
|
54
|
+
|
55
|
+
|
56
|
+
### markup (textile, markdown) config
|
57
|
+
|
58
|
+
# filters to run before markup processing
|
59
|
+
filters: []
|
60
|
+
|
61
|
+
textile:
|
62
|
+
extnames: []
|
63
|
+
|
64
|
+
markdown:
|
65
|
+
extnames: []
|
66
|
+
libs: []
|
67
|
+
|
data/lib/slideshow.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
$KCODE = 'utf'
|
2
2
|
|
3
3
|
LIB_PATH = File.expand_path( File.dirname(__FILE__) )
|
4
|
-
|
4
|
+
$LOAD_PATH.unshift(LIB_PATH)
|
5
5
|
|
6
6
|
# core and stlibs
|
7
7
|
require 'optparse'
|
@@ -12,19 +12,42 @@ require 'pp'
|
|
12
12
|
require 'uri'
|
13
13
|
require 'net/http'
|
14
14
|
require 'ostruct'
|
15
|
+
require 'date'
|
16
|
+
require 'yaml'
|
15
17
|
|
16
18
|
# required gems
|
17
19
|
require 'redcloth' # default textile library
|
18
20
|
require 'kramdown' # default markdown library
|
19
21
|
|
20
22
|
|
21
|
-
# own code
|
23
|
+
# our own code
|
22
24
|
require 'slideshow/opts'
|
25
|
+
require 'slideshow/config'
|
23
26
|
require 'slideshow/gen'
|
27
|
+
require 'slideshow/slide'
|
28
|
+
require 'slideshow/textile'
|
29
|
+
require 'slideshow/markdown'
|
30
|
+
|
31
|
+
# load built-in (required) helpers/plugins
|
32
|
+
require 'slideshow/helpers/text_helper'
|
33
|
+
require 'slideshow/helpers/capture_helper'
|
34
|
+
require 'slideshow/helpers/analytics_helper'
|
35
|
+
require 'slideshow/helpers/table_helper'
|
36
|
+
require 'slideshow/helpers/step_helper'
|
37
|
+
|
38
|
+
# load built-in filters
|
39
|
+
require 'slideshow/filters/headers_filter'
|
40
|
+
require 'slideshow/filters/text_filter'
|
41
|
+
|
24
42
|
|
25
43
|
module Slideshow
|
26
44
|
|
27
|
-
VERSION = '0.
|
45
|
+
VERSION = '0.9'
|
46
|
+
|
47
|
+
# version string for generator meta tag (includes ruby version)
|
48
|
+
def Slideshow.generator
|
49
|
+
"Slide Show (S9) #{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
50
|
+
end
|
28
51
|
|
29
52
|
def Slideshow.main
|
30
53
|
|
@@ -41,10 +64,6 @@ module Slideshow
|
|
41
64
|
|
42
65
|
end # module Slideshow
|
43
66
|
|
44
|
-
# load built-in (required) helpers/plugins
|
45
|
-
require 'slideshow/helpers/text_helper.rb'
|
46
|
-
require 'slideshow/helpers/capture_helper.rb'
|
47
|
-
|
48
67
|
# load built-in (optional) helpers/plugins
|
49
68
|
# If a helper fails to load, simply ingnore it
|
50
69
|
# If you want to use it install missing required gems e.g.:
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module Slideshow
|
2
|
+
|
3
|
+
class Config
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@hash = {}
|
7
|
+
end
|
8
|
+
|
9
|
+
def []( key )
|
10
|
+
value = @hash[ normalize_key( key ) ]
|
11
|
+
if value.nil?
|
12
|
+
puts "** Warning: config key '#{key}' undefined (returning nil)"
|
13
|
+
end
|
14
|
+
|
15
|
+
value
|
16
|
+
end
|
17
|
+
|
18
|
+
def load
|
19
|
+
# load builtin config file @ <gem>/config/slideshow.yml
|
20
|
+
config_file = "#{File.dirname( LIB_PATH )}/config/slideshow.yml"
|
21
|
+
config_builtin_file = "#{File.dirname( LIB_PATH )}/config/slideshow.builtin.yml"
|
22
|
+
|
23
|
+
# run through erb
|
24
|
+
config_txt = File.read( config_file )
|
25
|
+
config_txt = ERB.new( config_txt ).result( binding() )
|
26
|
+
|
27
|
+
@hash = YAML.load( config_txt )
|
28
|
+
|
29
|
+
# for now builtin has no erb processing; add builtin hash to main hash
|
30
|
+
@hash[ 'builtin' ] = YAML.load_file( config_builtin_file )
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def known_textile_extnames
|
35
|
+
# returns an array of known file extensions e.g.
|
36
|
+
# [ '.textile', '.t' ]
|
37
|
+
#
|
38
|
+
# using nested key
|
39
|
+
# textile:
|
40
|
+
# extnames: [ .textile, .t ]
|
41
|
+
|
42
|
+
@hash[ 'textile' ][ 'extnames' ] + @hash[ 'builtin' ][ 'textile' ][ 'extnames' ]
|
43
|
+
end
|
44
|
+
|
45
|
+
def known_markdown_extnames
|
46
|
+
@hash[ 'markdown' ][ 'extnames' ] + @hash[ 'builtin' ][ 'markdown' ][ 'extnames' ]
|
47
|
+
end
|
48
|
+
|
49
|
+
def known_markdown_libs
|
50
|
+
# returns an array of known markdown engines e.g.
|
51
|
+
# [ rdiscount, rpeg-markdown, maruku, bluecloth, kramdown ]
|
52
|
+
|
53
|
+
@hash[ 'markdown' ][ 'libs' ] + @hash[ 'builtin' ][ 'markdown' ][ 'libs' ]
|
54
|
+
end
|
55
|
+
|
56
|
+
def known_extnames
|
57
|
+
# ruby check: is it better self. ?? or more confusing
|
58
|
+
# possible conflict only with write access (e.g. prop=)
|
59
|
+
|
60
|
+
known_textile_extnames + known_markdown_extnames
|
61
|
+
end
|
62
|
+
|
63
|
+
def text_filters
|
64
|
+
@hash[ 'builtin' ][ 'filters' ] + @hash[ 'filters' ]
|
65
|
+
end
|
66
|
+
|
67
|
+
def google_analytics_code
|
68
|
+
@hash[ 'analytics' ][ 'google' ]
|
69
|
+
end
|
70
|
+
|
71
|
+
def map_fetch_shortcut( key )
|
72
|
+
@hash[ 'fetch' ][ key ]
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def normalize_key( key )
|
78
|
+
# make key all lower case/downcase (e.g. Content-Type => content-type)
|
79
|
+
# replace _ with - (e.g. gradient_color => gradient-color)
|
80
|
+
# todo: replace space(s) with - ??
|
81
|
+
# todo: strip leading and trailing spaces - possible use case ??
|
82
|
+
|
83
|
+
key.to_s.downcase.tr( '_', '-' )
|
84
|
+
end
|
85
|
+
|
86
|
+
end # class Config
|
87
|
+
|
88
|
+
end # module Slideshow
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module HeadersFilter
|
2
|
+
|
3
|
+
def leading_headers( content_with_headers )
|
4
|
+
|
5
|
+
# todo: read headers before command line options (lets you override options using commandline switch)?
|
6
|
+
|
7
|
+
# read source document; split off optional header from source
|
8
|
+
# strip leading optional headers (key/value pairs) including optional empty lines
|
9
|
+
|
10
|
+
read_headers = true
|
11
|
+
content = ""
|
12
|
+
|
13
|
+
headers = [] # track header keys for stats
|
14
|
+
|
15
|
+
content_with_headers.each_line do |line|
|
16
|
+
if read_headers && line =~ /^\s*(\w[\w-]*)[ \t]*:[ \t]*(.*)/
|
17
|
+
key = $1.downcase
|
18
|
+
value = $2.strip
|
19
|
+
|
20
|
+
headers << key
|
21
|
+
|
22
|
+
logger.debug " adding option: key=>#{key}< value=>#{value}<"
|
23
|
+
opts.put( key, value )
|
24
|
+
elsif line =~ /^\s*$/
|
25
|
+
content << line unless read_headers
|
26
|
+
else
|
27
|
+
read_headers = false
|
28
|
+
content << line
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# fix: do a merge w/ config instead, possible??
|
33
|
+
opts.set_defaults
|
34
|
+
|
35
|
+
puts " Reading #{headers.length} headers: #{headers.join(', ')}..."
|
36
|
+
|
37
|
+
content
|
38
|
+
end
|
39
|
+
|
40
|
+
end # module HeadersFilter
|
41
|
+
|
42
|
+
|
43
|
+
class Slideshow::Gen
|
44
|
+
include HeadersFilter
|
45
|
+
end
|