file encodings
svn: r4919
This commit is contained in:
parent
916a73ad0c
commit
5fa3fb004e
@ -31,6 +31,7 @@ import os
|
||||
import time
|
||||
import locale
|
||||
import shutil
|
||||
import codecs
|
||||
from gettext import gettext as _
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
@ -65,6 +66,25 @@ import sets
|
||||
|
||||
_NARRATIVE = "narrative.css"
|
||||
|
||||
_character_sets = [
|
||||
[_('Unicode (recommended)'), 'utf-8'],
|
||||
['ISO-8859-1', 'iso-8859-1' ],
|
||||
['ISO-8859-2', 'iso-8859-2' ],
|
||||
['ISO-8859-3', 'iso-8859-3' ],
|
||||
['ISO-8859-4', 'iso-8859-4' ],
|
||||
['ISO-8859-5', 'iso-8859-5' ],
|
||||
['ISO-8859-6', 'iso-8859-6' ],
|
||||
['ISO-8859-7', 'iso-8859-7' ],
|
||||
['ISO-8859-8', 'iso-8859-8' ],
|
||||
['ISO-8859-9', 'iso-8859-9' ],
|
||||
['ISO-8859-10', 'iso-8859-10' ],
|
||||
['ISO-8859-13', 'iso-8859-13' ],
|
||||
['ISO-8859-14', 'iso-8859-14' ],
|
||||
['ISO-8859-15', 'iso-8859-15' ],
|
||||
['koi8_r', 'koi8_r', ],
|
||||
]
|
||||
|
||||
|
||||
_css = [
|
||||
'BODY {\nfont-family: "Arial", "Helvetica", sans-serif;',
|
||||
'letter-spacing: 0.05em;\nbackground-color: #fafaff;',
|
||||
@ -138,6 +158,7 @@ class BasePage:
|
||||
self.archive = archive
|
||||
self.image_dir = options.handler.options_dict['NWEBimagedir'].strip()
|
||||
self.ext = options.handler.options_dict['NWEBext']
|
||||
self.encoding = options.handler.options_dict['NWEBencoding']
|
||||
|
||||
def copy_media(self,photo):
|
||||
newpath = photo.gramps_id + os.path.splitext(photo.get_path())[1]
|
||||
@ -154,16 +175,17 @@ class BasePage:
|
||||
|
||||
def create_file(self,name):
|
||||
if self.archive:
|
||||
of = StringIO()
|
||||
self.string_io = StringIO()
|
||||
of = codecs.EncodedFile(self.string_io,self.encoding)
|
||||
self.cur_name = name + "." + self.ext
|
||||
else:
|
||||
page_name = os.path.join(self.html_dir,name + "." + self.ext)
|
||||
of = open(page_name, "w")
|
||||
of = codecs.EncodedFile(open(page_name, "w"),self.encoding)
|
||||
return of
|
||||
|
||||
def close_file(self,of):
|
||||
if self.archive:
|
||||
self.archive.add_file(self.cur_name,time.time(),of)
|
||||
self.archive.add_file(self.cur_name,time.time(),self.string_io)
|
||||
of.close()
|
||||
else:
|
||||
of.close()
|
||||
@ -198,7 +220,7 @@ class BasePage:
|
||||
of.write(u'<html>\n<head>\n')
|
||||
of.write(u'<title>%s</title>\n' % self.title_str)
|
||||
of.write(u'<meta http-equiv="Content-Type" content="text/html; ')
|
||||
of.write(u'charset=UTF-8">\n')
|
||||
of.write(u'charset=%s">\n' % self.encoding)
|
||||
of.write(u'<link href="%s" ' % _NARRATIVE)
|
||||
of.write(u'rel="stylesheet" type="text/css">\n')
|
||||
of.write(u'<link href="favicon.png" rel="Shortcut Icon">\n')
|
||||
@ -219,7 +241,7 @@ class BasePage:
|
||||
if self.inc_download:
|
||||
of.write(u' <a href="download.%s">%s</a> \n' % (self.ext,_('Download')))
|
||||
if self.inc_contact:
|
||||
of.write(u' <a href="contact.%s">%s</a> \n' % (self.ext_('Contact')))
|
||||
of.write(u' <a href="contact.%s">%s</a> \n' % (self.ext,_('Contact')))
|
||||
of.write(u' </div>\n')
|
||||
of.write(u' </div>\n')
|
||||
|
||||
@ -473,9 +495,7 @@ class IntroductionPage(BasePage):
|
||||
|
||||
if note_id:
|
||||
obj = db.get_object_from_gramps_id(note_id)
|
||||
if not obj:
|
||||
print "%s object not found" % note_id
|
||||
else:
|
||||
if obj:
|
||||
note_obj = obj.get_note_object()
|
||||
text = note_obj.get()
|
||||
if note_obj.get_format():
|
||||
@ -992,6 +1012,7 @@ class WebReport(Report.Report):
|
||||
NWEBidurl
|
||||
NWEBlinktidx
|
||||
NWEBext
|
||||
NWEBencoding
|
||||
NWEBtreed
|
||||
NWEBidxt
|
||||
NWEBidxbirth
|
||||
@ -1010,6 +1031,7 @@ class WebReport(Report.Report):
|
||||
|
||||
self.target_path = options_class.handler.options_dict['NWEBod']
|
||||
self.ext = options_class.handler.options_dict['NWEBext']
|
||||
self.encoding = options_class.handler.options_dict['NWEBencoding']
|
||||
self.id_link = options_class.handler.options_dict['NWEBlinktidx']
|
||||
self.photos = options_class.handler.options_dict['NWEBimg']
|
||||
self.restrict = options_class.handler.options_dict['NWEBrestrictinfo']
|
||||
@ -1178,6 +1200,7 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
||||
'NWEBidurl' : '',
|
||||
'NWEBlinktidx' : 1,
|
||||
'NWEBext' : 'html',
|
||||
'NWEBencoding' : 'utf-8',
|
||||
'NWEBtreed' : 3,
|
||||
'NWEBidxt' : '',
|
||||
'NWEBintronote' : '',
|
||||
@ -1289,9 +1312,21 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
||||
def_ext = "." + self.options_dict['NWEBext']
|
||||
self.ext.set_active(self.ext_options.index(def_ext))
|
||||
|
||||
cset_node = None
|
||||
cset = self.options_dict['NWEBencoding']
|
||||
|
||||
store = gtk.ListStore(str,str)
|
||||
for data in _character_sets:
|
||||
if data[1] == cset:
|
||||
cset_node = store.append(row=data)
|
||||
else:
|
||||
store.append(row=data)
|
||||
self.encoding = GrampsNoteComboBox(store,cset_node)
|
||||
|
||||
dialog.add_option(title_msg,self.title)
|
||||
dialog.add_option(imgdir_msg,self.imgdir)
|
||||
dialog.add_option(ext_msg,self.ext)
|
||||
dialog.add_option(_('Character set encoding'),self.encoding)
|
||||
|
||||
title = _("Page Generation")
|
||||
|
||||
@ -1315,7 +1350,7 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
||||
else:
|
||||
store.append(row=data)
|
||||
self.home_note = GrampsNoteComboBox(store,home_node)
|
||||
|
||||
|
||||
dialog.add_frame_option(title,_('Home Media/Note ID'),
|
||||
self.home_note)
|
||||
dialog.add_frame_option(title,_('Introduction Media/Note ID'),
|
||||
@ -1353,6 +1388,9 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
||||
html_ext = html_ext[1:]
|
||||
self.options_dict['NWEBext'] = html_ext
|
||||
|
||||
print self.encoding.get_handle()
|
||||
self.options_dict['NWEBencoding'] = self.encoding.get_handle()
|
||||
|
||||
self.options_dict['NWEBidurl'] = unicode(self.linkpath.get_text().strip())
|
||||
|
||||
self.options_dict['NWEBcmtxtsi'] = int(not self.no_comments.get_active())
|
||||
@ -1565,7 +1603,9 @@ class GrampsNoteComboBox(gtk.ComboBox):
|
||||
@rtype: str
|
||||
"""
|
||||
active = self.get_active_iter()
|
||||
handle = self.local_store.get_value(active,1)
|
||||
handle = None
|
||||
if active:
|
||||
handle = self.local_store.get_value(active,1)
|
||||
return handle
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user