forked from swftools/swftools
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathseperate.pl
89 lines (75 loc) · 1.61 KB
/
seperate.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/perl
$filename = $ARGV[0];
$filename =~ /^(.*)\.([^.]*)$/;
$basename = $1;
$extension = $2;
print "Processing $filename...\n";
$head = "";
open(fi, "<$filename");
while(<fi>) {
last if(/snip:chapter/);
$head .= $_;
}
# chapters
my $nr=1;
my @chapters;
my @names;
/!!!"(.*)"!!!/;$name = $1;
while(<fi>) {
my $chapter = "";
# one chapter
while(1) {
if(/snip:\/chapter/) {
while(<fi>) {
last if(!/^\s*$/);
}
last;
}
$chapter .= $_;
$_ = <fi>;
}
$names[$nr] = $name;
$chapters[$nr++] = $chapter;
/!!!"(.*)"!!!/;$name = $1;
if(!/snip:chapter/) {
last;
}
}
while($_) {
$tail .= $_;
$_ = <fi>;
}
close(fi);
my $num = $nr;
$nr=1;
for($nr=1;$nr<$num;$nr++) {
$h2 = $head;
$t2 = $tail;
my $filename = "$basename.$nr.$extension";
print "Creating $filename...\n";
for($n=1;$n<$num;$n++) {
if($nr == $n) {
$h2 =~ s/chapterlink$n/<a href="$basename.$n.$extension">>$names[$n]<<\/a>/;
} else {
$h2 =~ s/chapterlink$n/<a href="$basename.$n.$extension">$names[$n]<\/a>/;
}
}
if($nr > 1) {
$prev = $names[$nr-1];
$aprev = $basename.".".($nr-1).".".$extension;
$t2 =~ s/__prevlink__/<a href="$aprev">Previous: $prev<\/a>/;
} else {
$t2 =~ s/__prevlink__/ /;
}
if($nr < $num-1) {
$next= $names[$nr+1];
$anext = $basename.".".($nr+1).".".$extension;
$t2 =~ s/__nextlink__/<a href="$anext">Next: $next<\/a>/;
} else {
$t2 =~ s/__nextlink__/ /;
}
$t2 =~ s/__currentchapter__/$names[$nr]/;
open(fi, ">$filename");
print fi "$h2\n$chapters[$nr]\n$t2";
close(fi);
}