5 # Creates XHTML gamebook from XML source.
10 # Revision 1.2 2005/10/13 00:48:47 angantyr
11 # Put Paul Bonner as illustrator of the GS books.
13 # Revision 1.1.1.1 2005/04/26 04:47:33 jonathan.blake
16 # Revision 1.8 2003/07/14 17:20:09 jblake
17 # Modified for Xalan 2.5.1, added support for AONPATH
18 # environment variable, commented out RXP validation.
20 # Revision 1.7 2002/11/10 07:52:15 jblake
23 # Revision 1.6 2002/11/10 03:57:50 jblake
24 # Added some missing semicolons.
26 # Revision 1.5 2002/11/07 18:43:14 jblake
27 # Added books (02fotw, 13tplor, and 15tdc) and added an illustrator to the list.
29 # Revision 1.4 2002/10/23 18:58:34 jblake
30 # Added Flight from the Dark to the valid book list, and made
31 # a change to the working directory in order to work with
34 # Revision 1.3 2002/10/20 05:47:50 jblake
35 # Added Highway Holocaust to the book list.
37 # Revision 1.2 2002/10/18 15:42:25 jblake
38 # Added Grey Star the Wizard to the book list.
40 # Revision 1.1 2002/10/18 15:38:41 jblake
49 my $PROGRAM_NAME = "gbtoxhtml";
50 my $PATH_PREFIX = "$ENV{'AONPATH'}/data";
52 my $BOOK_PATH = "xhtml";
53 my $WEBSITE_PATH = "website";
57 my $CREATE_CSS = "$ENV{'HOME'}/aon/bin/create-css.pl";
58 my $RXP = "$ENV{'HOME'}/aon/bin/rxp";
62 my $ZIP = "/usr/bin/zip";
63 my $BZIP2 = "/usr/bin/bzip2";
64 my $JAVA = "/usr/lib/java/jre/bin/java";
66 my $CHMOD = "/bin/chmod";
73 my $HLINK_BACK_COLOR = "";
74 my $HLINK_LIGHT_BORDER_COLOR = "";
75 my $HLINK_DARK_BORDER_COLOR = "";
76 my $USE_ILLUSTRATORS = "";
80 unless( $#ARGV == 0 ) { die "Usage:\n\t${PROGRAM_NAME} bookCode\n"; }
81 my( $bookCode ) = @ARGV;
83 if( $bookCode eq "01fftd" ) {
84 $XML_SOURCE = "01fftd.xml";
85 $BOOK_PATH .= "/lw/01fftd";
86 $TEXT_COLOR = "#003300";
87 $LINK_COLOR = "#006633";
88 $HLINK_BACK_COLOR = "#cce0c1";
89 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
91 elsif( $bookCode eq "02fotw" ) {
92 $XML_SOURCE = "02fotw.xml";
93 $BOOK_PATH .= "/lw/02fotw";
94 $TEXT_COLOR = "#003333";
95 $LINK_COLOR = "#009999";
96 $HLINK_BACK_COLOR = "#ccebd5";
97 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
99 elsif( $bookCode eq "03tcok" ) {
100 $XML_SOURCE = "03tcok.xml";
101 $BOOK_PATH .= "/lw/03tcok";
102 $TEXT_COLOR = "#003366";
103 $LINK_COLOR = "#0099cc";
104 $HLINK_BACK_COLOR = "#ccebdf";
105 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
107 elsif( $bookCode eq "04tcod" ) {
108 $XML_SOURCE = "04tcod.xml";
109 $BOOK_PATH .= "/lw/04tcod";
110 $TEXT_COLOR = "#000033";
111 $LINK_COLOR = "#000099";
112 $HLINK_BACK_COLOR = "#ccccd5";
113 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
115 elsif( $bookCode eq "05sots" ) {
116 $XML_SOURCE = "05sots.xml";
117 $BOOK_PATH .= "/lw/05sots";
118 $TEXT_COLOR = "#330000";
119 $LINK_COLOR = "#cc9900";
120 $HLINK_BACK_COLOR = "#f5ebb6";
121 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
123 elsif( $bookCode eq "06tkot" ) {
124 $XML_SOURCE = "06tkot.xml";
125 $BOOK_PATH .= "/lw/06tkot";
126 $TEXT_COLOR = "#404000";
127 $LINK_COLOR = "#999900";
128 $HLINK_BACK_COLOR = "#ebebb6";
129 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
131 elsif( $bookCode eq "07cd" ) {
132 $XML_SOURCE = "07cd.xml";
133 $BOOK_PATH .= "/lw/07cd";
134 $TEXT_COLOR = "#003300";
135 $LINK_COLOR = "#00cc66";
136 $HLINK_BACK_COLOR = "#ccf5cb";
137 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
139 elsif( $bookCode eq "08tjoh" ) {
140 $XML_SOURCE = "08tjoh.xml";
141 $BOOK_PATH .= "/lw/08tjoh";
142 $TEXT_COLOR = "#334033";
143 $LINK_COLOR = "#669966";
144 $HLINK_BACK_COLOR = "#e0ebcb";
145 $USE_ILLUSTRATORS = ":Gary Chalk:JC Alvarez & Jonathan Blake:Jonathan Blake:";
147 elsif( $bookCode eq "09tcof" ) {
148 $XML_SOURCE = "09tcof.xml";
149 $BOOK_PATH .= "/lw/09tcof";
150 $TEXT_COLOR = "#330000";
151 $LINK_COLOR = "#ff9900";
152 $HLINK_BACK_COLOR = "#ffebb6";
153 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
155 elsif( $bookCode eq "10tdot" ) {
156 $XML_SOURCE = "10tdot.xml";
157 $BOOK_PATH .= "/lw/10tdot";
158 $TEXT_COLOR = "#330000";
159 $LINK_COLOR = "#ff0000";
160 $HLINK_BACK_COLOR = "#ffccb6";
161 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
163 elsif( $bookCode eq "11tpot" ) {
164 $XML_SOURCE = "11tpot.xml";
165 $BOOK_PATH .= "/lw/11tpot";
166 $TEXT_COLOR = "#333300";
167 $LINK_COLOR = "#808066";
168 $HLINK_BACK_COLOR = "#e6e6cb";
169 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
171 elsif( $bookCode eq "12tmod" ) {
172 $XML_SOURCE = "12tmod.xml";
173 $BOOK_PATH .= "/lw/12tmod";
174 $TEXT_COLOR = "#330000";
175 $LINK_COLOR = "#990000";
176 $HLINK_BACK_COLOR = "#ebccb6";
177 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
179 elsif( $bookCode eq "13tplor" ) {
180 $XML_SOURCE = "13tplor.xml";
181 $BOOK_PATH .= "/lw/13tplor";
182 $TEXT_COLOR = "#333300";
183 $LINK_COLOR = "#666633";
184 $HLINK_BACK_COLOR = "#e0e0c1";
185 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
187 elsif( $bookCode eq "14tcok" ) {
188 $XML_SOURCE = "14tcok.xml";
189 $BOOK_PATH .= "/lw/14tcok";
190 $TEXT_COLOR = "#000033";
191 $LINK_COLOR = "#660099";
192 $HLINK_BACK_COLOR = "#e0ccd5";
193 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
195 elsif( $bookCode eq "15tdc" ) {
196 $XML_SOURCE = "15tdc.xml";
197 $BOOK_PATH .= "/lw/15tdc";
198 $TEXT_COLOR = "#000033";
199 $LINK_COLOR = "#6699cc";
200 $HLINK_BACK_COLOR = "#e0ebdf";
201 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
203 elsif( $bookCode eq "16tlov" ) {
204 $XML_SOURCE = "16tlov.xml";
205 $BOOK_PATH .= "/lw/16tlov";
206 $TEXT_COLOR = "#000033";
207 $LINK_COLOR = "#0033cc";
208 $HLINK_BACK_COLOR = "#d9e1e0";
209 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
211 elsif( $bookCode eq "17tdoi" ) {
212 $XML_SOURCE = "17tdoi.xml";
213 $BOOK_PATH .= "/lw/17tdoi";
214 $TEXT_COLOR = "#003366";
215 $LINK_COLOR = "#6699ff";
216 $HLINK_BACK_COLOR = "#e0eaea";
217 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
219 elsif( $bookCode eq "01gstw" ) {
220 $XML_SOURCE = "01gstw.xml";
221 $BOOK_PATH .= "/gs/01gstw";
222 $TEXT_COLOR = "#330066";
223 $LINK_COLOR = "#9900ff";
224 $HLINK_BACK_COLOR = "#ebcce9";
225 $USE_ILLUSTRATORS = ":Paul Bonner:JC Alvarez & Jonathan Blake:Jonathan Blake:";
227 elsif( $bookCode eq "02tfc" ) {
228 $XML_SOURCE = "02tfc.xml";
229 $BOOK_PATH .= "/gs/02tfc";
230 $TEXT_COLOR = "#333300";
231 $LINK_COLOR = "#999966";
232 $HLINK_BACK_COLOR = "#ebebcb";
233 $USE_ILLUSTRATORS = ":Paul Bonner:JC Alvarez & Jonathan Blake:Jonathan Blake:";
235 elsif( $bookCode eq "03btng" ) {
236 $XML_SOURCE = "03btng.xml";
237 $BOOK_PATH .= "/gs/03btng";
238 $TEXT_COLOR = "#003333";
239 $LINK_COLOR = "#669999";
240 $HLINK_BACK_COLOR = "#e0ebd5";
241 $USE_ILLUSTRATORS = ":Paul Bonner:JC Alvarez & Jonathan Blake:Jonathan Blake:";
243 elsif( $bookCode eq "04wotw" ) {
244 $XML_SOURCE = "04wotw.xml";
245 $BOOK_PATH .= "/gs/04wotw";
246 $TEXT_COLOR = "#000033";
247 $LINK_COLOR = "#9999cc";
248 $HLINK_BACK_COLOR = "#ebebdf";
249 $USE_ILLUSTRATORS = ":Paul Bonner:JC Alvarez & Jonathan Blake:Jonathan Blake:";
251 elsif( $bookCode eq "01hh" ) {
252 $XML_SOURCE = "01hh.xml";
253 $BOOK_PATH .= "/fw/01hh";
254 $TEXT_COLOR = "#330066";
255 $LINK_COLOR = "#9900ff";
256 # $SCROLL_BASE_COLOR = "#330066";
257 $USE_ILLUSTRATORS = ":Melvyn Grant:Jonathan Blake:";
259 elsif( $bookCode eq "rh" ) {
260 $XML_SOURCE = "rh.xml";
261 $BOOK_PATH .= "/misc/rh";
262 $TEXT_COLOR = "#400000";
263 $LINK_COLOR = "#339933";
264 $HLINK_BACK_COLOR = "#e1f0ca";
265 $USE_ILLUSTRATORS = ":Brian Williams:JC Alvarez & Jonathan Blake:Jonathan Blake:";
267 elsif( $bookCode eq "mhahn" ) {
268 $XML_SOURCE = "mhahn.xml";
269 $BOOK_PATH .= "/misc/mhahn";
270 $TEXT_COLOR = "#400000";
271 $LINK_COLOR = "#339933";
272 $HLINK_BACK_COLOR = "#e1f0ca";
273 $USE_ILLUSTRATORS = ":Michael Hahn:";
275 elsif( $bookCode eq "jcalvarez" ) {
276 $XML_SOURCE = "jcalvarez.xml";
277 $BOOK_PATH .= "/misc/jcalvarez";
278 $TEXT_COLOR = "#400000";
279 $LINK_COLOR = "#339933";
280 $HLINK_BACK_COLOR = "#e1f0ca";
281 $USE_ILLUSTRATORS = ":JC Alvarez:";
283 elsif( $bookCode eq "statskeeper" ) { }
284 elsif( $bookCode eq "base" ) { }
285 else{ die "Error:\n\tUnknown book code ($bookCode).\n"; }
287 if( $bookCode eq "statskeeper" ) {
288 chdir( "$PATH_PREFIX" ) or die( "Cannot open Project Aon data directory \"$PATH_PREFIX\": $!" );
289 chdir( "$WEBSITE_PATH/main" ) or die( "Error: unable to change to statskeeper directory ($!)\n" );
290 print qx{$RM statskeeper.zip statskeeper.tar.bz2 statskeeper.tar};
291 my $statskeeperFiles = "statskeeper/index.htm statskeeper/lw/*htm statskeeper/lw/*/* statskeeper/gs/*htm statskeeper/gs/*/*";
292 print qx{$ZIP -8 -q statskeeper.zip $statskeeperFiles};
293 print qx{$TAR cf statskeeper.tar $statskeeperFiles};
294 print qx{$BZIP2 -9 *tar};
296 elsif( $bookCode eq "base" ) {
297 chdir( "$PATH_PREFIX" ) or die( "Cannot open Project Aon data directory \"$PATH_PREFIX\": $!" );
298 chdir( "$WEBSITE_PATH/athome" ) or die( "Unable to change directory to \"$WEBSITE_PATH/athome\": $!\n" );
299 print qx{$RM base.zip base.tar.bz2 base.tar};
300 print qx{$ZIP -8 -q base.zip *ico *htm images/* style/*};
301 print qx{$TAR cf base.tar *ico *htm images/* style/*};
302 print qx{$BZIP2 -9 *tar};
305 print "Reminder:\n\tDid you comment out the LaTeX special character\n\tdeclarations in the book's XML file?\n";
307 chdir( "$PATH_PREFIX" ) or die( "Cannot open Project Aon data directory \"$PATH_PREFIX\": $!" );
308 system( "$RXP", "-Vs", "$XML_PATH/$XML_SOURCE" ) == 0 or die( "XML validation failed\n" );
309 unless( -d "$BOOK_PATH" ) { mkdir $BOOK_PATH or die( "Unable to create directory \"$PATH_PREFIX/$BOOK_PATH\": $!\n" ); }
310 print qx{$RM $BOOK_PATH/*};
311 print qx{$JAVA org.apache.xalan.xslt.Process -IN $XML_PATH/$XML_SOURCE -XSL $XML_PATH/xhtml.xsl -OUT \"$BOOK_PATH/foo.xml\" -PARAM book-path \"$BOOK_PATH\" -PARAM text-color \"$TEXT_COLOR\" -PARAM link-color \"$LINK_COLOR\" -PARAM use-illustrators \"$USE_ILLUSTRATORS\"};
312 print qx{$RM $BOOK_PATH/foo.xml};
313 print qx{$CREATE_CSS $BOOK_PATH \"$TEXT_COLOR\" \"\#ffffe6\" \"$LINK_COLOR\" \"$LINK_COLOR\" \"$HLINK_BACK_COLOR\" \"$LINK_COLOR\"};
315 print qx{$CP images/$BOOK_PATH/*gif images/$BOOK_PATH/*jpg $BOOK_PATH};
316 print qx{$CHMOD 600 $BOOK_PATH/*};
317 print qx{$TAR cf $bookCode.tar $BOOK_PATH/*};
318 print qx{$ZIP -8 -q $bookCode.zip $BOOK_PATH/*};
319 print qx{$BZIP2 -9 $bookCode.tar};
320 print qx{$CHMOD 600 $bookCode.tar.bz2 $bookCode.zip};
322 print qx{$MV $bookCode* $PATH_PREFIX/$BOOK_PATH/};