slideshow 0.7.2 → 0.7.3

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 (2) hide show
  1. data/lib/slideshow.rb +46 -6
  2. metadata +4 -24
data/lib/slideshow.rb CHANGED
@@ -1,20 +1,21 @@
1
- $KCODE="U"
1
+ $KCODE = 'utf'
2
2
 
3
3
  require 'optparse'
4
4
  require 'erb'
5
5
  require 'redcloth'
6
- require 'maruku'
7
6
  require 'logger'
8
7
  require 'fileutils'
9
8
  require 'ftools'
10
- require 'hpricot'
11
- require 'uv'
12
9
  require 'pp'
13
10
 
11
+ # todo: move code highlighting in (optional) plugin/extension
12
+ # require 'hpricot'
13
+ # require 'uv'
14
+
14
15
 
15
16
  module Slideshow
16
17
 
17
- VERSION = '0.7.2'
18
+ VERSION = '0.7.3'
18
19
 
19
20
  class Params
20
21
 
@@ -169,6 +170,20 @@ class Gen
169
170
 
170
171
  KNOWN_TEXTILE_EXTNAMES = [ '.textile', '.t' ]
171
172
  KNOWN_MARKDOWN_EXTNAMES = [ '.markdown', '.mark', '.m', '.txt', '.text' ]
173
+
174
+ # note: only bluecloth is listed as a dependency in gem specs (because it's Ruby only and, thus, easy to install)
175
+ # if you want to use other markdown libs install the required/desired lib e.g.
176
+ # use gem install rdiscount for rdiscount and so on
177
+ #
178
+ # also note for now the first present markdown library gets used
179
+ # the search order is first come, first serve, that is: rdiscount, rpeg-markdown, maruku, bluecloth (fallback, always present)
180
+ KNOWN_MARKDOWN_LIBS = [
181
+ [ 'rdiscount', lambda { |content| RDiscount.new( content ).to_html } ],
182
+ [ 'rpeg-markdown', lambda { |content| PEGMarkdown.new( content ).to_html } ],
183
+ [ 'maruku', lambda { |content| Maruku.new( content, {:on_error => :raise} ).to_html } ],
184
+ [ 'bluecloth', lambda { |content| BlueCloth.new( content ).to_html } ]
185
+ ]
186
+
172
187
  BUILTIN_MANIFESTS = [ 'fullerscreen.txt', 'fullerscreen.txt.gen',
173
188
  's5.txt','s5.txt.gen',
174
189
  's6.txt','s6.txt.gen' ]
@@ -186,6 +201,28 @@ class Gen
186
201
  def opts
187
202
  @opts
188
203
  end
204
+
205
+ def check_markdown_libs
206
+ # check for available markdown libs/gems
207
+ # try to require each lib and remove any not installed
208
+ @markdown_libs = []
209
+
210
+ KNOWN_MARKDOWN_LIBS.each do |lib|
211
+ begin
212
+ require lib[0]
213
+ @markdown_libs << lib
214
+ rescue LoadError => ex
215
+ logger.debug "Markdown library #{lib[0]} not found. Use gem install #{lib[0]} to install."
216
+ end
217
+ end
218
+
219
+ logger.debug "Installed Markdown libraries: #{@markdown_libs.map{ |lib| lib[0] }.join(', ')}"
220
+ logger.debug "Using Markdown library #{@markdown_libs.first[0]}."
221
+ end
222
+
223
+ def markdown_to_html( content )
224
+ @markdown_libs.first[1].call( content )
225
+ end
189
226
 
190
227
  def cache_dir
191
228
  PLATFORM =~ /win32/ ? win32_cache_dir : File.join(File.expand_path("~"), ".slideshow")
@@ -382,7 +419,8 @@ class Gen
382
419
  # convert light-weight markup to hypertext
383
420
 
384
421
  if KNOWN_MARKDOWN_EXTNAMES.include?( extname )
385
- content = Maruku.new( content, {:on_error => :raise} ).to_html
422
+ content = markdown_to_html( content )
423
+ # old code: content = Maruku.new( content, {:on_error => :raise} ).to_html
386
424
  # old code: content = BlueCloth.new( content ).to_html
387
425
  else
388
426
  # turn off hard line breaks
@@ -562,6 +600,8 @@ def run( args )
562
600
  if opts.generate?
563
601
  create_slideshow_templates
564
602
  else
603
+ check_markdown_libs
604
+
565
605
  args.each { |fn| create_slideshow( fn ) }
566
606
  end
567
607
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slideshow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-27 00:00:00 +01:00
12
+ date: 2009-02-04 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -23,34 +23,14 @@ dependencies:
23
23
  version: 4.0.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
- name: maruku
26
+ name: BlueCloth
27
27
  type: :runtime
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.8
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: hpricot
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: "0.6"
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: ultraviolet
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 0.10.2
33
+ version: 1.0.0
54
34
  version:
55
35
  description:
56
36
  email: webslideshow@googlegroups.com