diff --git a/src/plugins/lib/libhtml.py b/src/plugins/lib/libhtml.py
index ebdcda5fe..cd20776d0 100644
--- a/src/plugins/lib/libhtml.py
+++ b/src/plugins/lib/libhtml.py
@@ -1,3 +1,5 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
#
# Gramps - a GTK+/GNOME based genealogy program
#
@@ -28,6 +30,11 @@
from __future__ import print_function
+#------------------------------------------------------------------------
+# Python modules
+#------------------------------------------------------------------------
+import re
+
"""
HTML operations.
@@ -97,6 +104,46 @@ _START_CLOSE = set([
'param'
])
+_html_dbl_quotes = re.compile(r'([^"]*) " ([^"]*) " (.*)', re.VERBOSE)
+_html_sng_quotes = re.compile(r"([^']*) ' ([^']*) ' (.*)", re.VERBOSE)
+_html_replacement = {
+ "&" : "&",
+ ">" : ">",
+ "<" : "<",
+ "°" : "",
+ }
+
+#------------------------------------------------------------------------
+# html_ecape function
+#-----------------------------------------------------------------------
+# This command then defines the 'html_escape' option for escaping
+# special characters for presentation in HTML based on the above list.
+def html_escape(text):
+ """Convert the text and replace some characters with a variant."""
+
+ # First single characters, no quotes
+ text = ''.join([_html_replacement.get(c, c) for c in text])
+
+ # Deal with double quotes.
+ while 1:
+ m = _html_dbl_quotes.match(text)
+ if not m:
+ break
+ text = m.group(1) + '“' + m.group(2) + '”' + m.group(3)
+ # Replace remaining double quotes.
+ text = text.replace('"', '"')
+
+ # Deal with single quotes.
+ text = text.replace("'s ", '’s ')
+ while 1:
+ m = _html_sng_quotes.match(text)
+ if not m:
+ break
+ text = m.group(1) + '‘' + m.group(2) + '’' + m.group(3)
+ # Replace remaining single quotes.
+ text = text.replace("'", ''')
+
+ return text
#------------------------------------------------------------------------
#
# Html class.
diff --git a/src/plugins/webreport/NarrativeWeb.py b/src/plugins/webreport/NarrativeWeb.py
index 540c9a92b..69f265c8e 100644
--- a/src/plugins/webreport/NarrativeWeb.py
+++ b/src/plugins/webreport/NarrativeWeb.py
@@ -103,6 +103,9 @@ from libhtmlconst import _CHARACTER_SETS, _CC, _COPY_OPTIONS
# src/plugins/lib/libhtml.py
from libhtml import Html
+#import the html_escape function
+from libhtml import html_escape as html_escape
+
# import styled notes from
# src/plugins/lib/libhtmlbackend.py
from libhtmlbackend import HtmlBackend, process_spaces
@@ -197,46 +200,9 @@ wrapper = TextWrapper()
wrapper.break_log_words = True
wrapper.width = 20
-_html_dbl_quotes = re.compile(r'([^"]*) " ([^"]*) " (.*)', re.VERBOSE)
-_html_sng_quotes = re.compile(r"([^']*) ' ([^']*) ' (.*)", re.VERBOSE)
-_html_replacement = {
- "&" : "&",
- ">" : ">",
- "<" : "<",
- }
-
PLUGMAN = GuiPluginManager.get_instance()
CSS = PLUGMAN.process_plugin_data('WEBSTUFF')
-# This command then defines the 'html_escape' option for escaping
-# special characters for presentation in HTML based on the above list.
-def html_escape(text):
- """Convert the text and replace some characters with a variant."""
-
- # First single characters, no quotes
- text = ''.join([_html_replacement.get(c, c) for c in text])
-
- # Deal with double quotes.
- while 1:
- m = _html_dbl_quotes.match(text)
- if not m:
- break
- text = m.group(1) + '“' + m.group(2) + '”' + m.group(3)
- # Replace remaining double quotes.
- text = text.replace('"', '"')
-
- # Deal with single quotes.
- text = text.replace("'s ", '’s ')
- while 1:
- m = _html_sng_quotes.match(text)
- if not m:
- break
- text = m.group(1) + '‘' + m.group(2) + '’' + m.group(3)
- # Replace remaining single quotes.
- text = text.replace("'", ''')
-
- return text
-
def name_to_md5(text):
"""This creates an MD5 hex string to be used as filename."""
return md5(text).hexdigest()