slideshow 0.8.2 → 0.8.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.
- 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
|