1 |
#!/usr/bin/perl |
#!/usr/bin/perl |
2 |
# |
# |
3 |
# SLies Copyright 2001 Dobrica Pavlinusic <dpavlin@rot13.org> |
# PLies Copyright 2001 Dobrica Pavlinusic <dpavlin@rot13.org> |
4 |
# |
# |
5 |
# this tool is based on SlideMaker and XLSies tool |
# this tool is based on SlideMaker and XLSies tool |
6 |
# split a all.htm into slide*.htm |
# split a all.htm into slide*.htm |
240 |
|
|
241 |
## step 1: record anchors |
## step 1: record anchors |
242 |
for($i=0; $i<$total; $i++) { |
for($i=0; $i<$total; $i++) { |
243 |
my $tmp = $table[($i*2)]; |
my $tmp = $table[($i*2)].$table[($i*2)+1]; |
244 |
while ($tmp =~ s,<a +name="*([^>"]+)"*>,,i) { |
while ($tmp =~ s,<a +name="*([^>"]+)"*>,,i) { |
245 |
$anchor_on_slide{$1}=($i+1); |
$anchor_on_slide{$1}=($i+1); |
246 |
print "\tslide ",($i+1)," anchor: $1\n" if ($debug); |
print "\tslide ",($i+1)," anchor: $1\n" if ($debug); |
278 |
## need to check if the title contains any anchor |
## need to check if the title contains any anchor |
279 |
## if so it needs to be removed |
## if so it needs to be removed |
280 |
## because the title is being used in the table of content to link to the corresponding slide |
## because the title is being used in the table of content to link to the corresponding slide |
281 |
$table[0] =~ s/(.*)<A[^>]*>(.*)<\/A>(.*)/$1$2$3/i; |
$table[0] = remove_anchor($table[0]); |
282 |
|
|
283 |
## grab next slide title $table[2] (if there's a next slide) |
## grab next slide title $table[2] (if there's a next slide) |
284 |
## to be able to use in the 'next' navigation button |
## to be able to use in the 'next' navigation button |
285 |
## keep in mind that $table[1] contains the slide corresponding to the title $table[0] |
## keep in mind that $table[1] contains the slide corresponding to the title $table[0] |
286 |
if ($table[2]) { |
if ($table[2]) { |
287 |
$next_title= $table[2]; |
$next_title= remove_anchor($table[2]); |
|
## remove any anchor from the next slide title |
|
|
$next_title =~ s/(.*)<A[^>]*>(.*)<\/A>(.*)/$1$2$3/i; |
|
288 |
} |
} |
289 |
|
|
290 |
## the current slide content is stored $table[1] |
## the current slide content is stored $table[1] |
295 |
|
|
296 |
## extract slide Sub Title <h2> |
## extract slide Sub Title <h2> |
297 |
undef $slideSubTitle; |
undef $slideSubTitle; |
298 |
if ($slideContent =~ s/<[hH]2[^>]*>([^<]+)<\/[hH]2[^>]*>//) { |
if ($slideContent =~ s/<[hH]2[^>]*>(.+)<\/[hH]2[^>]*>//sm) { |
299 |
$slideSubTitle=$1; |
$slideSubTitle=remove_anchor($1); |
300 |
} |
} |
301 |
|
|
302 |
## add the title of the current slide to the table of content |
## add the title of the current slide to the table of content |
308 |
&createSlide($slideTitle,$slideSubTitle,$slideContent ,$slideCount++,$prev_title,$next_title); |
&createSlide($slideTitle,$slideSubTitle,$slideContent ,$slideCount++,$prev_title,$next_title); |
309 |
|
|
310 |
## save the title of the previous slide to be displayed in the 'previous' navigation button |
## save the title of the previous slide to be displayed in the 'previous' navigation button |
311 |
$prev_title="$table[0]"; |
$prev_title=remove_anchor($table[0]); |
312 |
} |
} |
313 |
## process the next slide |
## process the next slide |
314 |
while (shift(@table)); |
while (shift(@table)); |
669 |
return $html; |
return $html; |
670 |
} |
} |
671 |
|
|
672 |
|
############################################################################## |
673 |
|
# make slide progress bar |
674 |
|
sub remove_anchor { |
675 |
|
my $foo = $_[0]; |
676 |
|
$foo=~s/(.*)<A[^>]*>(.*)<\/A>(.*)/$1$2$3/ig; |
677 |
|
return $foo; |
678 |
|
} |