3815: Notes with html show verbatim in narrative web
svn: r15169
This commit is contained in:
parent
9a8626a668
commit
56c85f0255
@ -24,6 +24,7 @@
|
|||||||
Provide utilities for printing endnotes in text reports.
|
Provide utilities for printing endnotes in text reports.
|
||||||
"""
|
"""
|
||||||
from gen.plug.docgen import FontStyle, ParagraphStyle, FONT_SANS_SERIF
|
from gen.plug.docgen import FontStyle, ParagraphStyle, FONT_SANS_SERIF
|
||||||
|
from gen.lib import NoteType
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
|
|
||||||
def add_endnote_styles(style_sheet):
|
def add_endnote_styles(style_sheet):
|
||||||
@ -147,7 +148,9 @@ def write_endnotes(bibliography, database, doc, printnotes=False):
|
|||||||
'type': str(note.get_type())})
|
'type': str(note.get_type())})
|
||||||
doc.end_paragraph()
|
doc.end_paragraph()
|
||||||
doc.write_styled_note(note.get_styledtext(),
|
doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(),'Endnotes-Notes')
|
note.get_format(),'Endnotes-Notes',
|
||||||
|
contains_html= note.get_type() \
|
||||||
|
== NoteType.HTML_CODE)
|
||||||
ind += 1
|
ind += 1
|
||||||
|
|
||||||
def _format_source_text(source):
|
def _format_source_text(source):
|
||||||
|
@ -67,6 +67,8 @@ class NoteType(GrampsType):
|
|||||||
SOURCE_TEXT = 21 # this is used for verbatim source text in SourceRef
|
SOURCE_TEXT = 21 # this is used for verbatim source text in SourceRef
|
||||||
CITATION = 22
|
CITATION = 22
|
||||||
REPORT_TEXT = 23 # this is used for notes used for reports
|
REPORT_TEXT = 23 # this is used for notes used for reports
|
||||||
|
# indicate a note is html code
|
||||||
|
HTML_CODE = 24
|
||||||
|
|
||||||
_CUSTOM = CUSTOM
|
_CUSTOM = CUSTOM
|
||||||
_DEFAULT = GENERAL
|
_DEFAULT = GENERAL
|
||||||
@ -81,6 +83,7 @@ class NoteType(GrampsType):
|
|||||||
(SOURCE_TEXT, _("Source text"), "Source text"),
|
(SOURCE_TEXT, _("Source text"), "Source text"),
|
||||||
(CITATION, _('Citation'), "Citation"),
|
(CITATION, _('Citation'), "Citation"),
|
||||||
(REPORT_TEXT, _("Report"), "Report"),
|
(REPORT_TEXT, _("Report"), "Report"),
|
||||||
|
(HTML_CODE, _("Html code"), "Html code"),
|
||||||
]
|
]
|
||||||
|
|
||||||
_DATAMAPIGNORE = [
|
_DATAMAPIGNORE = [
|
||||||
|
@ -203,12 +203,17 @@ class TextDoc(object):
|
|||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def write_styled_note(self, styledtext, format, style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
"""
|
"""
|
||||||
Convenience function to write a styledtext to the cairo doc.
|
Convenience function to write a styledtext to the cairo doc.
|
||||||
styledtext : assumed a StyledText object to write
|
styledtext : assumed a StyledText object to write
|
||||||
format : = 0 : Flowed, = 1 : Preformatted
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
style_name : name of the style to use for default presentation
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable.
|
||||||
|
|
||||||
overwrite this method if the backend supports styled notes
|
overwrite this method if the backend supports styled notes
|
||||||
"""
|
"""
|
||||||
|
@ -362,7 +362,18 @@ class AsciiDoc(BaseDoc,TextDoc):
|
|||||||
else:
|
else:
|
||||||
self.f.write(this_text)
|
self.f.write(this_text)
|
||||||
|
|
||||||
def write_styled_note(self,styledtext,format,style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
|
"""
|
||||||
|
Convenience function to write a styledtext to the ASCII doc.
|
||||||
|
styledtext : assumed a StyledText object to write
|
||||||
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable. AsciiDoc prints the html without handling it
|
||||||
|
"""
|
||||||
text = str(styledtext)
|
text = str(styledtext)
|
||||||
if format:
|
if format:
|
||||||
#Preformatted note, keep all white spaces, tabs, LF's
|
#Preformatted note, keep all white spaces, tabs, LF's
|
||||||
|
@ -467,12 +467,18 @@ class HtmlDoc(BaseDoc, TextDoc):
|
|||||||
#end div element
|
#end div element
|
||||||
self.__reduce_list()
|
self.__reduce_list()
|
||||||
|
|
||||||
def write_styled_note(self, styledtext, format, style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
"""
|
"""
|
||||||
Convenience function to write a styledtext to the html doc.
|
Convenience function to write a styledtext to the html doc.
|
||||||
styledtext : assumed a StyledText object to write
|
styledtext : assumed a StyledText object to write
|
||||||
format : = 0 : Flowed, = 1 : Preformatted
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
style_name : name of the style to use for default presentation
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable. HtmlDoc will show the html as pure text, so
|
||||||
|
no escaping will happen.
|
||||||
"""
|
"""
|
||||||
text = str(styledtext)
|
text = str(styledtext)
|
||||||
|
|
||||||
@ -481,7 +487,13 @@ class HtmlDoc(BaseDoc, TextDoc):
|
|||||||
markuptext = self._backend.add_markup_from_styled(text, s_tags,
|
markuptext = self._backend.add_markup_from_styled(text, s_tags,
|
||||||
split='\n\n')
|
split='\n\n')
|
||||||
self.htmllist += [Html('div', id='grampsstylednote')]
|
self.htmllist += [Html('div', id='grampsstylednote')]
|
||||||
if format == 1:
|
if contains_html:
|
||||||
|
#just dump the note out as it is. Adding markup would be dangerous
|
||||||
|
# as it could destroy the html. If html code, one can do the
|
||||||
|
self.start_paragraph(style_name)
|
||||||
|
self.__write_text(text, markup=True)
|
||||||
|
self.end_paragraph()
|
||||||
|
elif format == 1:
|
||||||
#preformatted, retain whitespace.
|
#preformatted, retain whitespace.
|
||||||
#so use \n\n for paragraph detection
|
#so use \n\n for paragraph detection
|
||||||
#FIXME: following split should be regex to match \n\s*\n instead?
|
#FIXME: following split should be regex to match \n\s*\n instead?
|
||||||
|
@ -603,13 +603,20 @@ class LaTeXDoc(BaseDoc, TextDoc):
|
|||||||
text = text.replace('\\_'*13, '\\underline{\hspace{3cm}}')
|
text = text.replace('\\_'*13, '\\underline{\hspace{3cm}}')
|
||||||
self._backend.write(text)
|
self._backend.write(text)
|
||||||
|
|
||||||
def write_styled_note(self, styledtext, format, style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
"""
|
"""
|
||||||
Convenience function to write a styledtext to the latex doc.
|
Convenience function to write a styledtext to the latex doc.
|
||||||
styledtext : assumed a StyledText object to write
|
styledtext : assumed a StyledText object to write
|
||||||
format : = 0 : Flowed, = 1 : Preformatted
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
style_name : name of the style to use for default presentation
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable. LatexDoc ignores notes that contain html
|
||||||
"""
|
"""
|
||||||
|
if contains_html:
|
||||||
|
return
|
||||||
text = str(styledtext)
|
text = str(styledtext)
|
||||||
|
|
||||||
s_tags = styledtext.get_tags()
|
s_tags = styledtext.get_tags()
|
||||||
|
@ -1202,12 +1202,17 @@ class ODFDoc(BaseDoc, TextDoc, DrawDoc):
|
|||||||
self.cntnt.write('</text:span>')
|
self.cntnt.write('</text:span>')
|
||||||
self.end_paragraph()
|
self.end_paragraph()
|
||||||
|
|
||||||
def write_styled_note(self, styledtext, format, style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
"""
|
"""
|
||||||
Convenience function to write a styledtext to the latex doc.
|
Convenience function to write a styledtext to the latex doc.
|
||||||
styledtext : assumed a StyledText object to write
|
styledtext : assumed a StyledText object to write
|
||||||
format : = 0 : Flowed, = 1 : Preformatted
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
style_name : name of the style to use for default presentation
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable. RTFDoc prints the html without handling it
|
||||||
"""
|
"""
|
||||||
text = str(styledtext)
|
text = str(styledtext)
|
||||||
s_tags = styledtext.get_tags()
|
s_tags = styledtext.get_tags()
|
||||||
|
@ -396,7 +396,18 @@ class RTFDoc(BaseDoc,TextDoc):
|
|||||||
index = index+1
|
index = index+1
|
||||||
self.f.write('}}\\par\n')
|
self.f.write('}}\\par\n')
|
||||||
|
|
||||||
def write_styled_note(self,styledtext,format,style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
|
"""
|
||||||
|
Convenience function to write a styledtext to the latex doc.
|
||||||
|
styledtext : assumed a StyledText object to write
|
||||||
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable. RTFDoc prints the html without handling it
|
||||||
|
"""
|
||||||
text = str(styledtext)
|
text = str(styledtext)
|
||||||
if format:
|
if format:
|
||||||
# Preformatted note
|
# Preformatted note
|
||||||
|
@ -1286,12 +1286,17 @@ class CairoDoc(BaseDoc, TextDoc, DrawDoc):
|
|||||||
self.write_text(line)
|
self.write_text(line)
|
||||||
self.end_paragraph()
|
self.end_paragraph()
|
||||||
|
|
||||||
def write_styled_note(self, styledtext, format, style_name):
|
def write_styled_note(self, styledtext, format, style_name,
|
||||||
|
contains_html=False):
|
||||||
"""
|
"""
|
||||||
Convenience function to write a styledtext to the cairo doc.
|
Convenience function to write a styledtext to the cairo doc.
|
||||||
styledtext : assumed a StyledText object to write
|
styledtext : assumed a StyledText object to write
|
||||||
format : = 0 : Flowed, = 1 : Preformatted
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
style_name : name of the style to use for default presentation
|
style_name : name of the style to use for default presentation
|
||||||
|
contains_html: bool, the backend should not check if html is present.
|
||||||
|
If contains_html=True, then the textdoc is free to handle that in
|
||||||
|
some way. Eg, a textdoc could remove all tags, or could make sure
|
||||||
|
a link is clickable. CairoDoc does nothing different for html notes
|
||||||
"""
|
"""
|
||||||
text = str(styledtext)
|
text = str(styledtext)
|
||||||
|
|
||||||
@ -1352,7 +1357,7 @@ class CairoDoc(BaseDoc, TextDoc, DrawDoc):
|
|||||||
text
|
text
|
||||||
"""
|
"""
|
||||||
markuptext = self._backend.add_markup_from_styled(text, s_tags)
|
markuptext = self._backend.add_markup_from_styled(text, s_tags)
|
||||||
self.__write_text(text, markup=True)
|
self.__write_text(markuptext, markup=True)
|
||||||
|
|
||||||
def add_media_object(self, name, pos, x_cm, y_cm, alt=''):
|
def add_media_object(self, name, pos, x_cm, y_cm, alt=''):
|
||||||
new_image = GtkDocPicture(pos, name, x_cm, y_cm)
|
new_image = GtkDocPicture(pos, name, x_cm, y_cm)
|
||||||
|
@ -40,7 +40,7 @@ from gen.ggettext import gettext as _
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as _nd
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.lib import EventType, FamilyRelType, Person
|
from gen.lib import EventType, FamilyRelType, Person, NoteType
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
FONT_SANS_SERIF, FONT_SERIF,
|
FONT_SANS_SERIF, FONT_SERIF,
|
||||||
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
||||||
@ -281,7 +281,9 @@ class DetAncestorReport(Report):
|
|||||||
for notehandle in notelist:
|
for notehandle in notelist:
|
||||||
note = self.database.get_note_from_handle(notehandle)
|
note = self.database.get_note_from_handle(notehandle)
|
||||||
self.doc.write_styled_note(note.get_styledtext(),
|
self.doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(),"DAR-Entry")
|
note.get_format(), "DAR-Entry",
|
||||||
|
contains_html= note.get_type() \
|
||||||
|
== NoteType.HTML_CODE)
|
||||||
|
|
||||||
first = True
|
first = True
|
||||||
if self.inc_names:
|
if self.inc_names:
|
||||||
@ -417,7 +419,9 @@ class DetAncestorReport(Report):
|
|||||||
for notehandle in notelist:
|
for notehandle in notelist:
|
||||||
note = self.database.get_note_from_handle(notehandle)
|
note = self.database.get_note_from_handle(notehandle)
|
||||||
self.doc.write_styled_note(note.get_styledtext(),
|
self.doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(),"DAR-MoreDetails")
|
note.get_format(),"DAR-MoreDetails",
|
||||||
|
contains_html= note.get_type() \
|
||||||
|
== NoteType.HTML_CODE)
|
||||||
|
|
||||||
def write_parents(self, person):
|
def write_parents(self, person):
|
||||||
family_handle = person.get_main_parents_family_handle()
|
family_handle = person.get_main_parents_family_handle()
|
||||||
|
@ -41,7 +41,7 @@ from gen.ggettext import gettext as _
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as _nd
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.lib import FamilyRelType, Person
|
from gen.lib import FamilyRelType, Person, NoteType
|
||||||
from gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
|
from gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
|
||||||
EnumeratedListOption)
|
EnumeratedListOption)
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
@ -418,7 +418,8 @@ class DetDescendantReport(Report):
|
|||||||
for notehandle in notelist:
|
for notehandle in notelist:
|
||||||
note = self.database.get_note_from_handle(notehandle)
|
note = self.database.get_note_from_handle(notehandle)
|
||||||
self.doc.write_styled_note(note.get_styledtext(),
|
self.doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(),"DDR-MoreDetails")
|
note.get_format(),"DDR-MoreDetails",
|
||||||
|
contains_html= note.get_type() == NoteType.HTML_CODE)
|
||||||
|
|
||||||
def __write_parents(self, person):
|
def __write_parents(self, person):
|
||||||
family_handle = person.get_main_parents_family_handle()
|
family_handle = person.get_main_parents_family_handle()
|
||||||
@ -643,7 +644,8 @@ class DetDescendantReport(Report):
|
|||||||
for notehandle in notelist:
|
for notehandle in notelist:
|
||||||
note = self.database.get_note_from_handle(notehandle)
|
note = self.database.get_note_from_handle(notehandle)
|
||||||
self.doc.write_styled_note(note.get_styledtext(),
|
self.doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(),"DDR-Entry")
|
note.get_format(),"DDR-Entry",
|
||||||
|
contains_html= note.get_type() == NoteType.HTML_CODE)
|
||||||
|
|
||||||
first = True
|
first = True
|
||||||
if self.inc_names:
|
if self.inc_names:
|
||||||
|
@ -236,7 +236,9 @@ class FamilyGroup(Report):
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.start_cell("FGR-TextContentsEnd", 2)
|
self.doc.start_cell("FGR-TextContentsEnd", 2)
|
||||||
self.doc.write_styled_note(note.get_styledtext(),
|
self.doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(), 'FGR-Note')
|
note.get_format(), 'FGR-Note',
|
||||||
|
contains_html= note.get_type() == \
|
||||||
|
gen.lib.NoteType.HTML_CODE)
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ from collections import defaultdict
|
|||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.lib import EventRoleType, EventType, Person
|
from gen.lib import EventRoleType, EventType, Person, NoteType
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
|
||||||
TableCellStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC,
|
TableCellStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC,
|
||||||
PARA_ALIGN_CENTER)
|
PARA_ALIGN_CENTER)
|
||||||
@ -216,7 +216,8 @@ class IndivCompleteReport(Report):
|
|||||||
note = self.database.get_note_from_handle(notehandle)
|
note = self.database.get_note_from_handle(notehandle)
|
||||||
text = note.get_styledtext()
|
text = note.get_styledtext()
|
||||||
note_format = note.get_format()
|
note_format = note.get_format()
|
||||||
self.doc.write_styled_note(text, note_format, 'IDS-Normal')
|
self.doc.write_styled_note(text, note_format, 'IDS-Normal',
|
||||||
|
contains_html= note.get_type() == NoteType.HTML_CODE)
|
||||||
|
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
@ -253,7 +254,8 @@ class IndivCompleteReport(Report):
|
|||||||
note_format = note.get_format()
|
note_format = note.get_format()
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell('IDS-NormalCell', 2)
|
self.doc.start_cell('IDS-NormalCell', 2)
|
||||||
self.doc.write_styled_note(text, note_format, 'IDS-Normal')
|
self.doc.write_styled_note(text, note_format, 'IDS-Normal',
|
||||||
|
contains_html= note.get_type() == NoteType.HTML_CODE)
|
||||||
|
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
@ -40,7 +40,7 @@ from ReportBase import Report, ReportUtils, MenuReportOptions
|
|||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
TableStyle, TableCellStyle, FONT_SANS_SERIF,
|
TableStyle, TableCellStyle, FONT_SANS_SERIF,
|
||||||
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
||||||
from gen.lib import MarkerType
|
from gen.lib import MarkerType, NoteType
|
||||||
from Filters import GenericFilterFactory, Rules
|
from Filters import GenericFilterFactory, Rules
|
||||||
from gen.display.name import displayer as name_displayer
|
from gen.display.name import displayer as name_displayer
|
||||||
import DateHandler
|
import DateHandler
|
||||||
@ -412,7 +412,9 @@ class MarkerReport(Report):
|
|||||||
|
|
||||||
self.doc.start_cell('MR-TableCell', 2)
|
self.doc.start_cell('MR-TableCell', 2)
|
||||||
self.doc.write_styled_note(note.get_styledtext(),
|
self.doc.write_styled_note(note.get_styledtext(),
|
||||||
note.get_format(), 'MR-Note')
|
note.get_format(), 'MR-Note',
|
||||||
|
contains_html= note.get_type() \
|
||||||
|
== NoteType.HTML_CODE)
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
|
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
@ -69,7 +69,7 @@ log = logging.getLogger(".NarrativeWeb")
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.ggettext import sgettext as _
|
from gen.ggettext import sgettext as _
|
||||||
import gen.lib
|
import gen.lib
|
||||||
from gen.lib import UrlType, date, Date, FamilyRelType
|
from gen.lib import UrlType, date, Date, FamilyRelType, NoteType
|
||||||
import const
|
import const
|
||||||
import Sort
|
import Sort
|
||||||
from gen.plug.menu import PersonOption, NumberOption, StringOption, \
|
from gen.plug.menu import PersonOption, NumberOption, StringOption, \
|
||||||
@ -393,7 +393,8 @@ class BasePage(object):
|
|||||||
|
|
||||||
# styled notes
|
# styled notes
|
||||||
htmlnotetext = self.styled_note(note.get_styledtext(),
|
htmlnotetext = self.styled_note(note.get_styledtext(),
|
||||||
note.get_format())
|
note.get_format(), contains_html =
|
||||||
|
note.get_type() == NoteType.HTML_CODE)
|
||||||
text = htmlnotetext or Html("p", note_text)
|
text = htmlnotetext or Html("p", note_text)
|
||||||
|
|
||||||
# return text of the note to its callers
|
# return text of the note to its callers
|
||||||
@ -406,9 +407,9 @@ class BasePage(object):
|
|||||||
#
|
#
|
||||||
#################################################
|
#################################################
|
||||||
|
|
||||||
def styled_note(self, styledtext, format):
|
def styled_note(self, styledtext, format, contains_html=False):
|
||||||
"""
|
"""
|
||||||
styledtext : assumed a StyledText object to write
|
styledtext : assumed a StyledText object to write
|
||||||
format : = 0 : Flowed, = 1 : Preformatted
|
format : = 0 : Flowed, = 1 : Preformatted
|
||||||
style_name : name of the style to use for default presentation
|
style_name : name of the style to use for default presentation
|
||||||
"""
|
"""
|
||||||
@ -422,7 +423,9 @@ class BasePage(object):
|
|||||||
markuptext = self._backend.add_markup_from_styled(text, s_tags,
|
markuptext = self._backend.add_markup_from_styled(text, s_tags,
|
||||||
split='\n\n')
|
split='\n\n')
|
||||||
htmllist = Html("div", id = "grampsstylednote")
|
htmllist = Html("div", id = "grampsstylednote")
|
||||||
if format == 1:
|
if contains_html:
|
||||||
|
htmllist.extend((Html('p') + text))
|
||||||
|
elif format == 1:
|
||||||
#preformatted, retain whitespace.
|
#preformatted, retain whitespace.
|
||||||
#so use \n\n for paragraph detection
|
#so use \n\n for paragraph detection
|
||||||
htmllist += Html("pre", indent=None) + markuptext.split('\n\n')
|
htmllist += Html("pre", indent=None) + markuptext.split('\n\n')
|
||||||
@ -1500,7 +1503,8 @@ class BasePage(object):
|
|||||||
|
|
||||||
# Web Site address
|
# Web Site address
|
||||||
elif _type == UrlType.WEB_HOME:
|
elif _type == UrlType.WEB_HOME:
|
||||||
if not uri.startswith("http://"):
|
if not (uri.startswith("http://") or
|
||||||
|
uri.startswith("https://")):
|
||||||
uri = "http://%(website)s" % { "website" : uri }
|
uri = "http://%(website)s" % { "website" : uri }
|
||||||
|
|
||||||
# FTP server address
|
# FTP server address
|
||||||
|
Loading…
Reference in New Issue
Block a user