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.
@@ -1,3 +1,7 @@
1
+ === 0.8.3 / 2010-06-23
2
+
3
+ * Added support for @slides and @content variables in templates
4
+
1
5
  === 0.8.2 / 2010-06-19
2
6
 
3
7
  * Add pdf templates to built-in S6 template package
@@ -23,7 +23,7 @@ require 'slideshow/gen'
23
23
 
24
24
  module Slideshow
25
25
 
26
- VERSION = '0.8.2'
26
+ VERSION = '0.8.3'
27
27
 
28
28
  def Slideshow.main
29
29
 
@@ -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
- # wrap h1's in slide divs; note use just <h1 since some processors add ids e.g. <h1 id='x'>
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
- content2 << "\n\n</div>" if slide_counter > 0
526
- content2 << "<div class='slide'>\n\n"
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 << line
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
- content2 << "\n\n</div>" if slide_counter > 0
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: 59
4
+ hash: 57
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 2
10
- version: 0.8.2
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-19 00:00:00 +02:00
18
+ date: 2010-06-23 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency