slideshow 0.8.5 → 0.9
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/{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
|