slideshow 2.3.0 → 2.4.0

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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/HISTORY.md +4 -0
  3. data/Manifest.txt +3 -48
  4. data/{README.markdown → README.md} +134 -132
  5. data/Rakefile +26 -17
  6. data/lib/slideshow.rb +19 -97
  7. data/lib/slideshow/cli/main.rb +38 -20
  8. data/lib/slideshow/cli/main_utils.rb +10 -4
  9. data/lib/slideshow/cli/opts.rb +3 -1
  10. data/lib/slideshow/cli/version.rb +26 -0
  11. metadata +63 -147
  12. data/History.markdown +0 -171
  13. data/config/slideshow.builtin.yml +0 -8
  14. data/config/slideshow.index.yml +0 -61
  15. data/config/slideshow.yml +0 -76
  16. data/lib/slideshow/cli/commands/fetch.rb +0 -121
  17. data/lib/slideshow/cli/commands/gen.rb +0 -330
  18. data/lib/slideshow/cli/commands/gen_templates.rb +0 -52
  19. data/lib/slideshow/cli/commands/list.rb +0 -70
  20. data/lib/slideshow/cli/commands/plugins.rb +0 -44
  21. data/lib/slideshow/cli/commands/quick.rb +0 -86
  22. data/lib/slideshow/config.rb +0 -241
  23. data/lib/slideshow/filters/debug_filter.rb +0 -74
  24. data/lib/slideshow/filters/headers_filter.rb +0 -45
  25. data/lib/slideshow/filters/slide_filter.rb +0 -113
  26. data/lib/slideshow/filters/text_filter.rb +0 -140
  27. data/lib/slideshow/headers.rb +0 -87
  28. data/lib/slideshow/helpers/background_helper.rb +0 -121
  29. data/lib/slideshow/helpers/capture_helper.rb +0 -136
  30. data/lib/slideshow/helpers/directive_helper.rb +0 -43
  31. data/lib/slideshow/helpers/markdown_helper.rb +0 -18
  32. data/lib/slideshow/helpers/source_helper.rb +0 -39
  33. data/lib/slideshow/helpers/step_helper.rb +0 -33
  34. data/lib/slideshow/helpers/syntax/coderay_helper.rb +0 -84
  35. data/lib/slideshow/helpers/syntax/sh_helper.rb +0 -61
  36. data/lib/slideshow/helpers/syntax/uv_helper.rb +0 -90
  37. data/lib/slideshow/helpers/text_helper.rb +0 -130
  38. data/lib/slideshow/manifest_helpers.rb +0 -94
  39. data/lib/slideshow/markup/markdown.rb +0 -18
  40. data/lib/slideshow/markup/mediawiki.rb +0 -38
  41. data/lib/slideshow/markup/rest.rb +0 -17
  42. data/lib/slideshow/markup/textile.rb +0 -68
  43. data/lib/slideshow/plugin_helpers.rb +0 -62
  44. data/lib/slideshow/slide.rb +0 -118
  45. data/lib/slideshow/version.rb +0 -3
  46. data/templates/s6.txt +0 -27
  47. data/templates/s6.txt.gen +0 -19
  48. data/templates/s6/jquery.js +0 -8176
  49. data/templates/s6/jquery.microsoft.js +0 -31
  50. data/templates/s6/jquery.slideshow.js +0 -534
  51. data/templates/s6/print.css +0 -1
  52. data/templates/s6/projection.css +0 -109
  53. data/templates/s6/screen.css +0 -50
  54. data/templates/slides.html.erb +0 -55
  55. data/templates/slides.pdf.html.erb +0 -62
  56. data/templates/style.css.erb +0 -91
  57. data/templates/welcome.text +0 -167
  58. data/templates/welcome.txt.quick +0 -6
