diff --git a/.gitignore b/.gitignore
index 44989c07..6b0d5921 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
background/[0-9]*.shtml
comic/[0-9]*.html
credits/[0-9]*.html
-guide/#*
+*/#*
guide/[0-9]*.html
synops/[0-9]*.html
novels/[0-9]*.html
diff --git a/background/gen.py b/background/gen.py
index 1ba18a9a..adde8f8c 100755
--- a/background/gen.py
+++ b/background/gen.py
@@ -26,21 +26,11 @@ for epnum in sys.argv[1:]:
input = open('story.html', 'r')
output = open(cureplong + '.shtml', 'w')
- output.write("""
-
-Background: """ + '"' + epname + '"' + """
-
-
-
-
-
-
-""" + otros.pageheader(curepno, 'background', 1) + """
-
-
-
-
-""")
+ page_name = 'Background: "' + epname + '"'
+ output.write(otros.head(page_name))
+ output.write("\n")
+ output.write(otros.pageheader(curepno, 'background', 1))
+ output.write("\n\n\n
\n")
printing = 1
diff --git a/comic/gen.py b/comic/gen.py
deleted file mode 100755
index 27c5c62e..00000000
--- a/comic/gen.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/python
-
-import sys,string,time,os
-sys.path.append('../internal')
-import otros
-
-months = [ '', 'January', 'February', 'March', 'April', 'May', 'June', 'July',
- 'August', 'September', 'October', 'November', 'December']
-
-for epnum in sys.argv[1:]:
- curep = string.atoi(epnum[:3])
-
- pix = open('../internal/comicnames', 'r')
- for i in range(0, curep + 1):
- epname = pix.readline()[:-1]
- pix.close()
- if epname == '':
- epname = 'XXX'
-
- cureplong = '%03d' % curep
-
- which = 'comic'
-
- input = open(epnum, 'r')
- mtime = time.localtime(os.stat(epnum)[8]);
- mtime_str = '%s %d, %d' % (months[mtime[1]], mtime[2], mtime[0])
-
- output = open(epnum + '.html', 'w')
-
- output.write("""
-
-Comic: """ + '"' + epname + '"')
- if which == 'extra':
- output.write(' (scene in detail)')
-
- output.write("""
-
-
-
-
-
-
-""" + otros.pageheader(curep, which))
-
- if which == 'guide':
- output.write("""
-
-
-Contents:
-Overview -
-Backplot -
-Questions -
-Analysis -
-Notes -
-JMS
-
-
-
-
-""")
- else:
- output.write("""
-
-
-
-
-""")
-
- output.write(input.read())
-
- output.write('\n\n
\n' + otros.pagefooter(curep) + """
-
-
-Last update:
-""" + mtime_str + """
-
-
-
-
-""")
-
- input.close()
- output.close()
-
- print epnum
diff --git a/comic/gen.py b/comic/gen.py
new file mode 120000
index 00000000..ea1641c8
--- /dev/null
+++ b/comic/gen.py
@@ -0,0 +1 @@
+../guide/gen.py
\ No newline at end of file
diff --git a/comic/perdir.py b/comic/perdir.py
new file mode 100755
index 00000000..bde18ed2
--- /dev/null
+++ b/comic/perdir.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+#
+# Per-directory values for /lurk/comic
+#
+def get_type():
+ return 'comic'
+
+def get_episode_names_file():
+ return '../internal/comicnames'
+
+def get_page_name_prefix():
+ return 'Comic'
+
+def get_table_of_contents():
+ return """
+
+
+Contents:
+Overview -
+Backplot -
+Questions -
+Analysis -
+Notes -
+JMS
+
+"""
+
+def get_do_jpeg():
+ return 0
diff --git a/credits/gen.py b/credits/gen.py
deleted file mode 100755
index fd0341de..00000000
--- a/credits/gen.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/python
-
-import sys,string,time,os
-sys.path.append('../internal')
-import otros
-
-months = [ '', 'January', 'February', 'March', 'April', 'May', 'June', 'July',
- 'August', 'September', 'October', 'November', 'December']
-
-for epnum in sys.argv[1:]:
- curep = string.atoi(epnum[:3])
-
- pix = open('../internal/epnames', 'r')
- for i in range(0, curep + 1):
- epname = pix.readline()[:-1]
- pix.close()
- if epname == '':
- epname = 'XXX'
-
- if len(epnum) > 3:
- cureplong = epnum
- else:
- cureplong = '%03d' % curep
-
- input = open(cureplong, 'r')
- output = open(cureplong + '.html', 'w')
-
- mtime = time.localtime(os.stat(cureplong)[8]);
- mtime_str = '%s %d, %d' % (months[mtime[1]], mtime[2], mtime[0])
-
- output.write("""
-
-Credits: """ + '"' + epname + '"' + """
-
-
-
-
-
-
-""" + otros.pageheader(curep, 'credits', 1) + '\n\n')
-
- try:
- special = open(cureplong + '-head', 'r')
- output.write(special.read())
- special.close()
- except:
- pass
-
- output.write('\n\n')
- output.write(input.read())
-
- output.write("""
-
-
-""" + otros.pagefooter(curep) + """
-
-
-Last update:
-""" + mtime_str + """
-
-
-
-
-""")
-
- input.close()
- output.close()
-
- print epnum
diff --git a/credits/gen.py b/credits/gen.py
new file mode 120000
index 00000000..ea1641c8
--- /dev/null
+++ b/credits/gen.py
@@ -0,0 +1 @@
+../guide/gen.py
\ No newline at end of file
diff --git a/guide/gen.py b/guide/gen.py
index f9891f82..453eec7d 100755
--- a/guide/gen.py
+++ b/guide/gen.py
@@ -3,17 +3,19 @@
import sys,string,time,os
sys.path.append('../internal')
import otros
+sys.path.insert(0, '.')
+import perdir
months = [ '', 'January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December']
-do_jpeg = 1
+do_jpeg = perdir.get_do_jpeg()
args = sys.argv
for epnum in args[1:]:
curep = string.atoi(epnum[:3])
- pix = open('../internal/epnames', 'r')
+ pix = open(perdir.get_episode_names_file(), 'r')
for i in range(0, curep + 1):
epname = pix.readline()[:-1]
pix.close()
@@ -23,7 +25,7 @@ for epnum in args[1:]:
cureplong = '%03d' % curep
if len(epnum) == 3:
- which = 'guide'
+ which = perdir.get_type()
else:
which = 'extra'
@@ -42,44 +44,37 @@ for epnum in args[1:]:
output = open(epnum + '.html', 'w')
- output.write("""
-
-Guide page: """ + '"' + epname + '"')
+ page_name = perdir.get_page_name_prefix() + ': "' + epname + '"'
if which == 'extra':
- output.write(' (scene in detail)')
-
- output.write("""
-
-
-
+ page_name = page_name + ' (scene in detail)'
-
+ output.write(otros.head(page_name))
-""" + otros.pageheader(curep, which, do_jpeg))
+ output.write("\n")
- if which == 'guide':
- output.write("""
+ try:
+ special = open(epnum + '-head', 'r')
+ output.write(special.read())
+ special.close()
+ except:
+ pass
-
-Contents:
-Overview -
-Backplot -
-Questions -
-Analysis -
-Notes -
-JMS
-
-
-
+ output.write(otros.pageheader(curep, which, do_jpeg))
-""")
- else:
+ if which == 'extra':
output.write("""
""")
+ elif perdir.get_type() == 'credits':
+ output.write("\n\n")
+ else:
+ toc = perdir.get_table_of_contents()
+ if len(toc) > 0:
+ output.write(toc)
+ output.write("\n\n
\n")
wholefile = input.read()
input.close()
@@ -126,6 +121,10 @@ for epnum in args[1:]:
if do_jpeg:
final = otros.mungeimages(final, do_jpeg)
output.write(final)
+
+ if perdir.get_type() == 'credits':
+ output.write("\n")
+
output.write('\n\n
\n' + otros.pagefooter(curep) + """
diff --git a/guide/genall.csh b/guide/genall.csh
index 71d68781..7db272cf 100644
--- a/guide/genall.csh
+++ b/guide/genall.csh
@@ -1,2 +1,2 @@
#!/bin/csh
-gen.py `/bin/ls [012]* | fgrep -v .html`
+gen.py `/bin/ls [012345]* | fgrep -v .html`
diff --git a/guide/perdir.py b/guide/perdir.py
new file mode 100755
index 00000000..80b9c123
--- /dev/null
+++ b/guide/perdir.py
@@ -0,0 +1,28 @@
+#!/usr/bin/python
+#
+# Per-directory values for /lurk/guide
+#
+def get_type():
+ return 'guide'
+
+def get_episode_names_file():
+ return '../internal/epnames'
+
+def get_page_name_prefix():
+ return 'Guide Page'
+
+def get_table_of_contents():
+ return """
+
+
+Contents:
+Overview -
+Backplot -
+Questions -
+Analysis -
+Notes -
+JMS
+"""
+
+def get_do_jpeg():
+ return 1
diff --git a/internal/otros.py b/internal/otros.py
index 65d6f51c..df94eca8 100644
--- a/internal/otros.py
+++ b/internal/otros.py
@@ -288,8 +288,11 @@ align=bottom
# Given an image path, generate the full path to the corresponding file.
#
def normalize_path(path):
- if path[0:4] == '/lurk/':
- path = '/home/koreth/lurk' + path[5:]
+ if path[0:6] == '/lurk/':
+ curdir = os.getcwd()
+ if (not os.path.exists(curdir + '/lurker.html')):
+ curdir = curdir + '/..'
+ path = os.path.abspath(curdir) + path[5:]
elif path[0] == '/':
path = '/home/midwinter/docroot' + path
return path
@@ -326,3 +329,15 @@ def mungeimages(text, do_jpeg):
return result
+
+#
+# Returns the
section for a page, including image maps.
+#
+def head(title):
+ result = "\n" + title + "\n"
+ mapsfile = open('../maps/maps.html', 'r')
+ result = result + mapsfile.read()
+ mapsfile.close()
+ result = result + "\n"
+
+ return result
diff --git a/novels/gen.py b/novels/gen.py
deleted file mode 100755
index fcbb8e23..00000000
--- a/novels/gen.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/python
-
-import sys,string,time,os
-sys.path.append('../internal')
-import otros
-
-months = [ '', 'January', 'February', 'March', 'April', 'May', 'June', 'July',
- 'August', 'September', 'October', 'November', 'December']
-
-for epnum in sys.argv[1:]:
- curep = string.atoi(epnum[:3])
-
- pix = open('../internal/novelnames', 'r')
- for i in range(0, curep + 1):
- epname = pix.readline()[:-1]
- pix.close()
- if epname == '':
- epname = 'XXX'
-
- cureplong = '%03d' % curep
-
- which = 'novels'
-
- input = open(epnum, 'r')
- mtime = time.localtime(os.stat(epnum)[8]);
- mtime_str = '%s %d, %d' % (months[mtime[1]], mtime[2], mtime[0])
-
- output = open(epnum + '.html', 'w')
-
- page_name = 'Novel: "' + epname + '"'
- if which == 'extra':
- page_name = page_name + ' (scene in detail)'
-
- output.write(otros.head(page_name))
- output.write("\n")
- output.write(otros.pageheader(curep, which))
-
- output.write("""
-
-
-Contents:
-Back Cover -
-Synopsis -
-Questions -
-Analysis -
-Notes -
-Author
-
-
-
-
-""")
-
- output.write(input.read())
-
- output.write('\n\n
\n' + otros.pagefooter(curep) + """
-
-
-Last update:
-""" + mtime_str + """
-
-
-
-
-""")
-
- input.close()
- output.close()
-
- print epnum
diff --git a/novels/gen.py b/novels/gen.py
new file mode 120000
index 00000000..ea1641c8
--- /dev/null
+++ b/novels/gen.py
@@ -0,0 +1 @@
+../guide/gen.py
\ No newline at end of file
diff --git a/novels/perdir.py b/novels/perdir.py
new file mode 100755
index 00000000..2f444a0b
--- /dev/null
+++ b/novels/perdir.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+#
+# Per-directory values for /lurk/novels
+#
+def get_type():
+ return 'novels'
+
+def get_episode_names_file():
+ return '../internal/novelnames'
+
+def get_page_name_prefix():
+ return 'Novel'
+
+def get_table_of_contents():
+ return """
+
+
+Contents:
+Back Cover -
+Synopsis -
+Questions -
+Analysis -
+Notes -
+Author
+
+"""
+
+def get_do_jpeg():
+ return 0
diff --git a/synops/gen.py b/synops/gen.py
deleted file mode 100755
index ed80660c..00000000
--- a/synops/gen.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/python
-
-import sys,string,time,os
-sys.path.append('../internal')
-import otros
-
-months = [ '', 'January', 'February', 'March', 'April', 'May', 'June', 'July',
- 'August', 'September', 'October', 'November', 'December']
-
-for epnum in sys.argv[1:]:
- curep = string.atoi(epnum[:3])
-
- pix = open('../internal/epnames', 'r')
- for i in range(0, curep + 1):
- epname = pix.readline()[:-1]
- pix.close()
- if epname == '':
- epname = 'XXX'
-
- cureplong = '%03d' % curep
-
- which = 'synopsis'
-
- input = open(epnum, 'r')
- mtime = time.localtime(os.stat(epnum)[8]);
- mtime_str = '%s %d, %d' % (months[mtime[1]], mtime[2], mtime[0])
-
- output = open(epnum + '.html', 'w')
-
- output.write("""
-
-Synopsis: """ + '"' + epname + '"' + """
-
-
-
-
-
-
-""" + otros.pageheader(curep, which, 1) + """
-
-
-
-
-
-""")
-
- output.write(otros.mungeimages(input.read(), 1))
-
- output.write('\n\n\n
' +
- otros.pagefooter(curep, 'synopsis') + """
-
-
-Last update:
-""" + mtime_str + """
-
-
-
-
-""")
-
- input.close()
- output.close()
-
- print epnum
diff --git a/synops/gen.py b/synops/gen.py
new file mode 120000
index 00000000..ea1641c8
--- /dev/null
+++ b/synops/gen.py
@@ -0,0 +1 @@
+../guide/gen.py
\ No newline at end of file
diff --git a/synops/perdir.py b/synops/perdir.py
new file mode 100755
index 00000000..3b8a0314
--- /dev/null
+++ b/synops/perdir.py
@@ -0,0 +1,18 @@
+#!/usr/bin/python
+#
+# Per-directory values for /lurk/synops
+#
+def get_type():
+ return 'synopsis'
+
+def get_episode_names_file():
+ return '../internal/epnames'
+
+def get_page_name_prefix():
+ return 'Synopsis'
+
+def get_table_of_contents():
+ return ''
+
+def get_do_jpeg():
+ return 1