slideshow 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/lib/slideshow.rb +1 -1
- data/lib/slideshow/gen.rb +46 -6
- metadata +4 -4
data/History.txt
CHANGED
data/lib/slideshow.rb
CHANGED
data/lib/slideshow/gen.rb
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
|
4
4
|
module Slideshow
|
5
5
|
|
6
|
+
class Slide < Struct.new(:header, :content)
|
7
|
+
end
|
8
|
+
|
6
9
|
class Gen
|
7
10
|
|
8
11
|
KNOWN_TEXTILE_EXTNAMES = [ '.textile', '.t' ]
|
@@ -376,6 +379,7 @@ class Gen
|
|
376
379
|
end
|
377
380
|
end
|
378
381
|
|
382
|
+
|
379
383
|
def create_slideshow( fn )
|
380
384
|
|
381
385
|
manifest_path_or_name = opts.manifest
|
@@ -518,17 +522,53 @@ class Gen
|
|
518
522
|
content2 = ''
|
519
523
|
|
520
524
|
## todo: move this to a filter (for easier reuse)
|
521
|
-
|
522
|
-
|
525
|
+
|
526
|
+
slides = []
|
527
|
+
slide_source = ""
|
528
|
+
|
529
|
+
# wrap h1's in slide divs; note: use just <h1 since some processors add ids e.g. <h1 id='x'>
|
523
530
|
content.each_line do |line|
|
524
531
|
if line.include?( '<h1' ) then
|
525
|
-
|
526
|
-
|
532
|
+
if slide_counter > 0 then # found start of new slide (and, thus, end of last slide)
|
533
|
+
content2 << "</div>\n"
|
534
|
+
slides << slide_source # add slide to slide stack
|
535
|
+
slide_source = "" # reset slide source buffer
|
536
|
+
end
|
537
|
+
content2 << "<div class='slide'>\n"
|
527
538
|
slide_counter += 1
|
528
539
|
end
|
529
|
-
content2
|
540
|
+
content2 << line
|
541
|
+
slide_source << line
|
542
|
+
end
|
543
|
+
|
544
|
+
if slide_counter > 0 then
|
545
|
+
content2 << "</div>\n"
|
546
|
+
slides << slide_source # add slide to slide stack
|
547
|
+
slide_source = "" # reset slide source buffer
|
530
548
|
end
|
531
|
-
|
549
|
+
|
550
|
+
## split slide source into header (optional) and content/body
|
551
|
+
|
552
|
+
slides2 = []
|
553
|
+
slides.each do |slide_source|
|
554
|
+
slide = Slide.new
|
555
|
+
if slide_source =~ /^\s*(<h.+?>.*?<\/h\d>)\s+(.*)/m # try to cut off header using non-greedy .+? pattern; tip test regex online at rubular.com
|
556
|
+
slide.header = $1
|
557
|
+
slide.content = $2
|
558
|
+
logger.debug " adding slide with header:\n#{slide.header}"
|
559
|
+
else
|
560
|
+
slide.content = slide_source
|
561
|
+
logger.debug " adding slide with *no* header"
|
562
|
+
end
|
563
|
+
slides2 << slide
|
564
|
+
end
|
565
|
+
|
566
|
+
# make content2 and slide2 available to erb template
|
567
|
+
# -- todo: cleanup variable names and use attr_readers for content and slide
|
568
|
+
|
569
|
+
@slides = slides2 # strutured content
|
570
|
+
@content = content2 # content all-in-one
|
571
|
+
|
532
572
|
|
533
573
|
manifest.each do |entry|
|
534
574
|
outname = entry[0]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slideshow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 57
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 3
|
10
|
+
version: 0.8.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gerald Bauer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-06-
|
18
|
+
date: 2010-06-23 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|