@@ -1,8 +0,0 @@
1
- ####################
2
- ### builtin configuration (not configurable by user now)
3
-
4
-
5
- helper:
6
- unparsed: [ slide, style ]
7
- renames: [ include, class ]
8
- exprs: [ class, clear ]
@@ -1,61 +0,0 @@
1
- ###########################################################################################
2
- # Slide Show (S9) Update Index for Template Packs, Quick Starter Samples 'n' Plugins
3
-
4
- # find the latest version online at
5
- # - https://github.com/slideshow-s9/update
6
- #
7
- # use $ slideshow update -- for automatic update e.g. download the latest slideshow.index.yml file
8
-
9
-
10
- #############
11
- # shortcuts for fetching template packs (w/ optional quick starter samples)
12
- # maps shortcut to URI
13
-
14
-
15
- s6blank: https://raw.github.com/slideshow-s9/slideshow-s6-blank/master/s6blank.txt
16
-
17
- s6syntax: https://raw.github.com/slideshow-s9/slideshow-s6-syntax-highlighter/master/s6syntax.txt
18
-
19
- s5blank: https://raw.github.com/slideshow-s9/slideshow-s5-blank/master/s5blank.txt
20
-
21
- s5themes: https://raw.github.com/slideshow-s9/slideshow-s5-themes/master/s5themes.txt
22
-
23
- g5: https://raw.github.com/slideshow-s9/slideshow-google-html5-slides/master/g5.txt
24
-
25
- slidy:
26
- - https://raw.github.com/slideshow-s9/slideshow-slidy/master/slidy.txt
27
- - https://raw.github.com/slideshow-s9/slideshow-slidy/master/slidy.txt.quick
28
-
29
- csss:
30
- - https://raw.github.com/slideshow-s9/slideshow-csss/master/csss.txt
31
- - https://raw.github.com/slideshow-s9/slideshow-csss/master/csss.txt.quick
32
-
33
- deck.js:
34
- - https://raw.github.com/slideshow-s9/slideshow-deck.js/master/deck.js.txt
35
- - https://raw.github.com/slideshow-s9/slideshow-deck.js/master/deck.js.txt.quick
36
-
37
- impress.js:
38
- - https://raw.github.com/slideshow-s9/slideshow-impress.js/master/impress.js.txt
39
- - https://raw.github.com/slideshow-s9/slideshow-impress.js/master/impress.js.txt.quick
40
-
41
- shower: https://raw.github.com/slideshow-s9/slideshow-shower/master/shower.txt
42
-
43
-
44
- ##############
45
- # Plugins
46
-
47
- analytics: https://raw.github.com/slideshow-s9/analytics/master/analytics.txt.plugin
48
-
49
- tables: https://raw.github.com/slideshow-s9/tables/master/tables.txt.plugin
50
-
51
- snippets: https://raw.github.com/slideshow-s9/snippets/master/snippets.txt.plugin
52
-
53
- plugins:
54
- - https://raw.github.com/slideshow-s9/analytics/master/analytics.txt.plugin
55
- - https://raw.github.com/slideshow-s9/tables/master/tables.txt.plugin
56
- - https://raw.github.com/slideshow-s9/snippets/master/snippets.txt.plugin
57
-
58
- #############################
59
- # Quick Starter Stamples
60
-
61
- formatting: https://raw.github.com/slideshow-s9/formatting/master/formatting.txt.quick
@@ -1,76 +0,0 @@
1
- #########################################
2
- # slideshow configuration defaults
3
- #
4
- # override settings in:
5
- # ~/slideshow.yml in home folder
6
- # or
7
- # ./slideshow.yml in working folder
8
-
9
-
10
- ######################
11
- # lets you define default/fallback headers
12
-
13
- headers:
14
- generator: "<%= Slideshow.generator %>"
15
- author: Your Name Here
16
- email: Your Email Here
17
- company: Your Company Here
18
- title: Your Title Here
19
- subtitle: Your Subtitle Here
20
- footer: Your Footer Here
21
- subfooter: Your Subfooter Here
22
- date: "<%= Date.today %>"
23
-
24
- # todo: use nested config?? eg.
25
- # gradient:
26
- # theme: dark
27
- # color1:
28
- gradient-theme: diagonal
29
- gradient-colors: red orange
30
-
31
- # todo: use nested config??
32
- #
33
- # SyntaxHighligher (sh) | ultraviolet (uv) | coderay (cr)
34
- code-engine: sh
35
- # Text Mate Hyperlink for Source?
36
- code-txmt: false
37
- # todo: add code-linenumbers??
38
-
39
-
40
-
41
-
42
- # your google analytics code
43
- analytics:
44
- google: UA-XXX
45
-
46
-
47
- ########################################################3
48
- ### text/markup (textile, markdown) processing config
49
-
50
- # filters to run before markup processing
51
- filters:
52
- - skip-end-directive
53
- - directives_bang_style_to_percent_style
54
- - directives_percent_style
55
- - comments-percent-style
56
- - leading-headers
57
- - erb-django-style
58
- - erb-rename-helper-hack
59
- - dump_content_to_file_debug_text_erb
60
- - erb
61
- - code-block-curly-style
62
- - dump_content_to_file_debug_text
63
-
64
-
65
- # markup (textile, markdown, rest) config
66
-
67
- textile:
68
- extnames: [ .textile, .t ]
69
-
70
- rest:
71
- extnames: [ .rst, .rest ]
72
-
73
- mediawiki:
74
- extnames: [ .wiki, .mediawiki, .mw ]
75
-
76
- # NB: markdown now configured in markdown.yml (using markdown gem)
@@ -1,121 +0,0 @@
1
- module Slideshow
2
-
3
- class Fetch
4
-
5
- ### fix: remove opts, use config (wrapped!!)
6
-
7
- include LogUtils::Logging
8
-
9
- def initialize( opts, config )
10
- @opts = opts
11
- @config = config
12
- end
13
-
14
- attr_reader :opts, :config
15
-
16
-
17
- def fetch_all
18
- config.default_fetch_shortcuts.each do |shortcut|
19
- fetch( shortcut )
20
- end
21
- end
22
-
23
-
24
- def update # update shortcut index
25
- dest = config.shortcut_index_file
26
-
27
- destfull = File.expand_path( dest )
28
- destpath = File.dirname( destfull )
29
- FileUtils.makedirs( destpath ) unless File.directory?( destpath )
30
-
31
- logger.debug "destfull=>#{destfull}<"
32
- logger.debug "destpath=>#{destpath}<"
33
-
34
- ## todo/fix: use a config setting for index url (do NOT hard core)
35
- src = 'https://raw.github.com/slideshow-s9/update/master/slideshow.index.yml'
36
-
37
- puts "Updating shortcut index - downloading '#{src}'..."
38
- ::Fetcher::Worker.new( logger ).copy( src, destfull )
39
- end
40
-
41
-
42
- def fetch( shortcut_or_source )
43
-
44
- logger.debug "fetch >#{shortcut_or_source}<"
45
-
46
- ## check for builtin shortcut (assume no / or \)
47
- if shortcut_or_source.index( '/' ).nil? && shortcut_or_source.index( '\\' ).nil?
48
- shortcut = shortcut_or_source
49
- sources = config.map_fetch_shortcut( shortcut )
50
-
51
- if sources.empty?
52
- puts "** Error: No mapping found for shortcut '#{shortcut}'."
53
- return
54
- end
55
- puts " Mapping fetch shortcut '#{shortcut}' to: #{sources.join(',')}"
56
- else
57
- sources = [shortcut_or_source] # pass arg through unmapped
58
- end
59
-
60
- sources.each do |source|
61
-
62
- ## if manifest includes .plugin assume it's a plugin
63
- if source.include?( '.txt.plugin' ) || source.include?( '.plugin.txt' )
64
- fetch_plugin( source )
65
- elsif source.include?( '.txt.quick' ) || source.include?( '.quick.txt' )
66
- fetch_quick( source )
67
- else # otherwise assume it's a template pack
68
- fetch_template( source )
69
- end
70
-
71
- end
72
-
73
- end # method run
74
-
75
-
76
- def fetch_template( src )
77
- # src = 'http://github.com/geraldb/slideshow/raw/d98e5b02b87ee66485431b1bee8fb6378297bfe4/code/templates/fullerscreen.txt'
78
- # src = 'http://github.com/geraldb/sandbox/raw/13d4fec0908fbfcc456b74dfe2f88621614b5244/s5blank/s5blank.txt'
79
- uri = URI.parse( src )
80
- logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
81
-
82
- pakname = File.basename( uri.path ).downcase.gsub('.txt','')
83
- pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )
84
-
85
- logger.debug "packname >#{pakname}<"
86
- logger.debug "pakpath >#{pakpath}<"
87
-
88
- Pakman::Fetcher.new( logger ).fetch_pak( src, pakpath )
89
- end
90
-
91
- def fetch_quick( src )
92
- uri = URI.parse( src )
93
- logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
94
-
95
- # downcase basename w/ extension (remove .txt)
96
- pakname = File.basename( uri.path ).downcase.gsub('.txt','')
97
- pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )
98
-
99
- logger.debug "pakname >#{pakname}<"
100
- logger.debug "pakpath >#{pakpath}<"
101
-
102
- Pakman::Fetcher.new( logger ).fetch_pak( src, pakpath )
103
- end
104
-
105
- def fetch_plugin( src )
106
- uri = URI.parse( src )
107
- logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
108
-
109
- # downcase basename w/ extension (remove .txt)
110
- pakname = File.basename( uri.path ).downcase.gsub('.txt','').gsub('.plugin','')
111
- pakpath = File.expand_path( "#{config.config_dir}/plugins/#{pakname}" )
112
-
113
- logger.debug "pakname >#{pakname}<"
114
- logger.debug "pakpath >#{pakpath}<"
115
-
116
- Pakman::Fetcher.new( logger ).fetch_pak( src, pakpath )
117
- end
118
-
119
- end # class Fetch
120
-
121
- end # module Slideshow
@@ -1,330 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Slideshow
4
-
5
- ## fix:/todo: move generation code out of command into its own class
6
- ## not residing/depending on cli
7
-
8
- class Gen ## todo: rename command to build
9
-
10
- include LogUtils::Logging
11
-
12
- include ManifestHelper
13
-
14
- ### fix: remove opts, use config (wrapped!!)
15
-
16
- def initialize( opts, config, headers )
17
- @opts = opts
18
- @config = config
19
- @headers = headers
20
-
21
- ## todo: check if we need to use expand_path - Dir.pwd always absolute (check ~/user etc.)
22
- @usrdir = File.expand_path( Dir.pwd ) # save original (current) working directory
23
- end
24
-
25
- attr_reader :usrdir # original working dir (user called slideshow from)
26
- attr_reader :srcdir, :outdir, :pakdir # NB: "initalized" in create_slideshow
27
-
28
-
29
- attr_reader :opts, :config, :headers
30
- attr_reader :session # give helpers/plugins a session-like hash
31
-
32
- attr_reader :markup_type # :textile, :markdown, :mediawiki, :rest
33
-
34
- # uses configured markup processor (textile,markdown,rest,mediawiki) to generate html
35
- def text_to_html( content )
36
- content = case @markup_type
37
- when :markdown
38
- markdown_to_html( content )
39
- when :textile
40
- textile_to_html( content )
41
- when :mediawiki
42
- mediawiki_to_html( content )
43
- when :rest
44
- rest_to_html( content )
45
- end
46
- content
47
- end
48
-
49
- def guard_text( text )
50
- # todo/fix 2: note for Textile we need to differentiate between blocks and inline
51
- # thus, to avoid runs - use guard_block (add a leading newline to avoid getting include in block that goes before)
52
-
53
- # todo/fix: remove wrap_markup; replace w/ guard_text
54
- # why: text might be css, js, not just html
55
-
56
- ## todo: add print depreciation warning
57
-
58
- wrap_markup( text )
59
- end
60
-
61
- def guard_block( text )
62
- if markup_type == :textile
63
- # saveguard with notextile wrapper etc./no further processing needed
64
- # note: add leading newlines to avoid block-runons
65
- "\n\n<notextile>\n#{text}\n</notextile>\n"
66
- elsif markup_type == :markdown
67
- # wrap in newlines to avoid runons
68
- "\n\n#{text}\n\n"
69
- elsif markup_type == :mediawiki
70
- "\n\n<nowiki>\n#{text}\n</nowiki>\n"
71
- else
72
- text
73
- end
74
- end
75
-
76
- def guard_inline( text )
77
- wrap_markup( text )
78
- end
79
-
80
-
81
- def wrap_markup( text )
82
- if markup_type == :textile
83
- # saveguard with notextile wrapper etc./no further processing needed
84
- "<notextile>\n#{text}\n</notextile>"
85
- else
86
- text
87
- end
88
- end
89
-
90
-
91
- # move into a filter??
92
- def post_processing_slides( content )
93
-
94
- # 1) add slide breaks
95
-
96
- if config.slide? # only allow !SLIDE directives fo slide breaks?
97
- # do nothing (no extra automagic slide breaks wanted)
98
- else
99
- if (@markup_type == :markdown && Markdown.lib == 'pandoc-ruby') || @markup_type == :rest
100
- content = add_slide_directive_before_div_h1( content )
101
- else
102
- if config.header_level == 2
103
- content = add_slide_directive_before_h2( content )
104
- else # assume level 1
105
- content = add_slide_directive_before_h1( content )
106
- end
107
- end
108
- end
109
-
110
-
111
- dump_content_to_file_debug_html( content )
112
-
113
- # 2) use generic slide break processing instruction to
114
- # split content into slides
115
-
116
- slide_counter = 0
117
-
118
- slides = []
119
- slide_buf = ""
120
-
121
- content.each_line do |line|
122
- if line.include?( '<!-- _S9SLIDE_' )
123
- if slide_counter > 0 # found start of new slide (and, thus, end of last slide)
124
- slides << slide_buf # add slide to slide stack
125
- slide_buf = "" # reset slide source buffer
126
- else # slide_counter == 0
127
- # check for first slide with missing leading SLIDE directive (possible/allowed in takahashi, for example)
128
- ## remove html comments and whitspaces (still any content?)
129
- ### more than just whitespace? assume its a slide
130
- if slide_buf.gsub(/<!--.*?-->/m, '').gsub( /[\n\r\t ]/, '').length > 0
131
- logger.debug "add slide with missing leading slide directive >#{slide_buf}< with slide_counter == 0"
132
- slides << slide_buf
133
- slide_buf = ""
134
- else
135
- logger.debug "skipping slide_buf >#{slide_buf}< with slide_counter == 0"
136
- end
137
- end
138
- slide_counter += 1
139
- end
140
- slide_buf << line
141
- end
142
-
143
- if slide_counter > 0
144
- slides << slide_buf # add slide to slide stack
145
- slide_buf = "" # reset slide source buffer
146
- end
147
-
148
-
149
- slides2 = []
150
- slides.each do |source|
151
- slides2 << Slide.new( source, config )
152
- end
153
-
154
-
155
- puts "#{slides2.size} slides found:"
156
-
157
- slides2.each_with_index do |slide,i|
158
- print " [#{i+1}] "
159
- if slide.header.present?
160
- print slide.header
161
- else
162
- # remove html comments
163
- print "-- no header -- | #{slide.content.gsub(/<!--.*?-->/m, '').gsub(/\n/,'$')[0..40]}"
164
- end
165
- puts
166
- end
167
-
168
-
169
- # make content2 and slide2 available to erb template
170
- # -- todo: cleanup variable names and use attr_readers for content and slide
171
-
172
- ### fix: use class SlideDeck or Deck?? for slides array?
173
-
174
- content2 = ""
175
- slides2.each do |slide|
176
- content2 << slide.to_classic_html
177
- end
178
-
179
- @content = content2
180
- @slides = slides2 # strutured content
181
- end
182
-
183
-
184
- def create_slideshow( fn )
185
-
186
- manifest_path_or_name = opts.manifest
187
-
188
- # add .txt file extension if missing (for convenience)
189
- if manifest_path_or_name.downcase.ends_with?( '.txt' ) == false
190
- manifest_path_or_name << '.txt'
191
- end
192
-
193
- logger.debug "manifest=#{manifest_path_or_name}"
194
-
195
- # check if file exists (if yes use custom template package!) - allows you to override builtin package with same name
196
- if File.exists?( manifest_path_or_name )
197
- manifestsrc = manifest_path_or_name
198
- else
199
- # check for builtin manifests
200
- manifests = installed_template_manifests
201
- matches = manifests.select { |m| m[0] == manifest_path_or_name }
202
-
203
- if matches.empty?
204
- puts "*** error: unknown template manifest '#{manifest_path_or_name}'"
205
- # todo: list installed manifests
206
- exit 2
207
- end
208
-
209
- manifestsrc = matches[0][1]
210
- end
211
-
212
- ### todo: use File.expand_path( xx, relative_to ) always with second arg
213
- ## do NOT default to cwd (because cwd will change!)
214
-
215
- # Reference src with absolute path, because this can be used with different pwd
216
- manifestsrc = File.expand_path( manifestsrc, usrdir )
217
-
218
- # expand output path in current dir and make sure output path exists
219
- @outdir = File.expand_path( opts.output_path, usrdir )
220
- logger.debug "setting outdir to >#{outdir}<"
221
- FileUtils.makedirs( outdir ) unless File.directory? outdir
222
-
223
- dirname = File.dirname( fn )
224
- basename = File.basename( fn, '.*' )
225
- extname = File.extname( fn )
226
- logger.debug "dirname=#{dirname}, basename=#{basename}, extname=#{extname}"
227
-
228
- # change working dir to sourcefile dir
229
- # todo: add a -c option to commandline? to let you set cwd?
230
-
231
- @srcdir = File.expand_path( dirname, usrdir )
232
- logger.debug "setting srcdir to >#{srcdir}<"
233
-
234
- unless usrdir == srcdir
235
- logger.debug "changing cwd to src - new >#{srcdir}<, old >#{Dir.pwd}<"
236
- Dir.chdir srcdir
237
- end
238
-
239
- puts "Preparing slideshow '#{basename}'..."
240
-
241
- if config.known_textile_extnames.include?( extname )
242
- @markup_type = :textile
243
- elsif config.known_rest_extnames.include?( extname )
244
- @markup_type = :rest
245
- elsif config.known_mediawiki_extnames.include?( extname )
246
- @markup_type = :mediawiki
247
- else # default/fallback use markdown
248
- @markup_type = :markdown
249
- end
250
-
251
- # shared variables for templates (binding)
252
- @content_for = {} # reset content_for hash
253
-
254
- @name = basename
255
- @extname = extname
256
-
257
- @session = {} # reset session hash for plugins/helpers
258
-
259
- inname = "#{basename}#{extname}"
260
-
261
- logger.debug "inname=#{inname}"
262
-
263
- content = File.read( inname )
264
-
265
- # run text filters
266
-
267
- config.text_filters.each do |filter|
268
- mn = filter.tr( '-', '_' ).to_sym # construct method name (mn)
269
- content = send( mn, content ) # call filter e.g. include_helper_hack( content )
270
- end
271
-
272
-
273
- if config.takahashi?
274
- content = takahashi_slide_breaks( content )
275
- end
276
-
277
-
278
- # convert light-weight markup to hypertext
279
-
280
- content = text_to_html( content )
281
-
282
- # post-processing
283
-
284
- # make content2 and slide2 available to erb template
285
- # -- todo: cleanup variable names and use attr_readers for content and slide
286
-
287
- if @markup_type == :markdown && config.markdown_post_processing?( Markdown.lib ) == false
288
- puts " Skipping post-processing (passing content through as is)..."
289
- @content = content # content all-in-one - make it available in erb templates
290
- else
291
- # sets @content (all-in-one string) and @slides (structured content; split into slides)
292
- post_processing_slides( content )
293
- end
294
-
295
-
296
- #### pak merge
297
- # nb: change cwd to template pak root
298
-
299
- @pakdir = File.dirname( manifestsrc ) # template pak root - make availabe too in erb via binding
300
- logger.debug " setting pakdir to >#{pakdir}<"
301
-
302
- # todo/fix: change current work dir (cwd) in pakman gem itself
303
- # for now lets do it here
304
-
305
- logger.debug "changing cwd to pak - new >#{pakdir}<, old >#{Dir.pwd}<"
306
- Dir.chdir( pakdir )
307
-
308
-
309
- pakpath = outdir
310
-
311
- logger.debug( "manifestsrc >#{manifestsrc}<, pakpath >#{pakpath}<" )
312
-
313
- Pakman::Templater.new( logger ).merge_pak( manifestsrc, pakpath, binding, basename )
314
-
315
- logger.debug "restoring cwd to src - new >#{srcdir}<, old >#{Dir.pwd}<"
316
- Dir.chdir( srcdir )
317
-
318
- ## pop/restore org (original) working folder/dir
319
- unless usrdir == srcdir
320
- logger.debug "restoring cwd to usr - new >#{usrdir}<, old >#{Dir.pwd}<"
321
- Dir.chdir( usrdir )
322
- end
323
-
324
- puts "Done."
325
- end # method create_slideshow
326
-
327
-
328
- end # class Gen
329
-
330
- end # class Slideshow