diff --git a/gramps/src/docgen/HtmlDoc.py b/gramps/src/docgen/HtmlDoc.py
index 4a5082bc8..f961c509b 100644
--- a/gramps/src/docgen/HtmlDoc.py
+++ b/gramps/src/docgen/HtmlDoc.py
@@ -104,7 +104,13 @@ class HtmlDoc(TextDoc):
self.table_styles = source.table_styles;
self.cell_styles = source.cell_styles;
self.image_dir = source.image_dir
-
+ self.ext = '.html'
+
+ def set_extension(self,val):
+ if val[0] != '.':
+ val = "." + val
+ self.ext = val
+
def set_owner(self,owner):
HtmlDoc.set_owner(self,owner)
self.copyright = 'Copyright © %d %s' % (self.year,self.owner)
@@ -196,10 +202,11 @@ class HtmlDoc(TextDoc):
return string.replace(l,'$COPYRIGHT',self.copyright)
def open(self,filename):
- if filename[-5:] == ".html" or filename[-4:0] == ".htm":
+ (r,e) = os.path.splitext(filename)
+ if e == self.ext:
self.filename = filename
else:
- self.filename = filename + ".html"
+ self.filename = filename + self.ext
self.base = os.path.dirname(self.filename)
diff --git a/gramps/src/plugins/WebPage.py b/gramps/src/plugins/WebPage.py
index 21e378a12..cebe2a6f5 100644
--- a/gramps/src/plugins/WebPage.py
+++ b/gramps/src/plugins/WebPage.py
@@ -77,8 +77,9 @@ class HtmlLinkDoc(HtmlDoc):
#------------------------------------------------------------------------
class IndividualPage:
- def __init__(self,person,photos,restrict,private,uc,link,map,dir_name,imgdir,doc,id,idlink):
+ def __init__(self,person,photos,restrict,private,uc,link,map,dir_name,imgdir,doc,id,idlink,ext):
self.person = person
+ self.ext = ext
self.doc = doc
self.use_id = id
self.id_link = idlink
@@ -162,7 +163,7 @@ class IndividualPage:
self.doc.start_paragraph("Data")
if person:
if self.list.has_key(person):
- self.doc.start_link("%s.html" % person.getId())
+ self.doc.start_link("%s.%s" % (person.getId(),self.ext))
self.doc.write_text(person.getPrimaryName().getRegularName())
self.doc.end_link()
else:
@@ -207,7 +208,7 @@ class IndividualPage:
def create_page(self):
"""Generate the HTML page for the specific person"""
- filebase = "%s.html" % self.person.getId()
+ filebase = "%s.%s" % (self.person.getId(),self.ext)
self.doc.open("%s/%s" % (self.dir,filebase))
photo_list = self.person.getPhotoList()
@@ -286,7 +287,7 @@ class IndividualPage:
if self.link:
self.doc.start_paragraph("Data")
- self.doc.start_link("index.html")
+ self.doc.start_link("index.%s" % self.ext)
self.doc.write_text(_("Return to the index of people"))
self.doc.end_link()
self.doc.end_paragraph()
@@ -511,7 +512,7 @@ class IndividualPage:
self.doc.start_paragraph("Spouse")
if spouse:
if self.list.has_key(spouse):
- self.doc.start_link("%s.html" % spouse.getId())
+ self.doc.start_link("%s.%s" % (spouse.getId(),self.ext))
self.doc.write_text(spouse.getPrimaryName().getRegularName())
self.doc.end_link()
else:
@@ -548,7 +549,7 @@ class IndividualPage:
else:
self.doc.write_text('\n')
if self.list.has_key(child):
- self.doc.start_link("%s.html" % child.getId())
+ self.doc.start_link("%s.%s" % (child.getId(),self.ext))
self.doc.write_text(name)
self.doc.end_link()
else:
@@ -566,8 +567,9 @@ class IndividualPage:
class WebReport(Report):
def __init__(self,db,person,target_path,max_gen,photos,filter,restrict,
private, srccomments, include_link, style, image_dir,
- template_name,use_id,id_link,gendex):
+ template_name,use_id,id_link,gendex,ext):
self.db = db
+ self.ext = ext
self.use_id = use_id
self.id_link = id_link
self.person = person
@@ -651,7 +653,7 @@ class WebReport(Report):
surName = name.getSurname()
suffix = name.getSuffix()
- f.write("%s.html|" % p.getId())
+ f.write("%s.%s|" % (p.getId(),self.ext))
f.write("%s|" % surName)
if suffix == "":
f.write("%s /%s/" % (firstName,surName))
@@ -673,9 +675,10 @@ class WebReport(Report):
"""Writes a index file, listing all people in the person list."""
doc = HtmlLinkDoc(self.selected_style,None,template,None)
+ doc.set_extension(self.ext)
doc.set_title(_("Family Tree Index"))
- doc.open("%s/index.html" % html_dir)
+ doc.open("%s/index.%s" % (html_dir,self.ext))
doc.start_paragraph("Title")
doc.write_text(_("Family Tree Index"))
doc.end_paragraph()
@@ -705,7 +708,7 @@ class WebReport(Report):
doc.write_text(name[0])
doc.end_paragraph()
col_len = col_len - 1
- doc.start_link("%s.html" % person.getId())
+ doc.start_link("%s.%s" % (person.getId(),self.ext))
doc.write_text(name)
doc.end_link()
if col_len <= 0 and end_col == 0:
@@ -763,6 +766,7 @@ class WebReport(Report):
self.progress_bar_setup(float(len(ind_list)))
doc = HtmlLinkDoc(self.selected_style,None,self.template_name,None)
+ doc.set_extension(self.ext)
doc.set_image_dir(self.image_dir)
self.add_styles(doc)
@@ -773,10 +777,11 @@ class WebReport(Report):
my_map[l] = 1
for person in ind_list:
tdoc = HtmlLinkDoc(self.selected_style,None,None,None,doc)
+ tdoc.set_extension(self.ext)
idoc = IndividualPage(person, self.photos, self.restrict,
self.private, self.srccomments,
self.include_link, my_map, dir_name,
- self.image_dir, tdoc, self.use_id,self.id_link)
+ self.image_dir, tdoc, self.use_id,self.id_link,self.ext)
idoc.create_page()
idoc.close()
self.progress_bar_step()
@@ -827,6 +832,7 @@ class WebReportDialog(ReportDialog):
include_id_msg = _("Include the GRAMPS ID in the report")
gendex_msg = _("Create a GENDEX index")
imgdir_msg = _("Image subdirectory")
+ ext_msg = _("File extension")
self.use_link = GtkCheckButton(lnk_msg)
self.use_link.set_active(1)
@@ -843,6 +849,9 @@ class WebReportDialog(ReportDialog):
self.linkpath = GtkEntry()
self.linkpath.set_sensitive(0)
self.include_id.connect('toggled',self.show_link)
+ self.ext = GtkCombo()
+ self.ext.set_popdown_strings(['.html','.htm','.php','.php3',
+ '.cgi'])
self.add_option(imgdir_msg,self.imgdir)
self.add_option('',self.use_link)
@@ -858,6 +867,7 @@ class WebReportDialog(ReportDialog):
self.add_frame_option(title,'',self.include_id)
self.add_frame_option(title,_('GRAMPS ID link URL'),self.linkpath)
self.add_frame_option(title,'',self.gendex)
+ self.add_frame_option(title,ext_msg,self.ext)
self.no_images.connect('toggled',self.on_nophotos_toggled)
@@ -1080,6 +1090,9 @@ class WebReportDialog(ReportDialog):
self.private = self.no_private.get_active()
self.img_dir_text = self.imgdir.get_text()
+ self.html_ext = string.strip(self.ext.entry.get_text())
+ if self.html_ext[0] == '.':
+ self.html_ext = self.html_ext[1:]
self.use_id = self.include_id.get_active()
self.use_gendex = self.gendex.get_active()
self.id_link = string.strip(self.linkpath.get_text())
@@ -1118,7 +1131,8 @@ class WebReportDialog(ReportDialog):
self.restrict, self.private, self.srccomments,
self.include_link, self.selected_style,
self.img_dir_text,self.template_name,
- self.use_id,self.id_link,self.use_gendex)
+ self.use_id,self.id_link,self.use_gendex,
+ self.html_ext)
MyReport.write_report()
#------------------------------------------------------------------------