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